8.х конструкция sql not in

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем reno, 13 авг 2009.

  1. TopicStarter Overlay
    reno
    Offline

    reno

    Регистрация:
    29 дек 2007
    Сообщения:
    13
    Симпатии:
    0
    Баллы:
    1
    Привет, необходимо из первого запроса вытащить все данные которые не равны данным во втором запросе
    Код:
    ВЫБРАТЬ 	
    ВложенныйЗапрос.Субконто1, 
    ВложенныйЗапрос.Субконто2, 	
    ВложенныйЗапрос.СуммаОстатокДт, 	
    ВложенныйЗапрос1.СуммаОстатокКт,
    ВложенныйЗапрос.СуммаОстатокДт - ВЫБОР 
    КОГДА ВложенныйЗапрос1.СуммаОстатокКт ЕСТЬ NULL
    ТОГДА 0 		
    ИНАЧЕ ВложенныйЗапрос1.СуммаОстатокКт 	КОНЕЦ КАК СуммаЗадолженности 
    ИЗ 	(ВЫБРАТЬ 		
    ХозрасчетныйОстатки.Счет КАК Счет, 		
    ХозрасчетныйОстатки.Субконто1 КАК Субконто1, 	
    ХозрасчетныйОстатки.Субконто2 КАК Субконто2, 	
    ХозрасчетныйОстатки.СуммаОстатокДт КАК СуммаОстатокДт 
    ИЗ 	РегистрБухгалтерии.Хозрасчетный.Остатки(&День, Счет = &Счет, , ) КАК ХозрасчетныйОстатки 	
    СГРУППИРОВАТЬ ПО 	
    ХозрасчетныйОстатки.Субконто1, 
    ХозрасчетныйОстатки.Субконто2, 
    ХозрасчетныйОстатки.Счет, 
    ХозрасчетныйОстатки.СуммаОстатокДт) КАК ВложенныйЗапрос 	
    ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ	
    ХозрасчетныйОстатки.Субконто1 КАК Субконто1, 
    ХозрасчетныйОстатки.Субконто2 КАК Субконто2,
    ХозрасчетныйОстатки.СуммаОстатокКт КАК СуммаОстатокКт 	
    ИЗ РегистрБухгалтерии.Хозрасчетный.Остатки(&День, Счет = &Счет02, , ) КАК ХозрасчетныйОстатки СГРУППИРОВАТЬ ПО
    ХозрасчетныйОстатки.Субконто1, 
    ХозрасчетныйОстатки.Субконто2,
    ХозрасчетныйОстатки.СуммаОстатокКт) КАК ВложенныйЗапрос1
    ПО ВложенныйЗапрос.Субконто1 = ВложенныйЗапрос1.Субконто1 
    И ВложенныйЗапрос.Субконто2 = ВложенныйЗапрос1.Субконто2
    ГДЕ 	(ВложенныйЗапрос.Субконто1 В (ВЫБРАТЬ 				ХозрасчетныйОборотыДтКт.Субконто1
    ИЗ 	РегистрБухгалтерии.Хозрасчетный.ОборотыДтКт(&Начало, &Конец, Период, СчетДт = &СчетДТ, , СчетКт = &СчетКТ, , ) КАК ХозрасчетныйОборотыДтКт))  
    УПОРЯДОЧИТЬ ПО 	ВложенныйЗапрос.Субконто1.Наименование
    
  2. uza
    Offline

    uza 1С, VBA (EXCEL), VB (.NET + WEB)

    Регистрация:
    10 июл 2007
    Сообщения:
    1.845
    Симпатии:
    1
    Баллы:
    29
    Подобно SQL.

    Код:
    Запрос1С    = Новый Запрос;
    Запрос1С.Текст = 
    "ВЫБРАТЬ
    |    Контрагенты.Ссылка
    |ПОМЕСТИТЬ Контрагенты_
    |ИЗ
    |    Справочник.Контрагенты КАК Контрагенты
    |ГДЕ
    |    Контрагенты.Наименование = &ИмяКонтрагента
    |;
    |
    |////////////////////////////////////////////////////////////////////////////////
    |ВЫБРАТЬ
    |    Контрагенты.Ссылка
    |ИЗ
    |    Справочник.Контрагенты КАК Контрагенты
    |ГДЕ
    |    (НЕ Контрагенты.Ссылка В
    |                (ВЫБРАТЬ
    |                    Контрагенты_.Ссылка
    |                ИЗ
    |                    Контрагенты_))";
    Запрос1С.УстановитьПараметр("ИмяКонтрагента", "Иванов Иван Иванович");
    Выборка1С    = Запрос1С.Выполнить().Выбрать();
    
    
    Первый подзапрос выбирает всех Ивановых Иван Иванычей
    Второй подзапрос выбирает всех, кто не вошел в первую выборку.
    К своему запросу адаптируете сами (лень и некогда разбираться)

Поделиться этой страницей