Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.02.20;
Скачать: CL | DM;

Вниз

Помогите составить хитрый запрос (Select)   Найти похожие ветки 

 
_Oleg   (2005-01-24 23:21) [0]

Есть такая таблица:

ID     |  Data  | ID1   | ID2    | Summa

Как составить запрос который был бы эквивалентен следующим запросам:

select data, id1,
count (distinct id2) as field1, sum(price) as field2
from mytable
group by data, id1

а потом на результаты 1 запроса:

select id1,
count (field1), sum(field2)
from results
group by id1


То есть следует подсчитывать кроме суммирования одного поля,
надо подсчитатать количсетво уникальных комбинаций Data + ID2


 
ЮЮ ©   (2005-01-25 03:25) [1]

В парадоксе, как его некоторые не ругают, есть такая фича, как вложенный запрос: первый запрос кладёшь в БД текстовом файле с расширением sql, например DateGrouped.sql, тогда второй запрос будет иметь вид:

SELECT id1, COUNT(field1) as Cnt, SUM(field2) as Summ
FROM "DateGrouped.sql"
GROUP by id1


 
_Oleg   (2005-01-25 07:15) [2]

К сожалению, не получилось
Пробовал в DataBase Desktop, SQL Explorer и в Delphi 5 через TQuery. Выдаёт "Opperation not applicable". Также пробовал менять двойные кавычки на одинарные, без результата :(


 
ЮЮ ©   (2005-01-25 08:19) [3]

Попробовал сам, всё работает. Запрос в SQL Explorer-e:
SELECT
 Executor, Count(Ship) Ship, Sum(Pay) as Pay
FROM
 "DateGrouped.sql"
GROUP BY
 Executor

запрос в DateGrouped.sql:

SELECT
 Accepted, Executor, Count(Ship) Ship, Sum(Pay) as Pay
FROM
 Bills
 LEFT JOIN BillDetails ON Bills.Id = BillDetails.BillId
GROUP BY
 Accepted, Executor


 
sniknik ©   (2005-01-25 08:27) [4]

> В парадоксе, как его некоторые не ругают, есть такая фича, как вложенный запрос:
это не в парадоксе, это в BDE, формат таблицы не при чем выполняет запросы движок.
и не получается (возможно) у него потому что он использует другой движок (в принципе их для парадокса не много ;о)) но гадать все одно неохота (привел бы для второго варианта))


 
_Oleg   (2005-01-25 10:05) [5]

В БДЕ администраторе показывает информацию о версии для dll - 5.2.0.2. Вроде это как последняя версия. Пробовал менять уровни таблиц для Paradox и DBASE на максимальные. Менял LocalShare. Не помогает.


 
Mutniy   (2005-01-25 10:14) [6]

Я правда вообще не работал с породоксом ,
но нелзя чтоль результат в первого запроса выбросить в промежуточную таблицу ?!

тоесть как в MSSQL сделать временную таблицу


 
_Oleg   (2005-01-25 11:44) [7]

2Mutniy
Да, можно сохранить в промежуточную таблицу.

Но, к сожалению, мне надо - одним запросом.


 
Johnmen ©   (2005-01-25 12:11) [8]

select count(distinct cast(data as varchar(100))+cast(id2 as varchar(100))) as YourCount, sum(price) as YourSum
from mytable


 
_Oleg   (2005-01-25 14:47) [9]

2Johnmen

Спасибо, Ваш вариант вроде работает правильно

select a.ID1,  
count (distinct cast(a.data as varchar(10))+cast(a.id2 as varchar(10))) as p,
sum(a.price) as price from mytable a
group by ID1



Страницы: 1 вся ветка

Текущий архив: 2005.02.20;
Скачать: CL | DM;

Наверх




Память: 0.46 MB
Время: 0.049 c
4-1105164394
Kurt
2005-01-08 09:06
2005.02.20
В трей....


9-1100536487
Kobik
2004-11-15 19:34
2005.02.20
Диздок


4-1105126143
Лев Ландау
2005-01-07 22:29
2005.02.20
Как можно программно завершить процесс?


1-1107840892
hgd
2005-02-08 08:34
2005.02.20
Сохранение bitmap в jpeg


14-1107120927
Alexander Panov
2005-01-31 00:35
2005.02.20
"Белая гвардия"





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский