в языке запросов нет аналога EXISTS в SQL?! #385058


#0 by spenov
каким образом выкручиваться без такой конструкции? ВЫБРАТЬ * ИЗ Справочник.Договоры как Договоры ГДЕ СУЩЕСТВУЕТ(ВЫБРАТЬ * ИЗ...ГДЕ Контрагент=Договоры.Владелец И Договор=Договоры.Ссылка)
#1 by wPa
НЕ ЕСТЬNULL ?
#2 by toypaul
через соединение
#3 by rs_trade
ГДЕ (ВЫБРАТЬ COUNT(*) ИЗ...ГДЕ Контрагент=Договоры.Владелец И Договор=Договоры.Ссылка)<>0 Может так?
#4 by spenov
это все не годится. через соединение строки размножатся... проверка на нул вообще не пойму куда здесь прикрутить :)
#5 by rs_trade
за синтаксис не ручаюсь...)))
#6 by wPa
соединением с таким же запросом
#7 by spenov
- не компиляет...ругается...сильно :) не понял.можно подробнее идею?
#8 by IronDemon
ГДЕ Ссылка НЕ(ВЫБРАТЬ Ссылка ИЗ...ГДЕ Контрагент=Договоры.Владелец И Договор=Договоры.Ссылка)
#9 by IronDemon
Или без НЕ
#10 by spenov
в конкретно этом случае так можно выкрутиться. попробовал - получилось. но в общем случае не получиться, если например будет объединение таблиц по которым необходимо проверить вложенное условие :( запрос в итоге у меня получился такой: ТекстЗапроса="ВЫБРАТЬ ПЕРВЫЕ 1                 |    ДоговорыКонтрагентов.Ссылка как Договор, надо достать все договоры, по которым есть сальдо или оборот за заданный период
#11 by toypaul
почему это по объединению не проверить? объединение в подзапросе? легко!
#12 by toypaul
а вообще изврат какой-то - зачем тут справочник договов? почему не сделать основную выборку по таблице остатков и оборотов?
#13 by spenov
например такой вариант очень условный но всеже... ИЗ Справочник.Контрагенты ОБЪЕДИНИТЬ Справочник.Договоры ПО Контрагенты.Ссылка=Договоры.Владелец ГДЕ СУЩЕСТВУЕТ(ВЫБРАТЬ * ИЗ .. ГДЕ Контаргент=Контрагенты.Ссылка И Договор=Договоры.Ссылка) как такой вариант реализовать? изврата нет. в остатках и оборотах не обязательно субконтами будут договоры, а вбырать надо именно договоры. поэтому мой вариант думаю быстрее отработает с учотом проверки доп условий в договорах
#14 by spenov
и кстати условий может быть больше :)
#15 by KAO111
В этой ситуации можно не надо, но для примера... у 1С есть групповое сравнение ВЫБРАТЬ Т1.Контрагент, Т2.Договор ИЗ Справочник.Контрагенты как Т1 ОБЪЕДИНИТЬ Справочник.Договоры как Т2 ПО Контрагенты.Ссылка=Договоры.Владелец ГДЕ (Т1.Контрагент, Т2.Договор) в (ВЫБРАТЬ * ИЗ .. ГДЕ Контаргент=Т1.Контрагент И Договор=Т2.Договор)
#16 by spenov
МОЩНО! несколько неожиданно, но работает. с этим уже можно жить :) спасибо
#17 by megalodon
ИЗ Справочник.Договоры как Договоры ГДЕ 1 В(ВЫБРАТЬ 1 ИЗ...ГДЕ Контрагент=Договоры.Владелец И Договор=Договоры.Ссылка)
#18 by Ненавижу 1С
гению скажи в список недостатков включить
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С