|
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
|
Спасибо огромное, попробую!
|
|