![]() |
|
Исключить в первом запросе данные из второго запроса | ☑ | ||
---|---|---|---|---|
0
dark70
02.06.21
✎
18:15
|
Надо вытащить Контрагентов у которых расторгнуты договора. Т.е. дата окончания договора может быть 31.06.21, а дата расторжения 10.06.21
В таком случае если выбрана НачДата = 02.06.21, то в выборке этот Контрагент должен быть. Запрос = Новый Запрос; Расторгнутые = Новый МенеджерВременныхТаблиц; Запрос.МенеджерВременныхТаблиц = Расторгнутые; Запрос.Текст = "ВЫБРАТЬ РАЗЛИЧНЫЕ | АР_СтатусыОбъектовАрендыСрезПоследних.Договор КАК Договор |ПОМЕСТИТЬ Расторгнутые |ИЗ | РегистрСведений.АР_СтатусыОбъектовАренды.СрезПоследних( | , | Услуга В (&МассивУслуг) | И ДатаОкончанияАренды < &НачДата | И Статус = &ВАренде) КАК АР_СтатусыОбъектовАрендыСрезПоследних |ГДЕ | ВЫБОР | КОГДА &КоличествоВМассиве = 0 | ТОГДА ИСТИНА | ИНАЧЕ АР_СтатусыОбъектовАрендыСрезПоследних.Договор.Владелец В (&МассивКонтрагентов) | КОНЕЦ |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ РАЗЛИЧНЫЕ | АР_СтатусыОбъектовАрендыСрезПоследних.Договор.Владелец КАК Контрагент |ИЗ | РегистрСведений.АР_СтатусыОбъектовАренды.СрезПоследних( | , | Услуга В (&МассивУслуг) | И ДатаОкончанияАренды >= &НачДата | И Статус = &ВАренде) КАК АР_СтатусыОбъектовАрендыСрезПоследних, | Расторгнутые КАК Расторгнутые |ГДЕ | ВЫБОР | КОГДА &КоличествоВМассиве = 0 | ТОГДА ИСТИНА | ИНАЧЕ АР_СтатусыОбъектовАрендыСрезПоследних.Договор.Владелец В (&МассивКонтрагентов) | КОНЕЦ | И НЕ АР_СтатусыОбъектовАрендыСрезПоследних.Договор В | (ВЫБРАТЬ | Расторгнутые.Договор | ИЗ | Расторгнутые)"; У меня же в выборке пусто. Хотя если по отдельности к консоли, то все правильно. |
|||
1
mikecool
02.06.21
✎
18:26
|
левое соединение
... Где справа есть нулл |
|||
2
dark70
02.06.21
✎
18:46
|
АР_СтатусыОбъектовАрендыСрезПоследних_1 - сюда должны попадать все договора у которых ДатаОкончанияАренды >= &НачДата
АР_СтатусыОбъектовАрендыСрезПоследних_2 - сюда должны попадать все договора у которых ДатаОкончанияАренды <= &НачДата А уже в результат запроса должны попасть договора которые есть в СрезПоследних_1, но их нету в СрезПоследних_2 Может не правильно понял ? ВЫБРАТЬ РАЗЛИЧНЫЕ АР_СтатусыОбъектовАрендыСрезПоследних_1.Договор.Владелец КАК Контрагент ИЗ РегистрСведений.АР_СтатусыОбъектовАренды.СрезПоследних( , Услуга В (&МассивУслуг) И ДатаОкончанияАренды >= &НачДата И Статус = &ВАренде) КАК АР_СтатусыОбъектовАрендыСрезПоследних_1 ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.АР_СтатусыОбъектовАренды.СрезПоследних( , Услуга В (&МассивУслуг) И ДатаОкончанияАренды < &НачДата И Статус = &ВАренде) КАК АР_СтатусыОбъектовАрендыСрезПоследних_2 ПО (АР_СтатусыОбъектовАрендыСрезПоследних_2.Договор ЕСТЬ NULL) ГДЕ ВЫБОР КОГДА &КоличествоВМассиве = 0 ТОГДА ИСТИНА ИНАЧЕ АР_СтатусыОбъектовАрендыСрезПоследних_1.Договор.Владелец В (&МассивКонтрагентов) КОНЕЦ И ВЫБОР КОГДА &КоличествоВМассиве = 0 ТОГДА ИСТИНА ИНАЧЕ АР_СтатусыОбъектовАрендыСрезПоследних_2.Договор.Владелец В (&МассивКонтрагентов) КОНЕЦ Но нифига не работает :( |
|||
3
dark70
02.06.21
✎
19:52
|
Все, получилось. Спасибо.
Пришлось перенести условие из ГДЕ ВЫБОР КОГДА &КоличествоВМассиве = 0 ТОГДА ИСТИНА ИНАЧЕ АР_СтатусыОбъектовАрендыСрезПоследних_1.Договор.Владелец В (&МассивКонтрагентов) КОНЕЦ И ВЫБОР КОГДА &КоличествоВМассиве = 0 ТОГДА ИСТИНА ИНАЧЕ АР_СтатусыОбъектовАрендыСрезПоследних_2.Договор.Владелец В (&МассивКонтрагентов) КОНЕЦ в РегистрСведений.АР_СтатусыОбъектовАренды.СрезПоследних( | , | Услуга В (&МассивУслуг) | И ДатаОкончанияАренды >= &НачДата | И Статус = &ВАренде | И ВЫБОР | КОГДА &КоличествоВМассиве = 0 | ТОГДА ИСТИНА | ИНАЧЕ Договор.Владелец В (&МассивКонтрагентов) | КОНЕЦ) |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |