|
Как сделать чтобы в запросе поле связи двух регистров выводилось как ощее | ☑ | ||
---|---|---|---|---|
0
Капюшон
20.09.11
✎
00:16
|
Создал для УТ простенький запрос, который показывает все товары, которые есть в остатке, но и их цену из регистра "ЦеныНоменклатуры" срез последних. Но есть одна проблема. Когда товара в остатке нет, то поле "Номенклатура" пустое, но цена в столбике стоит. Как мне сделать, чтобы в любом случае столбик "Номенклатура" оказался заполненным?
Напрашивается на мысль только поставить условие в запрос Выбор Когда и проверить там если сумма остатка = 0 тогда брать номенклатуру из регистра сведений ЦеныНоменклатуры, а иначе из регистра остатки ВЫБРАТЬ ТоварыНаСкладахОстатки.Номенклатура КАК Номенклатура, ПРЕДСТАВЛЕНИЕ(ТоварыНаСкладахОстатки.Номенклатура), СУММА(ТоварыНаСкладахОстатки.КоличествоОстаток) КАК КоличествоОстаток, СУММА(ЦеныНоменклатурыСрезПоследних.Цена) КАК Цена, ЦеныНоменклатурыСрезПоследних.Номенклатура КАК Номенклатура1 {ВЫБРАТЬ Номенклатура.*, Номенклатура1.*, КоличествоОстаток, Цена} ИЗ РегистрНакопления.ТоварыНаСкладах.Остатки(&КонДата, ) КАК ТоварыНаСкладахОстатки ПОЛНОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&КонДата, ) КАК ЦеныНоменклатурыСрезПоследних ПО ТоварыНаСкладахОстатки.Номенклатура = ЦеныНоменклатурыСрезПоследних.Номенклатура СГРУППИРОВАТЬ ПО ТоварыНаСкладахОстатки.Номенклатура, ЦеныНоменклатурыСрезПоследних.Номенклатура УПОРЯДОЧИТЬ ПО Номенклатура, Номенклатура1, КоличествоОстаток, Цена {УПОРЯДОЧИТЬ ПО Номенклатура.*, Номенклатура1.*, КоличествоОстаток, Цена} ИТОГИ СУММА(КоличествоОстаток), СУММА(Цена) ПО ОБЩИЕ, Номенклатура {ИТОГИ ПО Номенклатура.*, КоличествоОстаток, Цена} |
|||
1
IronDemon
20.09.11
✎
00:25
|
Если нужен только товар с остатком измени связи на левое.
Если нужен и с 0 но с ценой тогда используй объединение. |
|||
2
Mort
20.09.11
✎
00:30
|
ЕСТЬNULL(ТоварыНаСкладахОстатки.Номенклатура, ЦеныНоменклатурыСрезПоследних.Номенклатура)
только нахрена ЗДЕСЬ полное соединение - ХЗ |
|||
3
Капюшон
20.09.11
✎
00:44
|
(2)чтобы видели цены даже у тех у кого нулевой остаток.
|
|||
4
Капюшон
20.09.11
✎
00:44
|
я решил задачу. всем спасибо.
вот так это делается: ВЫБРАТЬ СУММА(ВнешняяСтатистикаНоменклатурыСрезПоследних.ВнешняяСтатистика) КАК ВнешняяСтатистика, СУММА(ТоварыНаСкладахОстатки.КоличествоОстаток) КАК КоличествоОстаток, ВЫБОР КОГДА ТоварыНаСкладахОстатки.КоличествоОстаток > 0 ТОГДА ТоварыНаСкладахОстатки.Номенклатура ИНАЧЕ ВнешняяСтатистикаНоменклатурыСрезПоследних.Номенклатура КОНЕЦ КАК Номенклатура {ВЫБРАТЬ ВнешняяСтатистика, Номенклатура.*, КоличествоОстаток} ИЗ РегистрНакопления.ТоварыНаСкладах.Остатки(&КонДата, ) КАК ТоварыНаСкладахОстатки ПОЛНОЕ СОЕДИНЕНИЕ РегистрСведений.ВнешняяСтатистикаНоменклатуры.СрезПоследних(&КонДата, ) КАК ВнешняяСтатистикаНоменклатурыСрезПоследних ПО ТоварыНаСкладахОстатки.Номенклатура = ВнешняяСтатистикаНоменклатурыСрезПоследних.Номенклатура СГРУППИРОВАТЬ ПО ВЫБОР КОГДА ТоварыНаСкладахОстатки.КоличествоОстаток > 0 ТОГДА ТоварыНаСкладахОстатки.Номенклатура ИНАЧЕ ВнешняяСтатистикаНоменклатурыСрезПоследних.Номенклатура КОНЕЦ УПОРЯДОЧИТЬ ПО Номенклатура, ВнешняяСтатистика, КоличествоОстаток {УПОРЯДОЧИТЬ ПО ВнешняяСтатистика, ВнешняяСтатистика, КоличествоОстаток, Номенклатура.*} ИТОГИ СУММА(ВнешняяСтатистика), СУММА(КоличествоОстаток) ПО ОБЩИЕ, Номенклатура {ИТОГИ ПО ВнешняяСтатистика, Номенклатура.*, КоличествоОстаток, ВнешняяСтатистика} |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |