|
Помогите с запросом |
☑ |
0
Jaroslavka777
03.10.15
✎
12:40
|
Готовлю к экзамену, пишу запрос и что-то застопорилась.
Цель запроса - проверить есть ли остатки на складе.
Запрос не корректно работает, если в вирт.таб остатков вообще нет записи о каком-либо товаре(небыло кол. движений по нему пока). Строки просто нет в результата запроса. Как обойти?
ВЫБРАТЬ
РеализацияТоваровТовары.Товар,
СУММА(РеализацияТоваровТовары.Количество) КАК Количество
ПОМЕСТИТЬ ВТ
ИЗ
Документ.РеализацияТоваров.Товары КАК РеализацияТоваровТовары
ГДЕ
РеализацияТоваровТовары.Ссылка = &Ссылка
СГРУППИРОВАТЬ ПО
РеализацияТоваровТовары.Товар
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
ЕСТЬNULL(ТоварыНаСкладахОстатки.КоличествоОстаток, 0) как рег,
ВТ.Количество КАК док,
ВТ.Товар КАК Товар
ИЗ
ВТ КАК ВТ
ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыНаСкладах.Остатки КАК ТоварыНаСкладахОстатки
ПО ВТ.Товар = ТоварыНаСкладахОстатки.Товар
ГДЕ
ТоварыНаСкладахОстатки.Склад = &Склад
|
|
1
RomanYS
03.10.15
✎
12:43
|
"Цель запроса - проверить есть ли остатки на складе."
А зачем тогда Документ.РеализацияТоваров?
|
|
2
jsmith82
03.10.15
✎
12:43
|
Ну, во-первых, склад в параметры вирт. таблицы надо засунуть
|
|
3
jsmith82
03.10.15
✎
12:43
|
(1) Контроль остатков при проведении
|
|
4
jsmith82
03.10.15
✎
12:44
|
Мля, кэпом поработал
|
|
5
RomanYS
03.10.15
✎
12:44
|
Если нужна вся номенклатура - бери левой таблицей Справочник.Номенклатура
|
|
6
Jaroslavka777
03.10.15
✎
12:44
|
(1) это экз. по программированию. конфигурацию сам пишешь на таких
|
|
7
Jaroslavka777
03.10.15
✎
12:50
|
(2) Исправила, стало верно. Правильно я поняла:
Таблица вирт. остатков была получена запросом. Но в строке с этим товаром все стояло NULL. в том числе и склад. потому и условие "где" его отсекло?
|
|
8
RomanYS
03.10.15
✎
12:51
|
(7) правильно
Условие на правую таблицу делает соединение внутренним
|
|
9
jsmith82
03.10.15
✎
12:53
|
(7) О какая умница. Все бы начинающие 1сники такими были
|
|
10
Jaroslavka777
03.10.15
✎
12:54
|
(8) не поняла про соединение. Объясни пожалуйста
|
|
11
Jaroslavka777
03.10.15
✎
12:57
|
(9) :) Чистова немножко смотрела
|
|
12
RomanYS
03.10.15
✎
12:58
|
(10) ты сама объяснила в (7)
Суть "левого" соединения - должны попасть все записи из левой таблицы. Если наложить условие на поля правую таблицу, то могут отсечься записи из левой таблицы.
|
|
13
Jaroslavka777
03.10.15
✎
13:01
|
Всем спасибо, рррработает)
|
|
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший