Имя: Пароль:
1C
 
дублирующиеся строки в запросе
0 LivingStar
 
12.03.15
10:48
У документа есть табличная часть ОтправленныеСМСПассажиру. Нужно что бы извлекались только те документы у которых в тч нет значений переданных в запрос. Документы с переданным значением КолЧасов не извлекаются, но в запросе присутсвует документ 2 раза если к примеру у него 2 строки в тч ОтправленныеСМСПассажиру, как сделать что бы в запросе были уникальные строки по документам??
|

ВЫБРАТЬ
    вгтЗаказТрансфераОтправленныеСМСПассажиру.Ссылка КАК СсылкаЗаказТрансфера,
    вгтЗаказТрансфераОтправленныеСМСПассажиру.Ссылка.ДатаВремяПодачиТранспорта,
    МАКСИМУМ(ВЫБОР
            КОГДА ЕСТЬNULL(вгтЗаказТрансфераОтправленныеСМСПассажиру.ОтправленоЧасовЗа, 0) = &КолЧасов
                ТОГДА ИСТИНА
            ИНАЧЕ ЛОЖЬ
        КОНЕЦ) КАК ЕстьКоличество,
    вгтЗаказТрансфераОтправленныеСМСПассажиру.НомерСтроки,
    вгтЗаказТрансфераОтправленныеСМСПассажиру.ОтправленоЧасовЗа
ИЗ
    Документ.вгтЗаказТрансфера.ОтправленныеСМСПассажиру КАК вгтЗаказТрансфераОтправленныеСМСПассажиру
ГДЕ
    вгтЗаказТрансфераОтправленныеСМСПассажиру.Ссылка.Дата МЕЖДУ &НачДата И &КонДата

СГРУППИРОВАТЬ ПО
    вгтЗаказТрансфераОтправленныеСМСПассажиру.Ссылка,
    вгтЗаказТрансфераОтправленныеСМСПассажиру.Ссылка.ДатаВремяПодачиТранспорта,
    вгтЗаказТрансфераОтправленныеСМСПассажиру.НомерСтроки,
    вгтЗаказТрансфераОтправленныеСМСПассажиру.ОтправленоЧасовЗа

ИМЕЮЩИЕ
    МАКСИМУМ(ВЫБОР
            КОГДА ЕСТЬNULL(вгтЗаказТрансфераОтправленныеСМСПассажиру.ОтправленоЧасовЗа, 0) = &КолЧасов
                ТОГДА ИСТИНА
            ИНАЧЕ ЛОЖЬ
        КОНЕЦ) = ЛОЖЬ

УПОРЯДОЧИТЬ ПО
    вгтЗаказТрансфераОтправленныеСМСПассажиру.Ссылка.ДатаВремяПодачиТранспорта
1 LivingStar
 
12.03.15
10:50
я прогнал, дубли появились от того что вывел

вгтЗаказТрансфераОтправленныеСМСПассажиру.НомерСтроки,
вгтЗаказТрансфераОтправленныеСМСПассажиру.ОтправленоЧасовЗа
2 LivingStar
 
12.03.15
10:56
но почему то не выбираются документы у которых пустая табличная часть, как быть с ними?
3 D_E_S_131
 
12.03.15
11:03
Надо получать документы из таблицы "вгтЗаказТрансфера", а "вгтЗаказТрансфераОтправленныеСМСПассажиру" использовать только для проверки.
4 LivingStar
 
12.03.15
11:05
(3) подскажите как в этом запросе получить документы у которых нет строк в тч ОтправленныеСМСПассажиру?
5 LivingStar
 
12.03.15
11:25
можно ли как то сделать что бы этот запрос выбирал так же документы у которых в табличной части ОтправленныеСМСПассажиру нет строк?

ВЫБРАТЬ
    вгтЗаказТрансфераОтправленныеСМСПассажиру.Ссылка КАК СсылкаЗаказТрансфера,
    вгтЗаказТрансфераОтправленныеСМСПассажиру.Ссылка.ДатаВремяПодачиТранспорта,
    МАКСИМУМ(ВЫБОР
            КОГДА ЕСТЬNULL(вгтЗаказТрансфераОтправленныеСМСПассажиру.ОтправленоЧасовЗа, 0) = &КолЧасов
                ТОГДА ИСТИНА
            ИНАЧЕ ЛОЖЬ
        КОНЕЦ) КАК ЕстьКоличество,
    вгтЗаказТрансфера.Ссылка
ИЗ
    Документ.вгтЗаказТрансфера.ОтправленныеСМСПассажиру КАК вгтЗаказТрансфераОтправленныеСМСПассажиру
        ЛЕВОЕ СОЕДИНЕНИЕ Документ.вгтЗаказТрансфера КАК вгтЗаказТрансфера
        ПО вгтЗаказТрансфераОтправленныеСМСПассажиру.Ссылка = вгтЗаказТрансфера.Ссылка
ГДЕ
    вгтЗаказТрансфераОтправленныеСМСПассажиру.Ссылка.Дата МЕЖДУ &НачДата И &КонДата

СГРУППИРОВАТЬ ПО
    вгтЗаказТрансфераОтправленныеСМСПассажиру.Ссылка,
    вгтЗаказТрансфераОтправленныеСМСПассажиру.Ссылка.ДатаВремяПодачиТранспорта,
    вгтЗаказТрансфера.Ссылка

ИМЕЮЩИЕ
    МАКСИМУМ(ВЫБОР
            КОГДА ЕСТЬNULL(вгтЗаказТрансфераОтправленныеСМСПассажиру.ОтправленоЧасовЗа, 0) = &КолЧасов
                ТОГДА ИСТИНА
            ИНАЧЕ ЛОЖЬ
        КОНЕЦ) = ЛОЖЬ

УПОРЯДОЧИТЬ ПО
    вгтЗаказТрансфераОтправленныеСМСПассажиру.Ссылка.ДатаВремяПодачиТранспорта
6 D_E_S_131
 
12.03.15
11:28
Левое соединение таблицы "вгтЗаказТрансфера" с таблицей "вгтЗаказТрансфераОтправленныеСМСПассажиру" и проверкой по условию на  NULL или сколько-то там часов.
7 LivingStar
 
13.03.15
08:32
(6) а условие проверки где будет
8 D_E_S_131
 
13.03.15
09:56
(7) На закладке "Условия". К твоим текущим условиям добавится проверка на NULL (что бы обрабатывать доки с пустыми ТЧ). Будет выглядеть примерно так:

вгтЗаказТрансфераОтправленныеСМСПассажиру.ОтправленоЧасовЗа Есть Null ИЛИ вгтЗаказТрансфераОтправленныеСМСПассажиру.ОтправленоЧасовЗа = &КолЧасов