Как бы запрос создать?

Запросы, планы, оптимизация запросов, ...

Модераторы: kdv, CyberMax

Ответить
Kotъ-Begemotъ
Сообщения: 250
Зарегистрирован: 25 июл 2007, 21:33

Как бы запрос создать?

Сообщение Kotъ-Begemotъ » 23 сен 2007, 17:01

Вот есть таблица. И есть несколько критериев по которым мне надо считать записи за каждый, скажем день. То есть меня интересуют по дням, количества записей, удовлетворяющих критериям. В итоге хотелось бы получить что-то вида:

25.09.2007 Cnt1, Cnt2, Cnt3
26.09.2007 Cnt1, Cnt2, Cnt3
.....

где Cnt(i) - количество записей, удовлетворяющих i-му набору критериев.
Есть таблица с интервалами дат за которые нужно считать, но, к сожалению в одном запросе не получается написать что-то типа:

Код: Выделить всё

select tbldat.StartDate, tbldat.EndDate, count(tbl1.OrderID), count(tbl2.OrderID)
from Orders tbl1, Orders tbl2
where tbl1.SomeField=Criteria_1 and tbl2.SomeField=Criteria_2
group by tbldat.StartDate, tbldat.EndDate
Что бы тут придумать?!? Ситуация осложняется еще тем, что использовать что-то типа case в запросе не получится :( LocalSQL не позволяет таких выкрутасов :((((

Почему хотелось бы получить результат вида
25.09.2007 Cnt1, Cnt2, Cnt3
26.09.2007 Cnt1, Cnt2, Cnt3
потому что это, собственно только начало, дальше с этим результатом еще поработать придётся...

ess
Сообщения: 21
Зарегистрирован: 26 июл 2006, 10:51

Сообщение ess » 24 сен 2007, 06:23

Может, что то типа этого:

Код: Выделить всё

select tbl.StartDate, tbl.EndDate, sum(iif(tbl.SomeField=Criteria_1, 1, 0)), sum(iif(tbl.SomeField=Criteria_2, 1, 0)) from tbl group by 1,2

Ответить