|
v7: Помогите с логикой SQL запроса
| ☑ |
0
Тёплый фарфор
28.08.17
✎
12:37
|
Коллеги,
Мне нужно возвращать список товаров с колонкой по остаткам.
Ключевое условие - товары с нулевым остатком тоже должны выводится.
Однако если я не накладываю фильтр по периоду регистра, то в результатах выводятся не только итоги....
Как поступить?
P.S. Видел как выводятся остатки в списке номенклатуры (). В общем тоже подойдёт, но хочется как-то с текстом запроса разобраться.
Привожу текст запроса на всякий случай:
SELECT $Номенклатура.Артикул SKU
, Номенклатура.ID [Товар $Справочник.Номенклатура]
, $ОстаткиТМЦИтоги.Количество Остаток
FROM $Справочник.Номенклатура AS Номенклатура With (NOLOCK)
LEFT OUTER JOIN $РегистрИтоги.ОстаткиТМЦ AS ОстаткиТМЦИтоги With (NOLOCK) ON Номенклатура.ID = $ОстаткиТМЦИтоги.Номенклатура
WHERE (Номенклатура.ISFOLDER = 2)
AND (ОстаткиТМЦИтоги.PERIOD = :ДатаФильтр)
GROUP BY Номенклатура.ID
, $Номенклатура.Артикул
, $ОстаткиТМЦИтоги.Количество
|
|
1
toypaul
гуру
28.08.17
✎
12:42
|
SQL учи. а потом уж берись за его применение в 1С
|
|
2
Ёпрст
28.08.17
✎
12:43
|
(0)
AND (ОстаткиТМЦИтоги.PERIOD = :ДатаФильтр)
сделай перед where
|
|
3
Ёпрст
28.08.17
✎
12:45
|
и вот так еще:
--, $ОстаткиТМЦИтоги.Количество Остаток
, coalesce($ОстаткиТМЦИтоги.Количество,0) Остаток
|
|
4
Ёпрст
28.08.17
✎
12:47
|
И, вот так, как-то должно быть, ибо группировать по количеству - моветон
SELECT $Номенклатура.Артикул SKU
, Номенклатура.ID [Товар $Справочник.Номенклатура]
,sum(coalesce($ОстаткиТМЦИтоги.Количество,0)) Остаток
FROM $Справочник.Номенклатура AS Номенклатура With (NOLOCK)
LEFT OUTER JOIN $РегистрИтоги.ОстаткиТМЦ AS ОстаткиТМЦИтоги With (NOLOCK) ON Номенклатура.ID = $ОстаткиТМЦИтоги.Номенклатура
AND (ОстаткиТМЦИтоги.PERIOD = :ДатаФильтр)
WHERE (Номенклатура.ISFOLDER = 2)
GROUP BY Номенклатура.ID
|
|
5
Тёплый фарфор
28.08.17
✎
13:02
|
(4) Спасибо, всё получилось :)
|
|