|
Объединение виртуальных таблиц в запросе | ☑ | ||
---|---|---|---|---|
0
techguru
17.02.12
✎
14:15
|
Есть две таблицы - Резерв и Остатки - со связью по полям Склад и Номенклатура. Левое соединение в запросе. Как сделать, чтобы в результат запроса попадали позиции с нулевым остатком? Сейчас они просто игнорируются.
|
|||
1
Beduin
17.02.12
✎
14:16
|
(0) Откуда в таблице остатков нулевые остатки?
|
|||
2
Fish
17.02.12
✎
14:17
|
Не использовать левое соединение?
|
|||
3
salvator
17.02.12
✎
14:18
|
Переписать запрос?
|
|||
4
Lys
17.02.12
✎
14:19
|
Сходить на курсы?
|
|||
5
Lys
17.02.12
✎
14:20
|
Почитать книжки?
|
|||
6
pessok
17.02.12
✎
14:21
|
уже вижут вирт. таблицу - Остатки.ОстаткиИОбороты()
|
|||
7
Reset
17.02.12
✎
14:21
|
то, что есть, дополнительно соединить правым соединением со справочником номенклатура.
и да, пред. ораторы тоже правы) |
|||
8
techguru
17.02.12
✎
14:22
|
Так, переформулирую вопрос.
Есть виртуальные таблицы ТоварыНаСкладах.Остатки и ТоварыВРезервеНаСкладах.Остатки. Бывает так, что в резерве стоят товары, которых на складе нет, при этом мне необходимо сравнивать КоличествоРезерв и КоличествоОстаток - и в зависимости от результата выводить или не выводить строку. Если остаток нулевой, то строка не попадает в результат запроса. |
|||
9
Beduin
17.02.12
✎
14:22
|
(8) ЕСТЬNULL кури
|
|||
10
Reset
17.02.12
✎
14:22
|
(8) Полное содинение тогда
|
|||
11
pessok
17.02.12
✎
14:24
|
(8)
ВЫБРАТЬ ТоварыНаСкладахОстатки.Склад КАК Склад, ТоварыНаСкладахОстатки.Номенклатура, ТоварыНаСкладахОстатки.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры, 0, 0, ТоварыНаСкладахОстатки.КоличествоОстаток КАК КоличествоОстаток, 0 КАК КоличествоЗаказаноНаПроизводство ИЗ РегистрНакопления.ТоварыНаСкладах.Остатки(, ) КАК ТоварыНаСкладахОстатки ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ ВЫБОР КОГДА ЗаказыНаПроизводствоОстатки.Номенклатура.СкладОтгрузкиКонечной <> ЗНАЧЕНИЕ(Справочник.Склады.ПустаяСсылка) ТОГДА ЗаказыНаПроизводствоОстатки.Номенклатура.СкладОтгрузкиКонечной ИНАЧЕ ТоварыНаСкладахОстатки.Склад КОНЕЦ, ЗаказыНаПроизводствоОстатки.Номенклатура, ЗаказыНаПроизводствоОстатки.ХарактеристикаНоменклатуры, 0, 0, 0, ЗаказыНаПроизводствоОстатки.КоличествоОстаток ИЗ РегистрНакопления.ЗаказыНаПроизводство.Остатки(, ) КАК ЗаказыНаПроизводствоОстатки ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыНаСкладах.Остатки КАК ТоварыНаСкладахОстатки ПО ЗаказыНаПроизводствоОстатки.Номенклатура = ТоварыНаСкладахОстатки.Номенклатура И ЗаказыНаПроизводствоОстатки.ХарактеристикаНоменклатуры = ТоварыНаСкладахОстатки.ХарактеристикаНоменклатуры энджой |
|||
12
pessok
17.02.12
✎
14:24
|
регистр свой там подставь
|
|||
13
Lys
17.02.12
✎
14:24
|
(8) Ну-с, доставайте и показывайте своего друга (с)
Текст запроса в студию. |
|||
14
techguru
17.02.12
✎
14:30
|
(13),
ВЫБРАТЬ ТоварыВРезервеНаСкладахОстатки.Склад КАК Склад, ТоварыВРезервеНаСкладахОстатки.Номенклатура КАК Номенклатура, ТоварыВРезервеНаСкладахОстатки.КоличествоОстаток КАК КоличествоВРезерве, ТоварыВРезервеНаСкладахОстатки.ДокументРезерва КАК ДокументРезерва, ЕСТЬNULL(ТоварыНаСкладахОстатки.КоличествоОстаток, 0) КАК КоличествоНаСкладе ИЗ РегистрНакопления.ТоварыВРезервеНаСкладах.Остатки(&Период, ) КАК ТоварыВРезервеНаСкладахОстатки ПОЛНОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыНаСкладах.Остатки(&Период, ) КАК ТоварыНаСкладахОстатки ПО ТоварыВРезервеНаСкладахОстатки.Склад = ТоварыНаСкладахОстатки.Склад И ТоварыВРезервеНаСкладахОстатки.Номенклатура = ТоварыНаСкладахОстатки.Номенклатура ГДЕ ТоварыВРезервеНаСкладахОстатки.КоличествоОстаток > ТоварыНаСкладахОстатки.КоличествоОстаток СГРУППИРОВАТЬ ПО ТоварыВРезервеНаСкладахОстатки.Склад, ТоварыВРезервеНаСкладахОстатки.Номенклатура, ТоварыВРезервеНаСкладахОстатки.ДокументРезерва, ТоварыВРезервеНаСкладахОстатки.КоличествоОстаток, ЕСТЬNULL(ТоварыНаСкладахОстатки.КоличествоОстаток, 0) УПОРЯДОЧИТЬ ПО Склад, Номенклатура, ДокументРезерва |
|||
15
pessok
17.02.12
✎
14:34
|
(14) КАК у тебя выведутся товары, которых нет на складе с таким условием?
|
|||
16
Lys
17.02.12
✎
14:34
|
(14) Условие (секцию ГДЕ) удали.
|
|||
17
techguru
17.02.12
✎
14:36
|
(16) Если удалить ГДЕ, то конечно, товар с нулевым остатком выводится. Но мне необходимо, чтобы результаты фильтровались по этому условию. Если резерв = 12 шт, а остаток 0 шт, то строка выводится, а если резерв = 1 шт, а остаток = 10 шт, то не выводится.
|
|||
18
pessok
17.02.12
✎
14:38
|
(17) сделай уже как 11 и наложи условие на результат
|
|||
19
Reset
17.02.12
✎
14:38
|
(17) "Если резерв = 12 шт, а остаток 0 шт, то строка выводится, а если резерв = 1 шт, а остаток = 10 шт, то не выводится."
Что мешает напичать это условие? |
|||
20
Reset
17.02.12
✎
14:38
|
написать*
|
|||
21
Reset
17.02.12
✎
14:41
|
На самом деле, запутался, что должно выводиться, а что не должно.
|
|||
22
techguru
17.02.12
✎
14:42
|
(21), должны выводиться только те строки, в которых Резерв превышает Остаток на складе
|
|||
23
Reset
17.02.12
✎
14:42
|
isNull(ТоварыВРезервеНаСкладахОстатки.КоличествоОстаток,0) > isNull(ТоварыНаСкладахОстатки.КоличествоОстаток,0)
не прокатит? |
|||
24
Reset
17.02.12
✎
14:43
|
(23) к (22)
|
|||
25
pessok
17.02.12
✎
14:45
|
ВЫБРАТЬ
ТоварыВРезервеНаСкладахОстатки.Номенклатура КАК Номенклатура, ТоварыВРезервеНаСкладахОстатки.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры, ТоварыВРезервеНаСкладахОстатки.СерияНоменклатуры КАК СерияНоменклатуры, ТоварыВРезервеНаСкладахОстатки.КоличествоОстаток КАК ВРезерве, 0 КАК НаСкладе ИЗ РегистрНакопления.ТоварыВРезервеНаСкладах.Остатки КАК ТоварыВРезервеНаСкладахОстатки ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ ТоварыНаСкладахОстатки.Номенклатура, ТоварыНаСкладахОстатки.ХарактеристикаНоменклатуры, ТоварыНаСкладахОстатки.СерияНоменклатуры, 0, ТоварыНаСкладахОстатки.КоличествоОстаток ИЗ РегистрНакопления.ТоварыНаСкладах.Остатки(, ) КАК ТоварыНаСкладахОстатки условие накладываешь уже на результат |
|||
26
techguru
17.02.12
✎
14:45
|
(24), бинго! Спасибо!
|
|||
27
hhhh
17.02.12
✎
14:46
|
(22) если строки остатка нет, то ТоварыВРезервеНаСкладахОстатки.КоличествоОстаток = NULL и твое условие
ГДЕ ТоварыВРезервеНаСкладахОстатки.КоличествоОстаток > ТоварыНаСкладахОстатки.КоличествоОстаток оказывается в полной ж. ты - миллионпервая жертва NULL. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |