Имя: Пароль:
1C
1С v8
v8: УТ Запрос
0 skd1980
 
05.11.11
17:01
Добрый день! Почему запрос
"ВЫБРАТЬ
                  |    ТоварыНаСкладахОстатки.Номенклатура КАК Номенклатура,
                  |    СУММА(ТоварыНаСкладахОстатки.КоличествоОстаток) КАК КоличествоОстаток,
                  |    СУММА(Продажи.Количество) КАК КоличествоПродаж
                  |ИЗ
                  |    РегистрНакопления.ТоварыНаСкладах.Остатки КАК ТоварыНаСкладахОстатки
                  |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.Продажи КАК Продажи
                  |        ПО ТоварыНаСкладахОстатки.Номенклатура = Продажи.Номенклатура
                  |ГДЕ
                  |    Продажи.Период МЕЖДУ &НачПериода И &КонПериода
                  |
                  |СГРУППИРОВАТЬ ПО
                  |    ТоварыНаСкладахОстатки.Номенклатура
                  |
                  |УПОРЯДОЧИТЬ ПО
                  |    Номенклатура";

выводит только ту номенклатуру по остаткам, у которой было движение по продажам. Ведь у меня стоит Левое соединение. а значит должна выводиться вся номенклатура. Или я не прав?
1 shuhard
 
05.11.11
17:05
(0) ГДЕ   Продажи.Период МЕЖДУ &НачПериода И &КонПериода
2 Renat11111
 
05.11.11
17:05
НЕ ПРАВ
3 МишельЛагранж
 
05.11.11
17:06
а в условие ГДЕ остатки на складах в принципе попадают? ))
4 basicm
 
05.11.11
17:44
(0) ГДЕ Продажи.Период у тебя Null на которое ты накладываешь условие
5 luckyluke
 
05.11.11
17:48
(0) пользуйся параметрами виртуальной таблицы:
"ВЫБРАТЬ
                  |    ТоварыНаСкладахОстатки.Номенклатура КАК Номенклатура,
                  |    СУММА(ТоварыНаСкладахОстатки.КоличествоОстаток) КАК КоличествоОстаток,
                  |    СУММА(Продажи.Количество) КАК КоличествоПродаж
                  |ИЗ
                  |    РегистрНакопления.ТоварыНаСкладах.Остатки КАК ТоварыНаСкладахОстатки
                  |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.Продажи(&НачалоПериода, &КонецПериода) КАК Продажи
                  |        ПО ТоварыНаСкладахОстатки.Номенклатура = Продажи.Номенклатура
                  |
                  |СГРУППИРОВАТЬ ПО
                  |    ТоварыНаСкладахОстатки.Номенклатура
                  |
                  |УПОРЯДОЧИТЬ ПО
                  |    Номенклатура";
6 luckyluke
 
05.11.11
17:50
(5) не, соврал, надо ВТ Обороты брать, чтобы можно было указать параметры вирт таблицы:
"ВЫБРАТЬ
                  |    ТоварыНаСкладахОстатки.Номенклатура КАК Номенклатура,
                  |    СУММА(ТоварыНаСкладахОстатки.КоличествоОстаток) КАК КоличествоОстаток,
                  |    СУММА(Продажи.Количество) КАК КоличествоПродаж
                  |ИЗ
                  |    РегистрНакопления.ТоварыНаСкладах.Остатки КАК ТоварыНаСкладахОстатки
                  |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.Продажи.Обороты(&НачалоПериода, &КонецПериода) КАК Продажи
                  |        ПО ТоварыНаСкладахОстатки.Номенклатура = Продажи.Номенклатура
                  |
                  |СГРУППИРОВАТЬ ПО
                  |    ТоварыНаСкладахОстатки.Номенклатура
                  |
                  |УПОРЯДОЧИТЬ ПО
                  |    Номенклатура";
7 skd1980
 
05.11.11
17:57
Всем спасибо! Особенное спасибо (5,6)!
Правильный запрос такой:
"ВЫБРАТЬ
                  |    СУММА(Продажи.КоличествоОборот) КАК КоличествоПродаж,
                  |    СУММА(ТоварыНаСкладах.Количество) КАК КоличествоОстат,
                  |    ТоварыНаСкладах.Номенклатура КАК НоменклатураОстат,
                  |    Продажи.Номенклатура КАК НоменклатураПродаж
                  |ИЗ
                  |    РегистрНакопления.ТоварыНаСкладах КАК ТоварыНаСкладах
                  |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.Продажи.Обороты(&НачПериода, &КонПериода)КАК Продажи
                  |        ПО ТоварыНаСкладах.Номенклатура = Продажи.Номенклатура
                  |СГРУППИРОВАТЬ ПО
                  |    ТоварыНаСкладах.Номенклатура,
                  |    Продажи.Номенклатура
                  |ИТОГИ ПО
                  |    НоменклатураОстат,
                  |    НоменклатураПродаж"
8 skd1980
 
05.11.11
18:19
В (7) с запросом поспешил. Верный будет как в (6).
Еще раз большое СПАСИБО (6)!
Закон Брукера: Даже маленькая практика стоит большой теории.