Оптимизируем запрос вместе.

Frostich
Дата: 30.01.2013 14:10:01
Хелп ми ! Подскажите к примеру имеется таблица A

ID , AdresID , NomenID, KOLVO,DATE_PRODAGI

Хочу получить таблицу типа

ID , AdresID , NomenID , (SUM (KOLVO) from A where DATE_PRODAGI between '01.01.2012' and '01.02.2012') AS 01,(SUM (KOLVO) from A where DATE_PRODAGI between '01.02.2012' and '01.03.2012') AS 02 И Т.Д.

В данном случае
select adresid , nomenid ,
(select sum (kolvo) from a a2 where DATE_PRODAGI between '01.01.2012' and '01.02.2012' and a2.adresid=a.adresid and a2.nomenid=a.nomenid )
,(select sum (kolvo) from a a2 where DATE_PRODAGI between '01.02.2012' and '01.03.2012' and a2.adresid=a.adresid and a2.nomenid=a.nomenid )
from a group by adresid , nomenid
При условии что записей накопилось несколько миллионов то время запроса ужасное , есть варианты как оптимизировать? Спасибо заранее.
Мистер Хенки
Дата: 30.01.2013 14:24:31
ну там индекс по (adresid , nomenid,date_prodagi) include(kolvo) и все такое
ну ище там если DATE_PRODAGI типа date
select
adresid 
, nomenid 
, DATE_PRODAGI 
,sum(kolvo)
from a group by adresid , nomenid,DATE_PRODAGI 
Гость333
Дата: 30.01.2013 14:57:14
select adresid , nomenid ,
       sum(case when DATE_PRODAGI between '01.01.2012' and '01.02.2012' then kolvo else null end),
       sum(case when DATE_PRODAGI between '01.02.2012' and '01.03.2012' then kolvo else null end)
from a
group by adresid , nomenid
Frostich
Дата: 30.01.2013 15:25:49
Тип DATE_PRODAGI дата


Заполним таблицу
ID ADRESID NOMENID KOLVO DATE_PRODAGI
1 1 1 2 01.01.2012 00:00
2 2 1 35 01.01.2012 00:00
3 2 2 12 01.01.2012 00:00
4 1 1 12 02.02.2012 00:00
5 1 1 12 03.02.2012 00:00



при моем запросе
ADRESID NOMENID SUM as YNVAR SUM1
1 1 2 24
2 1 35
2 2 12


select
adresid
, nomenid
, DATE_PRODAGI
,sum(kolvo)
from a group by adresid , nomenid,DATE_PRODAGI

у тебя получается

ADRESID NOMENID DATE_PRODAGI SUM
1 1 01.01.2012 00:00 2
1 1 02.02.2012 00:00 12
1 1 03.02.2012 00:00 12
2 1 01.01.2012 00:00 35
2 2 01.01.2012 00:00 12



Хотя можно объединить ! и работает намного быстрее видимо я сам переморочился ,Спасибо Мистер Хенки
Frostich
Дата: 30.01.2013 15:29:53
Гость333 ,Спасибо

ТО что надо !тема закрыта!