|
вывод в отчете номенклатуры без характеристик. | ☑ | ||
---|---|---|---|---|
0
Ramundo
08.01.14
✎
15:41
|
ВЫБРАТЬ
ТоварыВЯчейкахОстатки.Номенклатура КАК Номенклатура, ТоварыВЯчейкахОстатки.Ячейка, ТоварыВЯчейкахОстатки.ВНаличииОстаток КАК Остаток, ТоварыВЯчейкахОстатки.Номенклатура.ЕдиницаИзмерения КАК ЕдИзмерения, ТоварыВЯчейкахОстатки.Характеристика, ЦеныНоменклатурыСрезПоследних.Цена ИЗ РегистрНакопления.ТоварыВЯчейках.Остатки КАК ТоварыВЯчейкахОстатки ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних КАК ЦеныНоменклатурыСрезПоследних ПО ТоварыВЯчейкахОстатки.Характеристика.Наименование = ЦеныНоменклатурыСрезПоследних.Характеристика.Наименование ГДЕ ЦеныНоменклатурыСрезПоследних.ВидЦены.Наименование = "Розничная" Запрос выводит только номенклатуру, у которой есть характеристики и установлена розничная цена. Как вытащить те товары, у которых эти данные не указаны? |
|||
1
Eugeneer
08.01.14
✎
15:43
|
Полное содениение
|
|||
2
Eugeneer
08.01.14
✎
15:44
|
Твой запрос выводит только те которые есть на остатках.
Да еще условие ПО сделано черех опу. |
|||
3
Ramundo
08.01.14
✎
15:46
|
А по чему соединять, если делать полное соединение?
|
|||
4
Eugeneer
08.01.14
✎
15:47
|
ПО
ТоварыВЯчейкахОстатки.Номенклатура = ЦеныНоменклатурыСрезПоследних.Номенклатура И ТоварыВЯчейкахОстатки.Характеристика= ЦеныНоменклатурыСрезПоследних.Характеристика |
|||
5
Eugeneer
08.01.14
✎
15:48
|
(3) по номенклатуре и характеристикам - ссылкам.
а ты по наименованию характеристики соединяешь - грубейшая ошибка. Полное - это если тебе надо вывести все и которых нет на остатках. Левое если только те что на остатках - но опять таки с правильным соединением а не то чт оу тебя. |
|||
6
Eugeneer
08.01.14
✎
15:50
|
Но еще не все.
Полное выведет еще и позиции у которых есть цена. Если надо же вывести вообще полностью все товары с характерситиками и без, вне зависимости от остатков и цен, то надо делать 1) запрос по справочнику номенклатуры 2) К нему же - соединение с характеристиками всеми далее к этому двойному запросу добавлять отдельно запросы по осткткам и ценам с помощью конструкции ОБЪЕДИНИТЬ ВСЕ |
|||
7
Ramundo
08.01.14
✎
15:54
|
Соединил вот так:
ТоварыВЯчейкахОстатки.Номенклатура КАК Номенклатура, ТоварыВЯчейкахОстатки.Ячейка, ТоварыВЯчейкахОстатки.ВНаличииОстаток КАК Остаток, ТоварыВЯчейкахОстатки.Номенклатура.ЕдиницаИзмерения КАК ЕдИзмерения, ТоварыВЯчейкахОстатки.Характеристика, ЦеныНоменклатурыСрезПоследних.Цена ИЗ РегистрНакопления.ТоварыВЯчейках.Остатки КАК ТоварыВЯчейкахОстатки ПОЛНОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних КАК ЦеныНоменклатурыСрезПоследних ПО ТоварыВЯчейкахОстатки.Номенклатура = ЦеныНоменклатурыСрезПоследних.Номенклатура И ТоварыВЯчейкахОстатки.Характеристика = ЦеныНоменклатурыСрезПоследних.Характеристика ГДЕ ЦеныНоменклатурыСрезПоследних.ВидЦены.Наименование = "Розничная" Одна задача выполнена, то есть товар без характеристик отображается. Но товар без розничной цены нет. Плюс, после нужных данных в конце отчета выдаются пустые строки, в которых только все значения розничных цен. |
|||
8
catena
08.01.14
✎
16:30
|
(7)Чтобы отображался товар без розничной цены, надо ГДЕ засунуть в условия соединения.
|
|||
9
Eugeneer
08.01.14
✎
16:32
|
(7) читай (6)
Тебе нужен теперь совершенно другой запрос как я описал. Он сложнее. |
|||
10
Eugeneer
08.01.14
✎
16:32
|
(8) товаров без цен в регистре может тупо не быть.
Тк в регистре только то что регистрировалось. |
|||
11
Eugeneer
08.01.14
✎
16:35
|
(7) естественно так и будет. У тебя нигде не стоит упорядочивания по номенклатуре.
Плюс ПОЛНОЕ СОЕДИНЕНИЕ. А у тебя ТоварыВЯчейкахОстатки.Номенклатура КАК Номенклатура, ТоварыВЯчейкахОстатки.Ячейка, ТоварыВЯчейкахОстатки.ВНаличииОстаток КАК Остаток, ТоварыВЯчейкахОстатки.Номенклатура.ЕдиницаИзмерения КАК ЕдИзмерения, ТоварыВЯчейкахОстатки.Характеристика, ЦеныНоменклатурыСрезПоследних.Цена А это значит что у тебя выводится все заполненное только у тех у которыхз есть остатки, а у тех кто нету остатков в таблицу только одна цена и выйдет. |
|||
12
Eugeneer
08.01.14
✎
16:36
|
Тебе теперь точно надо переписывать все целиком под (6)
|
|||
13
Eugeneer
08.01.14
✎
16:40
|
ВЫБРАТЬ
ВложенныйЗапрос.Номенклатура КАК Номенклатура, ВложенныйЗапрос.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры, СУММА(ВложенныйЗапрос.КоличествоОстаток) КАК КоличествоОстаток ИЗ (ВЫБРАТЬ СпрНоменклатура.Ссылка КАК Номенклатура, ХарактеристикиНоменклатуры.Ссылка КАК ХарактеристикаНоменклатуры, 0 КАК КоличествоОстаток ИЗ Справочник.Номенклатура КАК СпрНоменклатура ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ХарактеристикиНоменклатуры КАК ХарактеристикиНоменклатуры ПО СпрНоменклатура.Ссылка = ХарактеристикиНоменклатуры.Владелец ГДЕ СпрНоменклатура.ЭтоГруппа = ЛОЖЬ ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ ЗапасыНаСкладах.Номенклатура, ЗапасыНаСкладах.Характеристика, ЗапасыНаСкладах.ВНаличииОстаток ИЗ РегистрНакопления.ТоварыНаСкладах.Остатки(, {(Склад) КАК Склад}) КАК ЗапасыНаСкладах) КАК ВложенныйЗапрос |
|||
14
Eugeneer
08.01.14
✎
16:41
|
К этому вложенному левым добавишь цены и получишь то что надо.
С тебя пузырь. А то чувствую хрен бы ты чо сделал. |
|||
15
Ramundo
08.01.14
✎
16:47
|
(12) Блин, Спасибо! Ща буду разбираться) Это просто мой второй отчет)
А вообще, так ради интереса, если бы оставить вот так: ВЫБРАТЬ ТоварыВЯчейкахОстатки.Номенклатура КАК Номенклатура, ТоварыВЯчейкахОстатки.Ячейка, ТоварыВЯчейкахОстатки.ВНаличииОстаток КАК Остаток, ТоварыВЯчейкахОстатки.Номенклатура.ЕдиницаИзмерения КАК ЕдИзмерения, ТоварыВЯчейкахОстатки.Характеристика, ЦеныНоменклатурыСрезПоследних.Цена ИЗ РегистрНакопления.ТоварыВЯчейках.Остатки КАК ТоварыВЯчейкахОстатки ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних КАК ЦеныНоменклатурыСрезПоследних ПО ТоварыВЯчейкахОстатки.Характеристика = ЦеныНоменклатурыСрезПоследних.Характеристика И ТоварыВЯчейкахОстатки.Номенклатура = ЦеныНоменклатурыСрезПоследних.Номенклатура ГДЕ ЦеныНоменклатурыСрезПоследних.ВидЦены.Наименование = "Розничная" То выходит, что все отображается норм, только нет позиций номенклатуры, у которых не указана розничная. Вообще, часто бывает, что на складе лежит товар, для которого какой-либо вид цен не указан? |
|||
16
Eugeneer
08.01.14
✎
17:17
|
(15) ну а почему нет. оприходовали а цены не назначили. запросто.
|
|||
17
Ramundo
08.01.14
✎
21:27
|
(8) Не подскажешь как?
|
|||
18
catena
09.01.14
✎
05:55
|
(10)Может. Но запрос (7) выводит только товар с розничной ценой, надо же человеку понять - почему.
(17)Условие на левую таблицу превращает твое полное соединение вовсе в правое. Потому что сначала происходит соединение, а потом на получившуюся выборку накладывается условие. Если переместить условие на вид цены из ГДЕ в ПО, порядок действий будет обратный. |
|||
19
WildSery
09.01.14
✎
10:33
|
(18) Не в правое, а во внутреннее.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |