|
В запросе строки не объединяются | ☑ | ||
---|---|---|---|---|
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) спасибо) так и получилось!
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |