![]() |
![]() |
![]() |
|
Не выводятся нулевые остатки - почему? | ☑ | ||
---|---|---|---|---|
0
jq
08.09.07
✎
13:14
|
Хочу вывести в отчет и товары у кот. нулевые остатки. Добавил условие Есть Null и связал рег. Остатки с рег. ТоварыНаСкладах, а нулевые не выводятся - почему?
"ВЫБРАТЬ | ТоварыНаСкладахОстатки.Номенклатура КАК Номенклатура, | СУММА(ВЫБОР | КОГДА ТоварыНаСкладахОстатки.КоличествоОстаток ЕСТЬ NULL | ТОГДА 0 | ИНАЧЕ ТоварыНаСкладахОстатки.КоличествоОстаток | КОНЕЦ) КАК КоличествоОстаток, | ТоварыНаСкладахОстатки.ХарактеристикаНоменклатуры |ИЗ | РегистрНакопления.ТоварыНаСкладах КАК ТоварыНаСкладах | ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыНаСкладах.Остатки КАК ТоварыНаСкладахОстатки | ПО ТоварыНаСкладах.Номенклатура = ТоварыНаСкладахОстатки.Номенклатура | И ТоварыНаСкладах.Склад = ТоварыНаСкладахОстатки.Склад |ГДЕ | ТоварыНаСкладахОстатки.Склад = &ВыбСклад | |СГРУППИРОВАТЬ ПО | ТоварыНаСкладахОстатки.Номенклатура, | ТоварыНаСкладахОстатки.ХарактеристикаНоменклатуры | |УПОРЯДОЧИТЬ ПО | ТоварыНаСкладахОстатки.Номенклатура.Наименование" |
|||
1
Мимохожий Однако
08.09.07
✎
13:15
|
Привяжи еще к справочнику Номенклатура
|
|||
2
mikecool
08.09.07
✎
13:16
|
+1 Номенклатура + левые соединения твоих регистров...
|
|||
3
jq
08.09.07
✎
13:17
|
Пытался, но тогда выдает: Неоднозначное поле Номенклатура.Ссылка
|
|||
4
kumena
08.09.07
✎
13:20
|
потому что нулевые остатки не хранятся в регистрах.
|
|||
5
Мимохожий Однако
08.09.07
✎
13:24
|
(3)Код покажи. Может и подскажут дальше
|
|||
6
jq
08.09.07
✎
13:32
|
"ВЫБРАТЬ
| ТоварыНаСкладахОстатки.Номенклатура КАК Номенклатура, | СУММА(ВЫБОР | КОГДА ТоварыНаСкладахОстатки.КоличествоОстаток ЕСТЬ NULL | ТОГДА 0 | ИНАЧЕ ТоварыНаСкладахОстатки.КоличествоОстаток | КОНЕЦ) КАК КоличествоОстаток, | ТоварыНаСкладахОстатки.ХарактеристикаНоменклатуры |ИЗ | РегистрНакопления.ТоварыНаСкладах.Остатки КАК ТоварыНаСкладахОстатки | ПОЛНОЕ СОЕДИНЕНИЕ Справочник.Номенклатура КАК Номенклатура | ПО ТоварыНаСкладахОстатки.Номенклатура = Номенклатура.Ссылка |ГДЕ | ТоварыНаСкладахОстатки.Склад = &ВыбСклад | |СГРУППИРОВАТЬ ПО | ТоварыНаСкладахОстатки.Номенклатура, | ТоварыНаСкладахОстатки.ХарактеристикаНоменклатуры | |УПОРЯДОЧИТЬ ПО | ТоварыНаСкладахОстатки.Номенклатура.Наименование" Ошибка: Неоднозначное поле "Номенклатура.Ссылка" ПО ТоварыНаСкладахОстатки.Номенклатура = <<?>>Номенклатура.Ссылка |
|||
7
IronDemon
08.09.07
✎
13:40
|
ПОЛНОЕ СОЕДИНЕНИЕ Справочник.Номенклатура КАК Товар
ПО ТоварыНаСкладахОстатки.Номенклатура = Товар.Ссылка |
|||
8
jq
08.09.07
✎
13:44
|
Ааа, у меня два раза "Как Номеннклатура", а я искал "Номенклатура.Ссылка" :)
|
|||
9
jq
08.09.07
✎
13:47
|
Все-равно нулевые остатки не выводятся :(
|
|||
10
Defender aka LINN
08.09.07
✎
14:00
|
(3) Псевдоним таблцы справочника поменять религия мешает?
(7) Не итите моск. ЛЕВОЕ соединение с таблицей номенклатуры. Для эстетов возможен вариант с ОБЪЕДИНИТЬ ВСЕ. |
|||
11
IronDemon
08.09.07
✎
14:02
|
(10) запрос не я писал, я исправил ошибку с именами
|
|||
12
jq
08.09.07
✎
14:16
|
"ВЫБРАТЬ
| ТоварыНаСкладахОстатки.Номенклатура КАК Номенклатура, | СУММА(ВЫБОР | КОГДА ТоварыНаСкладахОстатки.КоличествоОстаток ЕСТЬ NULL | ТОГДА 0 | ИНАЧЕ ТоварыНаСкладахОстатки.КоличествоОстаток | КОНЕЦ) КАК КоличествоОстаток, | ТоварыНаСкладахОстатки.ХарактеристикаНоменклатуры |ИЗ | РегистрНакопления.ТоварыНаСкладах.Остатки КАК ТоварыНаСкладахОстатки | ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Номенклатура КАК Товар | ПО ТоварыНаСкладахОстатки.Номенклатура = Товар.Ссылка |ГДЕ | ТоварыНаСкладахОстатки.Склад = &ВыбСклад | |СГРУППИРОВАТЬ ПО | ТоварыНаСкладахОстатки.Номенклатура, | ТоварыНаСкладахОстатки.ХарактеристикаНоменклатуры | |УПОРЯДОЧИТЬ ПО | ТоварыНаСкладахОстатки.Номенклатура.Наименование" Выдает только положительные остатки, я уже и левое соединение и полное пробовал, все одно и тоже. |
|||
13
k23
08.09.07
✎
14:24
|
сказано же было в (4)
это же РегистрНакопления, нет там никаких остатков вообще, приращения там. нужно выбирать всю номенклатуру, которой нет в РегистрНакопления.Остаток |
|||
14
Злобный Фей
08.09.07
✎
14:29
|
Тупо навскидку:
ВЫБРАТЬ Товар.Ссылка, Товар.Представление, ТоварыНаСкладахОстатки.КоличествоОстаток ИЗ Справочник.Номенклатура КАК Товар ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыНаСкладах.Остатки КАК ТоварыНаСкладахОстатки ПО Товар.Ссылка = ТоварыНаСкладахОстатки.Номенклатура ГДЕ ЕСТЬNULL(ТоварыНаСкладахОстатки.КоличествоОстаток,0) = 0 |
|||
15
jq
08.09.07
✎
14:52
|
Ничего не понимаю, а теперь почему не выводит?
"ВЫБРАТЬ | Товар.Ссылка КАК Ссылка, | СУММА(ВЫБОР | КОГДА ТоварыНаСкладахОстатки.КоличествоОстаток ЕСТЬ NULL | ТОГДА 0 | ИНАЧЕ ТоварыНаСкладахОстатки.КоличествоОстаток КОНЕЦ) КАК КоличествоОстаток |ИЗ | Справочник.Номенклатура КАК Товар | ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыНаСкладах.Остатки КАК ТоварыНаСкладахОстатки | ПО Товар.Ссылка = ТоварыНаСкладахОстатки.Номенклатура |ГДЕ | ТоварыНаСкладахОстатки.Склад = &ВыбСклад | |СГРУППИРОВАТЬ ПО | Товар.Ссылка | |УПОРЯДОЧИТЬ ПО | Товар.Наименование" |
|||
16
mikecool
08.09.07
✎
14:55
|
1) замени ВЫБОР на ЕСТЬНУЛЛ
2) а есть ли у тебя по этому складу нулевые остатки? |
|||
17
Злобный Фей
08.09.07
✎
15:04
|
(16) 1. пох; 2. тоже пох.
(15) Автор, не тупи! Запрос правильный, но ГДЕ у тебя условие на нулевые остатки? |
|||
18
jq
08.09.07
✎
15:07
|
Нулевые остатки есть, а как это вместо Выбор ЕстьNull ???
|
|||
19
mikecool
08.09.07
✎
15:09
|
(17) зачем какое-то условие???
|
|||
20
mikecool
08.09.07
✎
15:10
|
(18) вместо
ВЫБОР | КОГДА ТоварыНаСкладахОстатки.КоличествоОстаток ЕСТЬ NULL | ТОГДА 0 | ИНАЧЕ ТоварыНаСкладахОстатки.КоличествоОстаток КОНЕЦ можно записать ЕСТЬNULL(ТоварыНаСкладахОстатки.КоличествоОстаток, 0) |
|||
21
jq
08.09.07
✎
15:10
|
(17)Если я добавляю
ГДЕ ЕСТЬNULL(ТоварыНаСкладахОстатки.КоличествоОстаток,0) = 0 тогда вообще ничего не выводит... |
|||
22
Злобный Фей
08.09.07
✎
15:13
|
(18) Йоптыть, твое
| СУММА(ВЫБОР | КОГДА ТоварыНаСкладахОстатки.КоличествоОстаток ЕСТЬ NULL | ТОГДА 0 | ИНАЧЕ ТоварыНаСкладахОстатки.КоличествоОстаток КОНЕЦ) КАК КоличествоОстаток это ПОЛЕ. Т.е. если совсем по тупому, тут ты определяешь, чаво у тя в отчет попадет в колонку остаток. На строки в выборке ето никак не влияет. ГДЕ ЕСТЬNULL(ТоварыНаСкладахОстатки.КоличествоОстаток,0) = 0 |
|||
23
mikecool
08.09.07
✎
15:13
|
(21) не слушай фея... а если с твоим условием ничего не выводит - значит нет
нулевых остатков... |
|||
24
jq
08.09.07
✎
15:14
|
(22)Ничего не выводит:
"ВЫБРАТЬ | Товар.Ссылка КАК Ссылка |ИЗ | Справочник.Номенклатура КАК Товар | ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыНаСкладах.Остатки КАК ТоварыНаСкладахОстатки | ПО Товар.Ссылка = ТоварыНаСкладахОстатки.Номенклатура |ГДЕ | ТоварыНаСкладахОстатки.Склад = &ВыбСклад | И ЕСТЬNULL(ТоварыНаСкладахОстатки.КоличествоОстаток,0) = 0 | |СГРУППИРОВАТЬ ПО | Товар.Ссылка | |УПОРЯДОЧИТЬ ПО | Товар.Наименование" |
|||
25
Злобный Фей
08.09.07
✎
15:14
|
(19) Да, это уже я туплю. Мне чета прочиталось, что автору надо только нулевые ((
|
|||
26
Defender aka LINN
08.09.07
✎
15:14
|
(15)
Вопросы? |
|||
27
mikecool
08.09.07
✎
15:14
|
+23 еще раз повторю - никаких условий для получения нулевых остатков не
требуется, достаточно к номенклатуре левым соединением привязать регистр остатков... когда же уже будем т-скл учить? |
|||
28
jq
08.09.07
✎
15:16
|
(23)Остатки есть (всмысле нулевые), т.к. у меня запрос выводил товары у которых только нулевые остатки. А мне надо, чтобы выводились все товары, и с нулевыми и с положительными.
|
|||
29
jq
08.09.07
✎
15:17
|
Сейчас еще попробую...
|
|||
30
Злобный Фей
08.09.07
✎
15:19
|
тады убери
| И ЕСТЬNULL(ТоварыНаСкладахОстатки.КоличествоОстаток,0) = 0 и буит те щастье |
|||
31
Defender aka LINN
08.09.07
✎
15:20
|
(30) Злобный, что чего, на? Да ты ПОСМОТРИ на этот запрос в (15)...
|
|||
32
Злобный Фей
08.09.07
✎
15:22
|
(27) Дадада, ты прав. Тока вот не надо мну скуль учить, я его лет десять назад изучал и с тех пор перманентно юзаю
|
|||
33
Злобный Фей
08.09.07
✎
15:26
|
(31) Не придирайся. Автору вывалится товар со всех складов. Ну и пох. Че, я за него буду думать, как номенклатуру отфильтровать по складам?
|
|||
34
Defender aka LINN
08.09.07
✎
15:28
|
(33) Да понятно, я тоже не собираюсь это делать :)
|
|||
35
Злобный Фей
08.09.07
✎
15:33
|
Вот у меня на тек проекте всё просто. Два склада, на самом деле просто на две зоны разделили: в одной большой товар, в другой - мелкий. И тупо сделали реквизит "Склад" у номенклатуры. А чё там у автора - хрен ево знает. В общем случае для УТ он не сможет получить интересующую его инфу в принципе.
Однако это всё какая-то телепатия |
|||
36
jq
08.09.07
✎
15:33
|
Т.е. как я понимаю все свелось к тому, что:
"ВЫБРАТЬ | Товар.Ссылка КАК Ссылка, | ТоварыНаСкладахОстатки.КоличествоОстаток |ИЗ | Справочник.Номенклатура КАК Товар | ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыНаСкладах.Остатки КАК ТоварыНаСкладахОстатки | ПО Товар.Ссылка = ТоварыНаСкладахОстатки.Номенклатура |ГДЕ | ТоварыНаСкладахОстатки.Склад = &ВыбСклад | |СГРУППИРОВАТЬ ПО | Товар.Ссылка, | ТоварыНаСкладахОстатки.КоличествоОстаток | |УПОРЯДОЧИТЬ ПО | Товар.Наименование" выводит только положительные остатки по выбранному складу, а если убрать условие |ГДЕ | ТоварыНаСкладахОстатки.Склад = &ВыбСклад тогда выводит по всем складам и нулевые остатки и положительные, а теперь получается надо отдельно результат запроса фильтровать? |
|||
37
Defender aka LINN
08.09.07
✎
15:35
|
(35) "в общем случае для УТ он не сможет получить интересующую его инфу в принципе." - меняй приципы.
(36) Нет, это получается, только если документацию не читать. Кто документацию читает, тот сразу получает нужный результат. |
|||
38
Злобный Фей
08.09.07
✎
15:36
|
(36) ..выводит только положительные остатки по выбранному складу.. и нулевые остатки по ВСЕЙ номенклатуре из твоей базы
|
|||
39
Злобный Фей
08.09.07
✎
15:40
|
(37) Давай, говори полностью. Какие принципы нужно поменять? Обычно у мну две проблемы: 1 неправильно прочитал/понял условие задачи, 2 плохо знаю конфу
|
|||
40
jq
08.09.07
✎
15:41
|
(38)...выводит только положительные остатки по выбранному складу.. и нулевые остатки по ВСЕЙ номенклатуре из твоей базы... КРОМЕ заданного склада, по нему положительные остатки не выводятся, у меня вроде так
|
|||
41
Злобный Фей
08.09.07
✎
15:46
|
Ну вас, вы меня совсем запутали, пойду выпью исчо вотке, бо народ уже негодует.
ЗЫ: Объясните плиз поподробнее чаво нуна получить в итоге ЗЗЫ: а мот я просто уже немного того и туплю... |
|||
42
jq
08.09.07
✎
15:48
|
Мне надо, чтобы выводились все товары, и с нулевыми остатками и с положительными
|
|||
43
Defender aka LINN
08.09.07
✎
15:49
|
(39) Параметры виртуальных таблиц.
|
|||
44
Злобный Фей
08.09.07
✎
15:52
|
(43) Енто касается исключительно быстродействия. Да ГДЕ работает звиздец как медленнее, чем параметр, ну и фигле? Зато очень наглядно. Если автор задаст условие в параметр вирт таблицы ему станет легче? Вопрос с нулевыми остатками тут при чём?
|
|||
45
Злобный Фей
08.09.07
✎
15:56
|
К тому же (можете не верить) первым постом в треде хотел обратить на это внимание, но забыл :)
|
|||
46
Defender aka LINN
08.09.07
✎
16:02
|
(44) Да при том. И наглядность тут вредна, особенное если вы с автором пойймете, что номенклатуры с нулевым остатком в таблице регистра не будет. А следовательно, условиее ее отбрости, бо там NULL, а не склад.
Элементарные, блин, вещи... |
|||
47
Злобный Фей
08.09.07
✎
16:14
|
(46) Или я хреново понял задачу, или ты..
|
|||
48
Злобный Фей
08.09.07
✎
17:00
|
да що вы говорите... Интересно, туплю я или ты?...
|
|||
49
Defender aka LINN
08.09.07
✎
18:41
|
(48) Скорее ты.
"Енто касается исключительно быстродействия" - не только "Если автор задаст условие в параметр вирт таблицы ему станет легче?" - еще как "Вопрос с нулевыми остатками тут при чём?" - условие в "ГДЕ" их отсекло. |
|||
50
Фулиган
09.09.07
✎
17:32
|
Эээ. А вооще не проще взять оборотный регистр и получить нулевые остатки если был оборот?
|
|||
51
Сюзи
09.09.07
✎
17:57
|
(42) попробуй так
"ВЫБРАТЬ |ТоварыНаСкладахОстатки.Номенклатура, |ТоварыНаСкладахОстатки.КоличествоОстаток |ИЗ |Справочник.Номенклатура КАК СпрНоменклатура |ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыНаСкладах.Остатки(&ПарДата, Склад = &ВыбСклад) КАК ТоварыНаСкладахОстатки |ПО СпрНоменклатура.Ссылка = ТоварыНаСкладахОстатки. Номенклатура "; |
|||
52
jq
09.09.07
✎
18:36
|
(51)Почти то что надо, только получается, что если нулевой остаток, то и номенклатуру не показывает, т.е. выводит полностью пустую строчку...
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |