[ОТВЕТИТЬ]
Опции темы
02.04.2013 09:12  
Mr_Vito
Задачка:
Нужно посчитать количество чеков за период, в которых присутствует товар из группы
у меня получилось вот так:
Код:
select locid, tree,count(che)
from (
select distinct d2.locid, d.tree, d2.desknum||d2.znum||d2.checknum che
       from sacardclass d, smcard m, smcashcheckitems d2, smcashchecks d3
       where m.idclass=d.id
           and m.article=d2.article
           and d3.printtime BETWEEN TO_DATE('01.01.2013', 'dd.mm.yyyy') and TO_DATE('05.01.2013', 'dd.mm.yyyy')
           and d2.locid=d3.locid
           and d2.desknum=d3.desknum
           and d2.znum=d3.znum
           and d2.checknum=d3.checknum)
group by locid, tree
order by tree, locid
но считает медленно, может как то можно по другому можно сделать?
 
02.04.2013 10:23  
OlegON
неплохо бы на "медленно" сразу версию СМ, Oracle и план запроса приводить.
 
02.04.2013 18:03  
vdm
В запросе единственное ограничивающее условие - время чеков.
Если на printtime нет индекса (а он есть? c какой версии СМ?) и она не поделена на части по printtime (сомнительно, что это кто-то делает), то полный скан всей smcashchecks обеспечен => время пропорционально размеру...
 
 
Опции темы



Часовой пояс GMT +3, время: 17:21.

Все в прочитанное - Календарь - RSS - - Карта - Вверх 👫 Яндекс.Метрика
Форум сделан на основе vBulletin®
Copyright ©2000 - 2016, Jelsoft Enterprises Ltd. Перевод: zCarot и OlegON
В случае заимствования информации гипертекстовая индексируемая ссылка на Форум обязательна.