Имя: Пароль:
1C
1С v8
Объединение запросов
,
0 avtodor
 
12.11.12
11:49
Ребят, прошу сильно не пинать, сам не раз это делал, работало, поиск юзал, читал, но что-то никак не найду проблему.
Суть - план фактный анализ себестоимости, сильно объяснять не буду, думаю все читается, сразу скажу обе временные таблицы собраны из таблиц значений, колонки типизированы, типы одинаковые, поле "Затрата" - составной тип.
Собственно код
Запрос.Текст =
   "ВЫБРАТЬ
   |    ВнутреннийЗапрос.Затрата,
   |    ВнутреннийЗапрос.ЕдИзм,
   |    ВнутреннийЗапрос.СтатьяЗатрат,
   |    ВнутреннийЗапрос.КоличествоПлан,
   |    ВнутреннийЗапрос.ЦенаПлан,
   |    ВнутреннийЗапрос.СтоимостьПлан,
   |    ВнутреннийЗапрос.КоличествоФакт,
   |    ВнутреннийЗапрос.ЦенаФакт,
   |    ВнутреннийЗапрос.СтоимостьФакт,
   |    ВнутреннийЗапрос.Спецификация,
   |    ВнутреннийЗапрос.Продукция,
   |    ВнутреннийЗапрос.КоличествоФакт - ВнутреннийЗапрос.КоличествоФакт КАК Количество,
   |    ВнутреннийЗапрос.ЦенаФакт - ВнутреннийЗапрос.ЦенаПлан КАК Цена,
   |    ВнутреннийЗапрос.СтоимостьФакт - ВнутреннийЗапрос.СтоимостьПлан КАК Стоимость
   |ИЗ
   |    (ВЫБРАТЬ
   |        ТаблицаПлан.Затрата КАК Затрата,
   |        ТаблицаПлан.ЕдИзм КАК ЕдИзм,
   |        ТаблицаПлан.СтатьяЗатрат КАК СтатьяЗатрат,
   |        ТаблицаПлан.Количество КАК КоличествоПлан,
   |        ТаблицаПлан.Цена КАК ЦенаПлан,
   |        ТаблицаПлан.Стоимость КАК СтоимостьПлан,
   |        0 КАК КоличествоФакт,
   |        0 КАК ЦенаФакт,
   |        0 КАК СтоимостьФакт,
   |        ТаблицаПлан.Спецификация КАК Спецификация,
   |        ТаблицаПлан.Продукция КАК Продукция
   |    ИЗ
   |        ТТаблицаПлан КАК ТаблицаПлан
   |    
   |    ОБЪЕДИНИТЬ ВСЕ
   |    
   |    ВЫБРАТЬ
   |        ТаблицаФакт.Затрата,
   |        ТаблицаФакт.ЕдИзм,
   |        ТаблицаФакт.СтатьяЗатрат,
   |        0,
   |        0,
   |        0,
   |        ТаблицаФакт.Количество,
   |        ТаблицаФакт.Цена,
   |        ТаблицаФакт.Стоимость,
   |        ТаблицаФакт.Спецификация,
   |        ТаблицаФакт.Продукция
   |    ИЗ
   |        ТТаблицаФакт КАК ТаблицаФакт) КАК ВнутреннийЗапрос";

Результат выдает нормальный, только вот поля одинаковых "Затрат" идут в разных строках.

Ткните пож носом, сам уже пол дня не могу найти проблему
1 mikecool
 
12.11.12
11:50
1) нет группировки
20 затраты таки разные
2 Romich1981
 
12.11.12
11:50
а где группировка то?
3 avtodor
 
12.11.12
11:54
Анкер торцевой    Краска для изготовления лесов    кг    Материалы собственные        3,53
Анкер торцевой    Краска для изготовления лесов    кг    Материалы собственные                    3,47

это идет разными строка, первая план, вторая факт, про группировку были мысли, ее ведь ставить надо после внутреннего запроса так?
4 mikecool
 
12.11.12
11:57
(3) *рукалицо* даже подумал правильно, так чего не сделал?
5 palpetrovich
 
12.11.12
12:04
(3) все равно не сгруппирует
6 avtodor
 
12.11.12
12:10
(5) какой смысл вообще писать такие комментарии?
7 palpetrovich
 
12.11.12
12:13
(6) смысл - смотри (1) п.2. ...разные таки затраты
8 ssh2006
 
12.11.12
12:14
(6) добавь группировку и агр. ф-ии максимум
9 avtodor
 
12.11.12
12:14
что ты имеешь ввиду? разные элементы справочника или разные типы?
группировку сделал, помогло, спасибо за помощь
10 mikecool
 
12.11.12
12:14
(7) хз, без реальной картинки не поймешь, а она только у автора
11 mikecool
 
12.11.12
12:14
(8) про максимум это ты загнул, имхо
12 palpetrovich
 
12.11.12
12:15
(9) не, прощения прошу, я не вкурил что в (3) это разные поля, дуиал что это все одна "затрата"
13 avtodor
 
12.11.12
12:16
Да, максимум тут не нужен, тут важны кол-ва по факту и по плану, и разница между ними, чтобы видеть перерасход или экономию, еще буду добавлять процентное отношение
14 avtodor
 
12.11.12
12:16
(12) в обсуждении рождается истина =)
15 ssh2006
 
12.11.12
12:17
(11) ну не минимум же)
16 avtodor
 
12.11.12
12:18
в общем вот результат, мб кому пригодится

ВЫБРАТЬ
   |    ВнутреннийЗапрос.Затрата,
   |    ВнутреннийЗапрос.ЕдИзм,
   |    ВнутреннийЗапрос.СтатьяЗатрат,
   |    СУММА(ВнутреннийЗапрос.КоличествоПлан) КАК КоличествоПлан,
   |    СУММА(ВнутреннийЗапрос.ЦенаПлан) КАК ЦенаПлан,
   |    СУММА(ВнутреннийЗапрос.СтоимостьПлан) КАК СтоимостьПлан,
   |    СУММА(ВнутреннийЗапрос.КоличествоФакт) КАК КоличествоФакт,
   |    СУММА(ВнутреннийЗапрос.ЦенаФакт) КАК ЦенаФакт,
   |    СУММА(ВнутреннийЗапрос.СтоимостьФакт) КАК СтоимостьФакт,
   |    ВнутреннийЗапрос.Спецификация,
   |    ВнутреннийЗапрос.Продукция,
   |    СУММА(ВнутреннийЗапрос.КоличествоФакт - ВнутреннийЗапрос.КоличествоПлан) КАК Количество,
   |    СУММА(ВнутреннийЗапрос.ЦенаФакт - ВнутреннийЗапрос.ЦенаПлан) КАК Цена,
   |    СУММА(ВнутреннийЗапрос.СтоимостьФакт - ВнутреннийЗапрос.СтоимостьПлан) КАК Стоимость
   |ИЗ
   |    (ВЫБРАТЬ
   |        ТаблицаПлан.Затрата КАК Затрата,
   |        ТаблицаПлан.ЕдИзм КАК ЕдИзм,
   |        ТаблицаПлан.СтатьяЗатрат КАК СтатьяЗатрат,
   |        ТаблицаПлан.Количество КАК КоличествоПлан,
   |        ТаблицаПлан.Цена КАК ЦенаПлан,
   |        ТаблицаПлан.Стоимость КАК СтоимостьПлан,
   |        0 КАК КоличествоФакт,
   |        0 КАК ЦенаФакт,
   |        0 КАК СтоимостьФакт,
   |        ТаблицаПлан.Спецификация КАК Спецификация,
   |        ТаблицаПлан.Продукция КАК Продукция
   |    ИЗ
   |        ТТаблицаПлан КАК ТаблицаПлан
   |    
   |    ОБЪЕДИНИТЬ ВСЕ
   |    
   |    ВЫБРАТЬ
   |        ТаблицаФакт.Затрата,
   |        ТаблицаФакт.ЕдИзм,
   |        ТаблицаФакт.СтатьяЗатрат,
   |        0,
   |        0,
   |        0,
   |        ТаблицаФакт.Количество,
   |        ТаблицаФакт.Цена,
   |        ТаблицаФакт.Стоимость,
   |        ТаблицаФакт.Спецификация,
   |        ТаблицаФакт.Продукция
   |    ИЗ
   |        ТТаблицаФакт КАК ТаблицаФакт) КАК ВнутреннийЗапрос
   |
   |СГРУППИРОВАТЬ ПО
   |    ВнутреннийЗапрос.Затрата,
   |    ВнутреннийЗапрос.ЕдИзм,
   |    ВнутреннийЗапрос.СтатьяЗатрат,
   |    ВнутреннийЗапрос.Спецификация,
   |    ВнутреннийЗапрос.Продукция";
Глупец, лишенный способности посмеяться над собой вместе с другими, не сможет долго выносить программирование. Фредерик Брукс-младший