|   |   | 
| 
 | В запросе строки не объединяются | ☑ | ||
|---|---|---|---|---|
| 0
    
        AnisaL 13.11.13✎ 10:43 | 
        Добрый день!
 Есть запрос, никак не объединяются строки с Доп работами и транспортом и питанием - выдает две строки, а когда Рабочая смена, то строки в одну объединяются (рабочая смена + питание + транспорт). Где портак? ВЫБРАТЬ ВложенныйЗапрос.ДатаСоздания, ВложенныйЗапрос.Клиент, ВложенныйЗапрос.Проведен, СУММА(ВложенныйЗапрос.КоличествоРабочаяСмена) КАК КоличествоРабочаяСмена, СУММА(ВложенныйЗапрос.ЦенаРабочаяСмена) КАК ЦенаРабочаяСмена, СУММА(ВложенныйЗапрос.СуммаРабочаяСмена) КАК СуммаРабочаяСмена, СУММА(ВложенныйЗапрос.КоличествоДопРаботы) КАК КоличествоДопРаботы, СУММА(ВложенныйЗапрос.ЦенаДопРаботы) КАК ЦенаДопРаботы, СУММА(ВложенныйЗапрос.СуммаДопРаботы) КАК СуммаДопРаботы, СУММА(ВложенныйЗапрос.СуммаПитание) КАК СуммаПитание, СУММА(ВложенныйЗапрос.СуммаТранспорт) КАК СуммаТранспорт, ВложенныйЗапрос.ФлагЗаполненияЦены ПОМЕСТИТЬ ВТ ИЗ (ВЫБРАТЬ ТЧ.Ссылка.ДатаСоздания КАК ДатаСоздания, ТЧ.Ссылка.Клиент КАК Клиент, ТЧ.Ссылка.Проведен КАК Проведен, ВЫБОР КОГДА ТЧ.Работы.Наименование ПОДОБНО &РабСмена ТОГДА ВЫБОР КОГДА ТЧ.ЦенаВнутренная = 1 ТОГДА 0 ИНАЧЕ 1 КОНЕЦ КОНЕЦ КАК ФлагЗаполненияЦены, ВЫБОР КОГДА ТЧ.Работы.Наименование ПОДОБНО &РабСмена ТОГДА ТЧ.Количество ИНАЧЕ 0 КОНЕЦ КАК КоличествоРабочаяСмена, ВЫБОР КОГДА НЕ ТЧ.Работы.Наименование ПОДОБНО &РабСмена ТОГДА ТЧ.Количество ИНАЧЕ 0 КОНЕЦ КАК КоличествоДопРаботы, 0 КАК КоличествоПитание, 0 КАК КоличествоТранспорт, ВЫБОР КОГДА ТЧ.Работы.Наименование ПОДОБНО &РабСмена ТОГДА ВЫБОР КОГДА ТЧ.ЦенаВнутренная = 1 ТОГДА РаботникиОрганизацийСрезПоследних.Стоимость1часа ИНАЧЕ ТЧ.ЦенаВнутренная КОНЕЦ ИНАЧЕ 0 КОНЕЦ КАК ЦенаРабочаяСмена, ВЫБОР КОГДА НЕ ТЧ.Работы.Наименование ПОДОБНО &РабСмена ТОГДА ТЧ.ЦенаВнутренная ИНАЧЕ 0 КОНЕЦ КАК ЦенаДопРаботы, 0 КАК ЦенаПитание, 0 КАК ЦенаТранспорт, ВЫБОР КОГДА ТЧ.Работы.Наименование ПОДОБНО &РабСмена ТОГДА ВЫБОР КОГДА ТЧ.ЦенаВнутренная = 1 ТОГДА РаботникиОрганизацийСрезПоследних.Стоимость1часа * ТЧ.Количество ИНАЧЕ ТЧ.ЦенаВнутренная * ТЧ.Количество КОНЕЦ ИНАЧЕ 0 КОНЕЦ КАК СуммаРабочаяСмена, ВЫБОР КОГДА НЕ ТЧ.Работы.Наименование ПОДОБНО &РабСмена ТОГДА ТЧ.Количество * ТЧ.ЦенаВнутренная ИНАЧЕ 0 КОНЕЦ КАК СуммаДопРаботы, 0 КАК СуммаПитание, 0 КАК СуммаТранспорт ИЗ Документ.ЗаявкаНаряд.Работы КАК ТЧ ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ РаботникиОрганизацийСрезПоследнихВнутр.ФизЛицо КАК ФизЛицо, РегистрЦенПоВидамСметСрезПоследних.Стоимость1часа КАК Стоимость1часа, РегистрЦенПоВидамСметСрезПоследних.ВидСметы КАК ВидСметы ИЗ РегистрСведений.РаботникиОрганизаций.СрезПоследних(&Конец, ФизЛицо = &Исполнитель) КАК РаботникиОрганизацийСрезПоследнихВнутр ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.РегистрЦенПоВидамСмет.СрезПоследних(&Конец, ) КАК РегистрЦенПоВидамСметСрезПоследних ПО РаботникиОрганизацийСрезПоследнихВнутр.Подразделение = РегистрЦенПоВидамСметСрезПоследних.Подразделение И РаботникиОрганизацийСрезПоследнихВнутр.Должность = РегистрЦенПоВидамСметСрезПоследних.Должность) КАК РаботникиОрганизацийСрезПоследних ПО ТЧ.Ссылка.Смета.ВидСметы = РаботникиОрганизацийСрезПоследних.ВидСметы ГДЕ ТЧ.Исполнитель = &Исполнитель И ТЧ.Ссылка.ДатаСоздания МЕЖДУ &Начало И &Конец ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ ТЧ.Ссылка.ДатаСоздания, ТЧ.Ссылка.Клиент, ТЧ.Ссылка.Проведен, 0, 0, 0, ВЫБОР КОГДА ТЧ.Работы.Наименование ПОДОБНО &Питание ТОГДА ТЧ.Количество КОНЕЦ, ВЫБОР КОГДА ТЧ.Работы.Наименование ПОДОБНО &Транспорт ТОГДА ТЧ.Количество КОНЕЦ, 0, 0, ВЫБОР КОГДА ТЧ.Работы.Наименование ПОДОБНО &Питание ТОГДА ТЧ.ЦенаВнутренная КОНЕЦ, ВЫБОР КОГДА ТЧ.Работы.Наименование ПОДОБНО &Транспорт ТОГДА ТЧ.ЦенаВнутренная КОНЕЦ, 0, 0, ВЫБОР КОГДА ТЧ.Работы.Наименование ПОДОБНО &Питание ТОГДА ТЧ.Количество * ТЧ.ЦенаВнутренная ИНАЧЕ 0 КОНЕЦ, ВЫБОР КОГДА ТЧ.Работы.Наименование ПОДОБНО &Транспорт ТОГДА ТЧ.Количество * ТЧ.ЦенаВнутренная ИНАЧЕ 0 КОНЕЦ ИЗ Документ.ЗаявкаНаряд.НакладныеРасходы КАК ТЧ ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ РаботникиОрганизацийСрезПоследнихВнутр.ФизЛицо КАК ФизЛицо, РегистрЦенПоВидамСметСрезПоследних.Стоимость1часа КАК Стоимость1часа, РегистрЦенПоВидамСметСрезПоследних.ВидСметы КАК ВидСметы ИЗ РегистрСведений.РаботникиОрганизаций.СрезПоследних(&Конец, ФизЛицо = &Исполнитель) КАК РаботникиОрганизацийСрезПоследнихВнутр ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.РегистрЦенПоВидамСмет.СрезПоследних(&Конец, ) КАК РегистрЦенПоВидамСметСрезПоследних ПО РаботникиОрганизацийСрезПоследнихВнутр.Подразделение = РегистрЦенПоВидамСметСрезПоследних.Подразделение И РаботникиОрганизацийСрезПоследнихВнутр.Должность = РегистрЦенПоВидамСметСрезПоследних.Должность) КАК РаботникиОрганизацийСрезПоследних ПО ТЧ.Ссылка.Смета.ВидСметы = РаботникиОрганизацийСрезПоследних.ВидСметы ГДЕ ТЧ.Исполнитель = &Исполнитель И ТЧ.Ссылка.ДатаСоздания МЕЖДУ &Начало И &Конец) КАК ВложенныйЗапрос СГРУППИРОВАТЬ ПО ВложенныйЗапрос.ДатаСоздания, ВложенныйЗапрос.Клиент, ВложенныйЗапрос.Проведен, ВложенныйЗапрос.ФлагЗаполненияЦены ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ВТ.ДатаСоздания, ВТ.Клиент, ВТ.Проведен, ВТ.ФлагЗаполненияЦены, СУММА(ВТ.ЦенаРабочаяСмена) КАК ЦенаРабочаяСмена, СУММА(ВТ.КоличествоРабочаяСмена) КАК КоличествоРабочаяСмена, СУММА(ВТ.СуммаРабочаяСмена) КАК СуммаРабочаяСмена, СУММА(ВТ.СуммаДопРаботы) КАК СуммаДопРаботы, СУММА(ВТ.СуммаПитание) КАК СуммаПитание, СУММА(ВТ.СуммаТранспорт) КАК СуммаТранспорт, СУММА(ВТ.СуммаРабочаяСмена + ВТ.СуммаДопРаботы + ВТ.СуммаПитание + ВТ.СуммаТранспорт) КАК СуммаИтог ИЗ ВТ КАК ВТ СГРУППИРОВАТЬ ПО ВТ.ДатаСоздания, ВТ.Клиент, ВТ.Проведен, ВТ.ФлагЗаполненияЦены ИТОГИ ПО ОБЩИЕ АВТОУПОРЯДОЧИВАНИЕ | |||
| 1
    
        AnisaL 13.11.13✎ 10:49 | 
        (0) Документ один ЗаявкаНаряд, данные берутся из разных ТЧ, в одной ТЧ - работы указываются, в другой транспорт и питание. Когда в работах указывается "Рабочая смена", то результат запроса в одну строку расчитывается: суммарабсмена,суммадопработы,суммапитание,сумматранспорт. А когда в работах указывается какая-либо допработа, то так не сворачивается     | |||
| 2
    
        Wobland 13.11.13✎ 10:50 | 
        на фото никаких портаков не видно.. на талии?     | |||
| 3
    
        User_Agronom 13.11.13✎ 10:55 | 
        (0) Времени нет разбираться. Запрос пакетный, посмотри что возвращает первый запрос пакета.     | |||
| 4
    
        AnisaL 13.11.13✎ 10:57 | 
        (3) да, я смотрела - первый запрос тоже возвращает 2 строчки на один документ     | |||
| 5
    
        User_Agronom 13.11.13✎ 11:00 | 
        Он сгруппирован по полям
 СГРУППИРОВАТЬ ПО ВложенныйЗапрос.ДатаСоздания, ВложенныйЗапрос.Клиент, ВложенныйЗапрос.Проведен, ВложенныйЗапрос.ФлагЗаполненияЦены Наверное, наборы разные (раз строки разные) Посмотри значения этих полей | |||
| 6
    
        Wobland 13.11.13✎ 11:01 | 
        а не во флаге ли цены заполнения дело?     | |||
| 7
    
        User_Agronom 13.11.13✎ 11:04 | 
        (6) Если разные строки - значит разные наборы. 
 Поле ВложенныйЗапрос.ФлагЗаполненияЦены там есть. Так что возможно, что в этом поле и суть... | |||
| 8
    
        AnisaL 13.11.13✎ 11:04 | 
        (5) да, я поняла, во флаге дело - он расчитывается в первом запросе, а во втором - 0, вот и не сворачивается!     | |||
| 9
    
        User_Agronom 13.11.13✎ 11:04 | 
        + Собственно, ты спец по запросам. Кури его ;)     | |||
| 10
    
        AnisaL 13.11.13✎ 11:04 | 
        (6) ты прав ) это флаг     | |||
| 11
    
        User_Agronom 13.11.13✎ 11:04 | 
        (8) Умница! :) Дальше сама? ;)     | |||
| 12
    
        AnisaL 13.11.13✎ 11:05 | 
        (11) спасибо) ну как я думаю надо его из группировки убрать     | |||
| 13
    
        Wobland 13.11.13✎ 11:06 | 
        до сотни не добъём в этот раз     | |||
| 14
    
        Wobland 13.11.13✎ 11:06 | 
        (13) *бьём, конечно     | |||
| 15
    
        Wobland 13.11.13✎ 11:06 | 
        (12) его надо придумать, на зачем оно, и как с этим дальше жить     | |||
| 16
    
        AnisaL 13.11.13✎ 11:07 | 
        (13) :-)))))     | |||
| 17
    
        WildSery 13.11.13✎ 11:07 | 
        (12) МАКСИМУМ(ВложенныйЗапрос.ФлагЗаполненияЦены)     | |||
