|
Вложенный запрос | ☑ | ||
---|---|---|---|---|
0
tesei
31.10.13
✎
13:17
|
Помогите пож-ста с запросом. Во вложенном запросе происходит объединение показателей, положительных и отрицательных сумм. В запросе верхнего уровня требуется убрать итоговую отрицательные сумму:
| ВЫБОР | КОГДА ВложенныйЗапрос.СвободныйОстаток > 0 | ТОГДА ВложенныйЗапрос.СвободныйОстаток | ИНАЧЕ 0 на деле же убираются отрицательные значения во _внутреннем_ запросе, и суммируются только положительные суммы! Пример: во внутр. запросе объединение: 4+1-3, должно быть 2, выходит 5 2+2-6, должно быть 0, выходит 4 |
|||
1
Ненавижу 1С
гуру
31.10.13
✎
13:20
|
убери это, добавь после группировки:
ИМЕЮЩИЕ СУММА(ВложенныйЗапрос.СвободныйОстаток)>0 |
|||
2
Ёпрст
31.10.13
✎
13:20
|
Может, не будешь ломаться как восьмиклассница и сразу текст запроса покажешь ?
|
|||
3
tesei
31.10.13
✎
13:22
|
(2) да всегда готов, но зачем уважаемым людям глаза ломать? :)
|
|||
4
Рэйв
31.10.13
✎
13:22
|
(3)Уважаемые люди - не все пока телепаты.
|
|||
5
tesei
31.10.13
✎
13:24
|
суммируемое поле - Потребность:
"ВЫБРАТЬ | NULL КАК Склад, | ВложенныйЗапрос.Номенклатура КАК Номенклатура, | ВложенныйЗапрос.НаСкладе КАК НаСкладе, | ВложенныйЗапрос.Резерв КАК Резерв, | ВложенныйЗапрос.СтрахЗапас КАК СтрахЗапас, | ВЫБОР | КОГДА ВложенныйЗапрос.СвободныйОстаток > 0 | ТОГДА ВложенныйЗапрос.СвободныйОстаток | ИНАЧЕ 0 | КОНЕЦ КАК СвободныйОстаток, | NULL КАК НаСкладе1, | NULL КАК Резерв1, | NULL КАК СтрахЗапас1, | NULL КАК Потребность |ИЗ | (ВЫБРАТЬ | Товары.Склад КАК Склад, | Товары.Номенклатура КАК Номенклатура, | Товары.КоличествоОстаток КАК НаСкладе, | Резерв.КоличествоОстаток КАК Резерв, | СтраховыеЗапасы.Количество КАК СтрахЗапас, | ЕСТЬNULL(Товары.КоличествоОстаток, 0) - ЕСТЬNULL(Резерв.КоличествоОстаток, 0) - ЕСТЬNULL(СтраховыеЗапасы.Количество, 0) КАК СвободныйОстаток | ИЗ | РегистрНакопления.ТоварыНаСкладах.Остатки(&Дата, Склад = &Склад) КАК Товары | ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыВРезервеНаСкладах.Остатки КАК Резерв | ПО Товары.Номенклатура = Резерв.Номенклатура | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений._СтраховыеЗапасыНоменклатуры.СрезПоследних(&Дата, Склад = &Склад) КАК СтраховыеЗапасы | ПО Товары.Номенклатура = СтраховыеЗапасы.Номенклатура) КАК ВложенныйЗапрос | |ОБЪЕДИНИТЬ ВСЕ | |ВЫБРАТЬ | ВложенныйЗапрос1.Склад, | ВложенныйЗапрос1.Номенклатура, | NULL, | NULL, | NULL, | NULL, | ВложенныйЗапрос1.НаСкладе1, | ВложенныйЗапрос1.Резерв1, | ВложенныйЗапрос1.СтрахЗапас1, | ВложенныйЗапрос1.Потребность |ИЗ | (ВЫБРАТЬ | Товары2.Склад КАК Склад, | Товары2.Номенклатура КАК Номенклатура, | Товары2.КоличествоОстаток КАК НаСкладе1, | NULL КАК СтрахЗапас1, | NULL КАК Резерв1, | -Товары2.КоличествоОстаток КАК Потребность | ИЗ | РегистрНакопления.ТоварыНаСкладах.Остатки(&Дата, НЕ Склад = &Склад) КАК Товары2 | | ОБЪЕДИНИТЬ ВСЕ | | ВЫБРАТЬ | СтраховыеЗапасы2.Склад, | СтраховыеЗапасы2.Номенклатура, | NULL, | СтраховыеЗапасы2.Количество, | NULL, | СтраховыеЗапасы2.Количество | ИЗ | РегистрСведений._СтраховыеЗапасыНоменклатуры.СрезПоследних(&Дата, НЕ Склад = &Склад) КАК СтраховыеЗапасы2 | | ОБЪЕДИНИТЬ ВСЕ | | ВЫБРАТЬ | Резервы2.Склад, | Резервы2.Номенклатура, | NULL, | NULL, | Резервы2.КоличествоОстаток, | Резервы2.КоличествоОстаток | ИЗ | РегистрНакопления.ТоварыВРезервеНаСкладах.Остатки(&Дата, НЕ Склад = &Склад) КАК Резервы2) КАК ВложенныйЗапрос1 | |УПОРЯДОЧИТЬ ПО | Номенклатура, | Склад |ИТОГИ | СУММА(НаСкладе), | СУММА(Резерв), | СУММА(СтрахЗапас), | СУММА(СвободныйОстаток), | СУММА(НаСкладе1), | СУММА(Резерв1), | СУММА(СтрахЗапас1), | СУММА(Потребность) |ПО | Номенклатура, | Склад"; |
|||
6
Ненавижу 1С
гуру
31.10.13
✎
13:28
|
(5) либо группируй и (1), либо
ИТОГИ ... ВЫБОР КОГДА СУММА(СвободныйОстаток)>0 ТОГДА СУММА(СвободныйОстаток) ИНАЧЕ ) КОНЕЦ КАК СвободныйОстаток |
|||
7
Ёпрст
31.10.13
✎
13:29
|
а где (1) ?
|
|||
8
zak555
31.10.13
✎
13:32
|
зачем объединять ?
|
|||
9
Ёпрст
31.10.13
✎
13:37
|
(5)
вот это: | NULL, | NULL, | NULL, | NULL, замени на | 0, | 0, | 0, | 0, в первую очередь |
|||
10
tesei
31.10.13
✎
13:45
|
вставил:
|ИМЕЮЩИЕ | СУММА(ВложенныйЗапрос1.Потребность) > 0 перестал считаться остаток на складе, опять не то |
|||
11
tesei
31.10.13
✎
13:46
|
(8) если не объединением - то как?
|
|||
12
Sorm
31.10.13
✎
13:54
|
(0) Все правильно. В объединении суммируются только положительные остатки, так как они выбираются во внутреннем запросе:)
|
|||
13
Ненавижу 1С
гуру
31.10.13
✎
13:54
|
(10) вот взял и просто вставил? покажи запрос
|
|||
14
tesei
31.10.13
✎
14:06
|
вроде заработало... проверяю
|
|||
15
tesei
31.10.13
✎
14:13
|
спасибо всем участникам! :)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |