|   |   | 
| 
 | Запрос | ☑ | ||
|---|---|---|---|---|
| 0
    
        SH_tan 05.09.14✎ 13:06 | 
        Добрый День Всем!!!
 Проблема с запросом Есть документы Счет Расходная накладная Доставка Принято считать как только проведена Расходная накладная то можно считать что Доставка выполнена, но есть подвох могут быть Расходные накладные не проведенные - в этом случае Доставка не выполнена Как правильно в запросе поставить условие? | |||
| 1
    
        Apokalipsec 05.09.14✎ 13:07 | 
        Выбор
 КОГДА РасходнаяНакладная.Проведен ТОГДА ИСТИНА ИНАЧЕ ЛОЖЬ КОНЕЦ | |||
| 2
    
        SH_tan 05.09.14✎ 13:12 | 
        (1) может что не правильно делаю но при этом у меня отсекаются доставки которые не выполнены
 ВЫБРАТЬ Доставка.Ссылка КАК Доставка, Доставка.ДатаПодачи, Доставка.Контрагент, ВЫРАЗИТЬ(Доставка.Примечание КАК СТРОКА(200)) КАК Примечание, Доставка.Контрагент.Родитель.Менеджер КАК Менеджер, ВЫБОР КОГДА ЕСТЬNULL(РасходнаяНакладная.Ссылка, "Невыполнено") = РасходнаяНакладная.Ссылка ТОГДА "Выполненно" ИНАЧЕ "Невыполнено" КОНЕЦ КАК Статус ИЗ Документ.Доставка КАК Доставка ЛЕВОЕ СОЕДИНЕНИЕ Документ.РасходнаяНакладная КАК РасходнаяНакладная ПО Доставка.ДокументОснование = РасходнаяНакладная.ДокументОснование ГДЕ Доставка.Дата МЕЖДУ &ДатаНач И &ДатаКон И ВЫБОР КОГДА &Менеджер = ЗНАЧЕНИЕ(Справочник.Пользователи.ПустаяСсылка) ТОГДА ИСТИНА ИНАЧЕ Доставка.Контрагент.Родитель.Менеджер В (&Менеджер) КОНЕЦ И Доставка.Проведен = ИСТИНА И ВЫБОР КОГДА &Выполненые = ИСТИНА ТОГДА ВЫБОР КОГДА ЕСТЬNULL(РасходнаяНакладная.Ссылка, ЛОЖЬ) = РасходнаяНакладная.Ссылка ТОГДА ИСТИНА ИНАЧЕ ЛОЖЬ КОНЕЦ ИНАЧЕ ИСТИНА КОНЕЦ И ВЫБОР КОГДА РасходнаяНакладная.Проведен = ИСТИНА ТОГДА ИСТИНА ИНАЧЕ ЛОЖЬ КОНЕЦ {ГДЕ Доставка.Контрагент.*, Доставка.Контрагент.Родитель.Менеджер.* КАК Менеджер} СГРУППИРОВАТЬ ПО Доставка.Ссылка, Доставка.ДатаПодачи, Доставка.Контрагент, ВЫРАЗИТЬ(Доставка.Примечание КАК СТРОКА(200)), Доставка.Контрагент.Родитель.Менеджер, ВЫБОР КОГДА ЕСТЬNULL(РасходнаяНакладная.Ссылка, "Невыполнено") = РасходнаяНакладная.Ссылка ТОГДА "Выполненно" ИНАЧЕ "Невыполнено" КОНЕЦ УПОРЯДОЧИТЬ ПО Доставка.Дата | |||
| 3
    
        Cube 05.09.14✎ 13:12 | 
        (1) А что, просто
 РасходнаяНакладная.Проведен КАК Доставлено не комильфо? :) Ну и с заглушкой от NULL: ЕстьNULL(РасходнаяНакладная.Проведен, ЛОЖЬ) КАК Доставлено | |||
| 4
    
        Cube 05.09.14✎ 13:14 | 
        (2) "КОГДА ЕСТЬNULL(РасходнаяНакладная.Ссылка, ЛОЖЬ) = РасходнаяНакладная.Ссылка"
 Красавчик чё... | |||
| 5
    
        SH_tan 05.09.14✎ 13:16 | 
        (4) я вот с этим Выбор когда еще не очень поэтому не пинайте сильно     | |||
| 6
    
        Apokalipsec 05.09.14✎ 13:16 | 
        (3) Комильфо и аккуратно, автору нагляднее просто пример.)     | |||
