Имя: Пароль:
1C
1C 7.7
v7: Запрос 1sqlite к ТЧ двух разных документов
0 ildary
 
15.12.14
15:38
Уважаемые специалисты, подскажите пожалуйста, как правильно написать запрос, который получает количество товара из двух документов, написал вот так и поля документ и номенклатура не типизируются:

SELECT
   Итоги.Докум        as [Докум $Документ],
   Итоги.Номенклатура as [Номенклатура $Справочник.Номенклатура],
   Итоги.Количество   as Количество
FROM(

SELECT
   Док.IDDoc           as Докум,
   ДокТЧ.Номенклатура  as Номенклатура,
   SUM( ДокТЧ.Количество * ДокТЧ.Коэффициент ) as Количество
FROM
   [ДокументСтроки.Реализация] as ДокТЧ
inner Join
   [Журнал] Жур ON ( Жур.iddocdef = :ВидДокумента.Реализация ) and ( ДокТЧ.IDDOC = Жур.IDDOC )
Left Join
   [Документ.Реализация] as Док on ( Док.IDDOC = Жур.IDDOC )
WHERE
     ( Жур.Date Between :ДатаНач AND :ДатаКон ) And ( Жур.CLOSED = 1 )
And ( Док.Склад = :ВыбСклад )

UNION ALL
SELECT
   ДокВ.IDDoc                                    as Докум,
   ДокТЧВ.Номенклатура                           as Номенклатура,
   SUM( ДокТЧВ.Количество * ДокТЧВ.Коэффициент ) as Количество
FROM
   [ДокументСтроки.ВозвратОтПокупателя] as ДокТЧВ
inner Join
   [Журнал] Жур on Жур.iddocdef = :ВидДокумента.ВозвратОтПокупателя and ДокТЧВ.IDDOC = Жур.IDDOC
Left Join
   [Документ.ВозвратОтПокупателя] as ДокВ on ДокВ.IDDOC = Жур.IDDOC
WHERE
     ( Жур.Date Between :ДатаНач AND :ДатаКон ) And ( Жур.CLOSED = 1 )
And ( ДокВ.Склад = :ВыбСклад )

) As Итоги

GROUP BY Итоги.Докум, Итоги.Номенклатура
1 ildary
 
15.12.14
15:40
Парсер лох и я туда же, простите за разрывы...
2 Ёпрст
 
гуру
15.12.14
15:41
или добавляй вид и типизируй, или доп колонка с iddocdef в качестве типизирующего поля
3 ildary
 
15.12.14
15:42
(2) Спасибо за совет, а что правильнее?
4 Ёпрст
 
гуру
15.12.14
15:43
ну и SUM лучше вынести во внешний селект и выкинуть с юниона
5 Ёпрст
 
гуру
15.12.14
15:43
(3) а без разницы, только в одном случае, будет меньше колонок в выборке
6 Ёпрст
 
гуру
15.12.14
15:44
ну так, что ле делай

SELECT
   Док.IDDocDef||Док.IDDoc Докум
7 ildary
 
15.12.14
15:45
Спасибо огромное, попробую!
2 + 2 = 3.9999999999999999999999999999999...