Djelf писал(а) 12. Декабря 2016 :: 19:55:Весь переписывать не буду, как то так он должен выглядеть.
Учти, типизацию в [] нужно делать ТОЛЬКО в первом SELECT!!!
типизацию исправил
обернул всё еще в один select
но что то разницы в результате я не увидел ((
|SELECT
| PODZAPROS.ДатаДокум
| ,PODZAPROS.Фирма [Фирма $Справочник.Фирмы]
| ,PODZAPROS.Сотрудник [Сотрудник $Справочник.ФизЛица]
| ,PODZAPROS.Номенклатура [Номенклатура $Справочник.Номенклатура]
| ,Sum(PODZAPROS.КолВоПродажи) as Кол
| ,Sum(PODZAPROS.СуммаПродажи) as Сум
|
|from(
| select
| NullIf(Cast(Left(Журнал.DATE_TIME_IDDOC, 8) AS datetime), '17530101') ДатаДокум
| ,Журнал.$ОбщийРеквизит.Фирма as Фирма
|
| ,$_ТабельСтроки.Сотрудник as Сотрудник
| ,NULL as Номенклатура
| ,NULL as КолВоПродажи
| ,NULL as СуммаПродажи
|
| FROM _1SJOURN AS Журнал
|
|INNER JOIN $ДокументСтроки._Табель AS _ТабельСтроки ON Журнал.IDDOC = _ТабельСтроки.IDDOC
|
|WHERE ((Журнал.CLOSED & 1) = 1)
| AND (Журнал.$ОбщийРеквизит.Фирма IN (SELECT Val FROM #sqlВыбФирма))
| AND (Журнал.Date_Time_IDDoc BETWEEN :ДатаНачала AND :ДатаКонца~)
|
|GROUP BY
| Журнал.$ОбщийРеквизит.Фирма
| ,Журнал.DATE_TIME_IDDOC
| ,$_ТабельСтроки.Сотрудник
|
|UNION ALL
|
|SELECT
| NullIf(Cast(Left(Журнал.DATE_TIME_IDDOC, 8) AS datetime), '17530101') ДатаДокум
| ,Журнал.$ОбщийРеквизит.Фирма as Фирма
|
| ,NULL as Сотрудник
| ,$ВозвратОтПокупателяСтроки.Номенклатура as Номенклатура
| ,Sum($ВозвратОтПокупателяСтроки.Количество)*(-1) КолВоПродажи
| ,Sum($ВозвратОтПокупателяСтроки.Сумма)*(-1) СуммаПродажи
|
| FROM _1SJOURN AS Журнал
|
|INNER JOIN $ДокументСтроки.ВозвратОтПокупателя AS ВозвратОтПокупателяСтроки ON Журнал.IDDOC = ВозвратОтПокупателяСтроки.IDDOC
|
|WHERE ((Журнал.CLOSED & 1) = 1)
| AND ($ВозвратОтПокупателяСтроки.Номенклатура IN (SELECT Val FROM #sqlВыбНоменклатура))
| AND (Журнал.$ОбщийРеквизит.Фирма IN (SELECT Val FROM #sqlВыбФирма))
| AND (Журнал.Date_Time_IDDoc BETWEEN :ДатаНачала AND :ДатаКонца~)
|
|GROUP BY
| Журнал.$ОбщийРеквизит.Фирма
| ,Журнал.DATE_TIME_IDDOC
| ,$ВозвратОтПокупателяСтроки.Номенклатура
|
|
|) as PODZAPROS
|
|
|GROUP BY
| PODZAPROS.ДатаДокум
| ,PODZAPROS.Фирма
| ,PODZAPROS.Сотрудник
| ,PODZAPROS.Номенклатура
|
насколько понимаю, группировка не выполняется из-за
NULL as Номенклатура
NULL as Сотрудник
видимо надо как-то по другому объединять результаты запросов
ткните меня посильнее - в какую сторону копать?...
какие то JOIN надо использовать? но как? - не знаю(
https://yadi.sk/i/j_sCyo9233K9dc