| 7
    
        SH_tan 05.09.14✎ 13:18 | 
        ВЫБРАТЬ
 Доставка.Ссылка КАК Доставка, Доставка.ДатаПодачи, Доставка.Контрагент, ВЫРАЗИТЬ(Доставка.Примечание КАК СТРОКА(200)) КАК Примечание, Доставка.Контрагент.Родитель.Менеджер КАК Менеджер, РасходнаяНакладная.Проведен КАК Доставлено ИЗ Документ.Доставка КАК Доставка ЛЕВОЕ СОЕДИНЕНИЕ Документ.РасходнаяНакладная КАК РасходнаяНакладная ПО Доставка.ДокументОснование = РасходнаяНакладная.ДокументОснование ГДЕ Доставка.Проведен = ИСТИНА {ГДЕ Доставка.Контрагент.*, Доставка.Контрагент.Родитель.Менеджер.* КАК Менеджер} СГРУППИРОВАТЬ ПО Доставка.Ссылка, Доставка.ДатаПодачи, Доставка.Контрагент, ВЫРАЗИТЬ(Доставка.Примечание КАК СТРОКА(200)), Доставка.Контрагент.Родитель.Менеджер, РасходнаяНакладная.Проведен УПОРЯДОЧИТЬ ПО Доставка.Дата | |||
| 8
    
        Cube 05.09.14✎ 13:18 | 
        (5) Так читай (3) и пиши вместо
 КОГДА ЕСТЬNULL(РасходнаяНакладная.Ссылка, ЛОЖЬ) = РасходнаяНакладная.Ссылка Это КОГДА ЕСТЬNULL(РасходнаяНакладная.Проведен, ЛОЖЬ) = ИСТИНА | |||
| 9
    
        SH_tan 05.09.14✎ 13:19 | 
        и тут возникают дубли
 к примеру была Расходная проведенная и не проведенная соответственно строк две | |||
| 10
    
        SH_tan 05.09.14✎ 13:20 | 
        (8) ок     | |||
| 11
    
        Cube 05.09.14✎ 13:23 | 
        (9) Так конечно - та группируешь по полю РасходнаяНакладная.Проведен. Делай так:
 ВЫБРАТЬ Доставка.Ссылка КАК Доставка, Доставка.ДатаПодачи, Доставка.Контрагент, ВЫРАЗИТЬ(Доставка.Примечание КАК СТРОКА(200)) КАК Примечание, Доставка.Контрагент.Родитель.Менеджер КАК Менеджер, МАКСИМУМ(ЕСТЬNULL(РасходнаяНакладная.Проведен, ЛОЖЬ)) КАК Доставлено ИЗ Документ.Доставка КАК Доставка ЛЕВОЕ СОЕДИНЕНИЕ Документ.РасходнаяНакладная КАК РасходнаяНакладная ПО Доставка.ДокументОснование = РасходнаяНакладная.ДокументОснование ГДЕ Доставка.Проведен = ИСТИНА {ГДЕ Доставка.Контрагент.*, Доставка.Контрагент.Родитель.Менеджер.* КАК Менеджер} СГРУППИРОВАТЬ ПО Доставка.Ссылка, Доставка.ДатаПодачи, Доставка.Контрагент, ВЫРАЗИТЬ(Доставка.Примечание КАК СТРОКА(200)), Доставка.Контрагент.Родитель.Менеджер УПОРЯДОЧИТЬ ПО Доставка.Дата | |||
| 12
    
        SH_tan 05.09.14✎ 13:28 | 
        (11) спасибо получилось
 Максимум что дает можешь сказать? МАКСИМУМ(ЕСТЬNULL(РасходнаяНакладная.Проведен, ЛОЖЬ)) КАК Доставлено | |||
| 13
    
        Cube 05.09.14✎ 13:30 | 
        (12) Выбирает максимальное значение поля.
 Истина = это единица (упрощенно) Ложь - это ноль. | |||
| 14
    
        Cube 05.09.14✎ 13:34 | 
        (12) Почитай в СП как работает метод Свернуть() у таблицы значений. Там есть группировочные поля и есть суммируемые поля. Вот в запросе можно у суммируемых полей указывать не только функцию СУММА(), но и другие - МАКСИМУМ(), МИНИМУМ(), КОЛИЧЕСТВО() и т.д.     | |||
| 15
    
        SH_tan 05.09.14✎ 13:39 | 
        (14) спасибо!!!     | 
 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |