Имя: Пароль:
1C
1C 7.7
v7: Помогите с логикой SQL запроса
0 Тёплый фарфор
 
28.08.17
12:37
Коллеги,
Мне нужно возвращать список товаров с колонкой по остаткам.
Ключевое условие - товары с нулевым остатком тоже должны выводится.
Однако если я не накладываю фильтр по периоду регистра, то в результатах выводятся не только итоги....
Как поступить?
P.S. Видел как выводятся остатки в списке номенклатуры (http://www.1cpp.ru/forum/YaBB.pl?num=1284613005/0). В общем тоже подойдёт, но хочется как-то с текстом запроса разобраться.

Привожу текст запроса на всякий случай:

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) Спасибо, всё получилось :)