| 18
    
        User_Agronom 13.11.13✎ 11:07 | 
        (12) Не получиться ;( Только через танец.
 Думай дальше сама. | |||
| 19
    
        User_Agronom 13.11.13✎ 11:08 | 
        (17) А почему не МИНИМУМ? Или КОЛИЧЕСТВО? А может СУММА?     | |||
| 20
    
        User_Agronom 13.11.13✎ 11:08 | 
        +(19) А можно КОЛИЧЕСТВОРАЗЛИЧНЫХ()     | |||
| 21
    
        Wobland 13.11.13✎ 11:09 | 
        а я за 0 КАК Флаг в обоих запросах     | |||
| 22
    
        WildSery 13.11.13✎ 11:10 | 
        (19) Иногда лучше жевать, чем говорить.
 (21) Обоснование? | |||
| 23
    
        User_Agronom 13.11.13✎ 11:11 | 
        Я воздержусь, ибо не знаю как он используется дальше...     | |||
| 24
    
        Wobland 13.11.13✎ 11:11 | 
        (22) не будет     | |||
| 25
    
        AnisaL 13.11.13✎ 11:12 | 
        (23) запрос как используется? это отчет     | |||
| 26
    
        WildSery 13.11.13✎ 11:13 | 
        (24) А у меня - есть.
 MAX() даст правильное значение из первого запроса, где именно и происходит вычисление этого флага. | |||
| 27
    
        User_Agronom 13.11.13✎ 11:16 | 
        (25) В отчете это флаг как нибудь используется?     | |||
| 28
    
        Wobland 13.11.13✎ 11:17 | 
        (26) чем второй запрос не угодил? там тоже вычисление флага     | |||
| 29
    
        AnisaL 13.11.13✎ 11:18 | 
        (27) да.. его пришлось туда добавить.. ячейки разного цвета - если цена проставлена в документе, то белая, если не проставлена - то серая     | |||
| 30
    
        Wobland 13.11.13✎ 11:19 | 
        (29) какая цена? КОГДА ТЧ.Работы.Наименование ПОДОБНО &РабСмена     | |||
| 31
    
        AnisaL 13.11.13✎ 11:20 | 
        (30) цена на допработы     | |||
| 32
    
        AnisaL 13.11.13✎ 11:21 | 
        (30) наоборот КОГДА не подобно..     | |||
| 33
    
        Wobland 13.11.13✎ 11:21 | 
        (32) ну а когда подобно?     | |||
| 34
    
        WildSery 13.11.13✎ 11:23 | 
        (28) Во втором как раз константа, 0.     | |||
| 35
    
        AnisaL 13.11.13✎ 11:23 | 
        (33) когда подобно - это значит что документ "заявканаряд" с Рабочей сменой, цены как таковой в нем нет, 1-ка указывается, цена потом расчитывается из регистра левым соединением     | |||
| 36
    
        AnisaL 13.11.13✎ 11:23 | 
        (34) да, во втором она не рассчитывается - там просто 0     | |||
| 37
    
        Wobland 13.11.13✎ 11:24 | 
        (34) пох. вычисляется     | |||
| 38
    
        Wobland 13.11.13✎ 11:26 | 
        (35) максимум не хочешь?     | |||
| 39
    
        AnisaL 13.11.13✎ 11:27 | 
        вообщем добавила МАКСИМУМ в первом запросе, ошибку выдает..добавила в группировке, тож ошибка     | |||
| 40
    
        AnisaL 13.11.13✎ 11:27 | 
        (39)     МАКСИМУМ(ВЫБОР
 КОГДА ТЧ.Работы.Наименование ПОДОБНО &РабСмена ТОГДА ВЫБОР КОГДА ТЧ.ЦенаВнутренная = 1 ТОГДА 0 ИНАЧЕ 1 КОНЕЦ КОНЕЦ) КАК ФлагЗаполненияЦены, | |||
| 41
    
        Wobland 13.11.13✎ 11:27 | 
        вообще, надо цену в запросе тянуть. это уже под 200 постов будет     | |||
| 42
    
        AnisaL 13.11.13✎ 11:28 | 
        (41) так я ее и вытигаваю, вот этот флаг тока мешает     | |||
| 43
    
        WildSery 13.11.13✎ 11:30 | 
        (39) Хрустальный шар запотел, подскажи, какая ошибка?
 Надеюсь также, что из полей группировки тоже убрала. | |||
| 44
    
        User_Agronom 13.11.13✎ 13:36 | 
        (42) Наши победили? С каким счётом?     | |||
| 45
    
        User_Agronom 13.11.13✎ 13:42 | 
        Так пробовала?
 ВЫБРАТЬ ВТ.ДатаСоздания, ВТ.Клиент, ВТ.Проведен, максимум(ВТ.ФлагЗаполненияЦены) КАК ЭтотЧёртовФлагКоторыйМешает, СУММА(ВТ.ЦенаРабочаяСмена) КАК ЦенаРабочаяСмена, СУММА(ВТ.КоличествоРабочаяСмена) КАК КоличествоРабочаяСмена, СУММА(ВТ.СуммаРабочаяСмена) КАК СуммаРабочаяСмена, СУММА(ВТ.СуммаДопРаботы) КАК СуммаДопРаботы, СУММА(ВТ.СуммаПитание) КАК СуммаПитание, СУММА(ВТ.СуммаТранспорт) КАК СуммаТранспорт, СУММА(ВТ.СуммаРабочаяСмена + ВТ.СуммаДопРаботы + ВТ.СуммаПитание + ВТ.СуммаТранспорт) КАК СуммаИтог ИЗ ВТ КАК ВТ СГРУППИРОВАТЬ ПО ВТ.ДатаСоздания, ВТ.Клиент, ВТ.Проведен ИТОГИ ПО ОБЩИЕ АВТОУПОРЯДОЧИВАНИЕ | |||
| 46
    
        AnisaL 14.11.13✎ 13:38 | 
        (45) спасибо) так и получилось!     | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |