С rollup - ом ничего не получилось. Сделал по топорному:
ТекстЗапроса = "-- qryMaker:Средняя продажа.2010.03.12.11.22.03
|Select
| Выборка.Kod
|, Sum(Выборка.Продажи) Продажи
|, Sum(Выборка.КвадратОтклонения)/DateDiff(day,:НачДата,:КонДата) КвадратОтклонения
|From
|(Select DISTINCT
| Ном.Code Kod
|, Dat1.Dat [Дата $Дата]
|, ТаблицаПродаж.Продажи
|, ТаблицаСреднего.Среднее Среднее
|, (ISNULL(ТаблицаПродаж.Продажи,0) - Cast(ТаблицаСреднего.Среднее As Numeric(15,5)))*
| (ISNULL(ТаблицаПродаж.Продажи,0) - Cast(ТаблицаСреднего.Среднее As Numeric(15,5))) КвадратОтклонения
|--, Grouping(Ном.Id) as Группировка
|From $Справочник.Номенклатура As Ном
|Full Outer Join #Dat_ As Dat1
| On 1=1
|Left Outer Join
|(SELECT -- (*)
| ПродажиОбороты.Номенклатура
|, ПродажиОбороты.Период День
|, SUM(ПродажиОбороты.КоличествоОборот - ПродажиОбороты.КоличествоВОборот) Продажи
|FROM $РегистрОбороты.Продажи(:НачДата,
| :КонДата,День,,
| --(Номенклатура = :ВыбНом)
| ,,) AS ПродажиОбороты
|GROUP BY ПродажиОбороты.Номенклатура, ПродажиОбороты.Период) As ТаблицаПродаж
| On (Dat1.Dat = ТаблицаПродаж.День) And (ТаблицаПродаж.Номенклатура = Ном.Id)
|Full Outer Join
|(SELECT ПродажиОбороты.Номенклатура -- (**)
|, (SUM(ПродажиОбороты.КоличествоОборот - ПродажиОбороты.КоличествоВОборот) /
| DateDiff(day,:НачДата,:КонДата)) Среднее
|-- , DateDiff(day,:НачДата,:КонДата) Дней
|-- , SUM(ПродажиОбороты.КоличествоОборот - ПродажиОбороты.КоличествоВОборот) Продажи
|FROM $РегистрОбороты.Продажи(:НачДата,
| :КонДата,,,
| (Номенклатура = :ВыбНом),,) AS ПродажиОбороты
|GROUP BY ПродажиОбороты.Номенклатура) As ТаблицаСреднего
| On (1=1) AND (ТаблицаСреднего.Номенклатура = Ном.Id)
|Where (Ном.Id = :ВыбНом)
|Group By Ном.Id, Ном.Code, Dat1.Dat, ТаблицаПродаж.Продажи, ТаблицаСреднего.Среднее) As Выборка
|Group By Выборка.Kod
|Order By Выборка.Kod
|";
По одной позиции делается в районе 5 сек. Вот если бы можно было бы добавить итоги в подзапрос (*) и из них получать среднюю продажу(с этой проблемой я не смог разобраться), тогда можно было бы получить прирост в скорости отказавшись от (**)...
Жду предложений по оптимизации!