Главная страница
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.48 MB
Время: 0.077 c
1-1107446586
Muhan
2005-02-03 19:03
2005.02.20
Распечатка и кое-что еще...


14-1106747016
Derevyanniy kak Rels
2005-01-26 16:43
2005.02.20
А вот как быть в таком случае ?


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


1-1107414409
Ivolg
2005-02-03 10:06
2005.02.20
Русурсы


1-1107451655
HF-Trade
2005-02-03 20:27
2005.02.20
Народ, есть ли разница между Visible.True False и Show Hide