Имя: Пароль:
1C
1C 7.7
v7: Прямой запрос по партиям
,
0 PRO100 NigGaZ
 
19.10.13
14:55
Выполняю запрос

SELECT :ВыбФирма [Фирма $Справочник.Фирмы]
    , МОЛ [МОЛ $Справочник.ФизЛица]
    , Номенклатура [Номенклатура $Справочник.Номенклатура]
    , СтатусПартии [СтатусПартии $Перечисление.СтатусыПартии]
    , Партия [Партия $Справочник.Партии]
    , ДатаПартии ДатаПартии
    , ЦенаПрод ЦенаПрод
    , SUM(Количество) Количество
    , SUM(СуммаУпр) СуммаУпр
    , SUM(СуммаРуб) СуммаРуб
    , SUM(СуммаБезНДС) СуммаБезНДС
FROM (
SELECT МОЛ
    , Номенклатура
    , СтатусПартии
    , Партия
    , ДатаПартии
    , ЦенаПрод
    , SUM(КоличествоОстаток) Количество
    , SUM(СуммаУпрОстаток) СуммаУпр
    , SUM(СуммаРубОстаток) СуммаРуб
    , SUM(СуммаБезНДСОстаток) СуммаБезНДС
FROM $РегистрОстатки.ПартииНаличие(:КонДата,,Номенклатура = :ВыбНом,,) AS ПартииНаличие
GROUP BY МОЛ
    , Номенклатура
    , СтатусПартии
    , Партия
    , ДатаПартии
    , ЦенаПрод) AS Подзапрос
WHERE (Количество != 0) AND (СуммаУпр != 0) AND (СуммаРуб != 0)    AND (СуммаБезНДС != 0)
GROUP BY МОЛ
    , Номенклатура
    , СтатусПартии
    , Партия
    , ДатаПартии
    , ЦенаПрод

или
Выполняю запрос

SELECT :ВыбФирма [Фирма $Справочник.Фирмы]
    , МОЛ [МОЛ $Справочник.ФизЛица]
    , Номенклатура [Номенклатура $Справочник.Номенклатура]
    , СтатусПартии [СтатусПартии $Перечисление.СтатусыПартии]
    , Партия [Партия $Справочник.Партии]
    , ДатаПартии ДатаПартии
    , ЦенаПрод ЦенаПрод
    , SUM(Количество) Количество
    , SUM(СуммаУпр) СуммаУпр
    , SUM(СуммаРуб) СуммаРуб
    , SUM(СуммаБезНДС) СуммаБезНДС
FROM (
SELECT МОЛ
    , Номенклатура
    , СтатусПартии
    , Партия
    , ДатаПартии
    , ЦенаПрод
    , SUM(КоличествоОстаток) Количество
    , SUM(СуммаУпрОстаток) СуммаУпр
    , SUM(СуммаРубОстаток) СуммаРуб
    , SUM(СуммаБезНДСОстаток) СуммаБезНДС
FROM $РегистрОстатки.ПартииНаличие(:КонДата,,Номенклатура = :ВыбНом,,) AS ПартииНаличие
GROUP BY МОЛ
    , Номенклатура
    , СтатусПартии
    , Партия
    , ДатаПартии
    , ЦенаПрод) AS Подзапрос
GROUP BY МОЛ
    , Номенклатура
    , СтатусПартии
    , Партия
    , ДатаПартии
    , ЦенаПрод
HAVING SUM(Количество != 0) AND SUM(СуммаУпр != 0) AND SUM(СуммаРуб != 0) AND SUM(СуммаБезНДС != 0)

Без условия WHERE или HAVING в результате 2 строки где количество есть 17 и 90 (остальные агрегируемые нулю)
когда добавляю условия в результате ноль строк, не понимаю использую AND (должны быть выполнены все условия тогда не должно быть строки), а на деле получается что выполняется только одно условие
1 КонецЦикла
 
19.10.13
15:14
Если убрать HAVING и посмотреть что получается?
2 PRO100 NigGaZ
 
19.10.13
15:16
без условий(где и имеется) есть 2 строки
Количество,СуммаУПР,СуммаРуб,СуммаРубБезНДС
17         0        0        0
90         0        0        0
3 КонецЦикла
 
19.10.13
15:26
Перепиши условие на или
Ты хочешь показывать строки где хоть одно поле ненулевое?
4 PRO100 NigGaZ
 
19.10.13
15:32
именно так, нужны строки где есть хоть одно ненулевое...
5 PRO100 NigGaZ
 
19.10.13
15:33
да or помогло, что то я не так понимаю ))
6 PRO100 NigGaZ
 
19.10.13
15:36
я понял where или having условие выбора, а не исключения...
7 PRO100 NigGaZ
 
19.10.13
15:36
ну или как то так )
8 Mikeware
 
19.10.13
15:51
точно
HAVING SUM(Количество != 0) AND SUM(СуммаУпр != 0) AND SUM(СуммаРуб != 0) AND SUM(СуммаБезНДС != 0)
а не
HAVING SUM(Количество) != 0 AND SUM(СуммаУпр) != 0 AND SUM(СуммаРуб) != 0 AND SUM(СуммаБезНДС) != 0
9 КонецЦикла
 
19.10.13
16:07
(5) Школу сачковал сцуко
10 PRO100 NigGaZ
 
19.10.13
16:46
да знаю, эту часть я писал слету из первого запроса для примера, скопировать не было от куда, нельзя изменить сообщения ))
Я не хочу быть самым богатым человеком на кладбище. Засыпать с чувством, что за день я сделал какую-нибудь потрясающую вещь — вот что меня интересует. Стив Джобс