|
запутался с простым запросом. помогите разобраться в чем затык |
☑ |
0
rchervak
20.11.15
✎
09:18
|
всем привет.
вроде бы элементарный запрос, но не хочет отрабатывать.
Задача выбрать записи из таблицы Общ_ФондОстатки.Комната только те которых нет в временной таблице ВТ_обход.
ВЫБРАТЬ
ОбходКомнатСрезПоследних.комната
ПОМЕСТИТЬ ВТ_обход
ИЗ
РегистрСведений.ОбходКомнат.СрезПоследних(&Период, ) КАК ОбходКомнатСрезПоследних
СГРУППИРОВАТЬ ПО
ОбходКомнатСрезПоследних.комната
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
Общ_ФондОстатки.Комната КАК Комната,
Общ_ФондОстатки.Комната.Владелец
ИЗ
РегистрНакопления.Общ_Фонд.Остатки(&Период, Корпус = &Корпус) КАК Общ_ФондОстатки,
ВТ_обход КАК ВТ_обход
ГДЕ
не Общ_ФондОстатки.Комната В (ВТ_обход.комната)
СГРУППИРОВАТЬ ПО
Общ_ФондОстатки.Комната,
Общ_ФондОстатки.Комната.Владелец
УПОРЯДОЧИТЬ ПО
Комната
"не Общ_ФондОстатки.Комната В (ВТ_обход.комната)" - никак не хочет отрабатывать и выводит тупо все записи
если сделать
"Общ_ФондОстатки.Комната В (ВТ_обход.комната)" - то отрабатывает правильно, и выбирает только те "комнаты" - которые есть во вр. таблице.
в чем может быть затык?
|
|
1
Горогуля
20.11.15
✎
09:22
|
из основная левое вт где вт нулл
|
|
2
asady
20.11.15
✎
09:26
|
ВЫБРАТЬ РАЗЛИЧНЫЕ
Общ_ФондОстатки.Комната КАК Комната,
Общ_ФондОстатки.Комната.Владелец
ИЗ
РегистрНакопления.Общ_Фонд.Остатки(&Период, Корпус = &Корпус) КАК Общ_ФондОстатки
ГДЕ
не Общ_ФондОстатки.Комната В (выбрать вт.комната из ВТ_обход как вт)
УПОРЯДОЧИТЬ ПО
Комната
|
|
3
aleks_default
20.11.15
✎
09:27
|
Убери условие во втором пакете
ГДЕ
не Общ_ФондОстатки.Комната В (ВТ_обход.комната)
и увидишь в чем проблема
|
|
4
rchervak
20.11.15
✎
09:42
|
(2) да так все правильно отрабатывает. спасибо.
долго допирал, прочитал статью про "Выбрать в условии запроса"
все правильно.
|
|
5
aleks_default
20.11.15
✎
09:45
|
(4)почитай еще про декартово произведение
|
|
6
su_mai
20.11.15
✎
10:16
|
(0) Навскидку так:
ВЫБРАТЬ
ОбходКомнатСрезПоследних.комната
ПОМЕСТИТЬ ВТ_обход
ИЗ
РегистрСведений.ОбходКомнат.СрезПоследних(&Период, ) КАК ОбходКомнатСрезПоследних
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
Общ_ФондОстатки.Комната КАК Комната,
Общ_ФондОстатки.Комната.Владелец
ИЗ
РегистрНакопления.Общ_Фонд.Остатки(&Период, Корпус = &Корпус И Комната НЕ В(ВЫБРАТЬ ВложенныЗапрос.Комната ИЗ ВТ_обход КАК ВложенныЗапрос)) КАК Общ_ФондОстатки,
УПОРЯДОЧИТЬ ПО
Комната
не отлаживал и не буду :)
|
|