|
Помогите с вложенными запросами | ☑ | ||
---|---|---|---|---|
0
Alexion124
02.04.12
✎
09:17
|
хочу посчитать разницу между периодами в процентах, но запрос выдает неправильные данные за период, подскажите в чем моя ошибка
сам запрос ВЫБРАТЬ 100 * (СУММА(ВложенныйЗапрос1.Количество / ВложенныйЗапрос1.Номенклатура.ЕдиницаДляОтчетов.Коэффициент) / ЕСТЬNULL(СУММА(ВложенныйЗапрос.Количество / ВложенныйЗапрос.Номенклатура.ЕдиницаДляОтчетов.Коэффициент), 1) - 1) КАК ПроцентУвеличенияКПрошломуГоду, ВложенныйЗапрос1.Подразделение, СУММА(ВложенныйЗапрос1.Количество / ВложенныйЗапрос1.Номенклатура.ЕдиницаДляОтчетов.Коэффициент) КАК Уп, СУММА(ВложенныйЗапрос1.Количество * ВложенныйЗапрос1.Номенклатура.ЕдиницаХраненияОстатков.Объем) КАК Литры, СУММА(ВЫРАЗИТЬ(ВложенныйЗапрос1.Стоимость КАК ЧИСЛО(10, 0))) КАК Руб, НАЧАЛОПЕРИОДА(ВложенныйЗапрос1.Период, ГОД) КАК ПериодГод, МЕСЯЦ(ВложенныйЗапрос1.Период) КАК ПериодМесяц, ВложенныйЗапрос1.ДоговорКонтрагента.Завод КАК Завод, ВложенныйЗапрос1.ДоговорКонтрагента.ТоргПредставитель КАК ТоргПредставитель ИЗ (ВЫБРАТЬ Продажи.Подразделение КАК Подразделение, Продажи.Количество КАК Количество, Продажи.Номенклатура КАК Номенклатура, Продажи.Стоимость КАК Стоимость, Продажи.Период КАК Период, Продажи.ДоговорКонтрагента КАК ДоговорКонтрагента ИЗ РегистрНакопления.Продажи КАК Продажи ГДЕ Продажи.Период >= &ДатаНачала И Продажи.Период <= &ДатаОкончания) КАК ВложенныйЗапрос, (ВЫБРАТЬ Продажи.Подразделение КАК Подразделение, Продажи.Количество КАК Количество, Продажи.Номенклатура КАК Номенклатура, Продажи.Стоимость КАК Стоимость, Продажи.Период КАК Период, Продажи.ДоговорКонтрагента КАК ДоговорКонтрагента ИЗ РегистрНакопления.Продажи КАК Продажи ГДЕ Продажи.Период >= ДОБАВИТЬКДАТЕ(&ДатаНачала, ГОД, 1) И Продажи.Период <= ДОБАВИТЬКДАТЕ(&ДатаОкончания, ГОД, 1)) КАК ВложенныйЗапрос1 СГРУППИРОВАТЬ ПО НАЧАЛОПЕРИОДА(ВложенныйЗапрос1.Период, ГОД), МЕСЯЦ(ВложенныйЗапрос1.Период), ВложенныйЗапрос1.Подразделение, ВложенныйЗапрос1.ДоговорКонтрагента.Завод, ВложенныйЗапрос1.ДоговорКонтрагента.ТоргПредставитель |
|||
1
Ненавижу 1С
гуру
02.04.12
✎
09:19
|
используй виртуальные таблицы оборотов и не нужны будут подзапросы
|
|||
2
Axel2009
02.04.12
✎
09:19
|
условие соединения хоть задай
|
|||
3
el-gamberro
02.04.12
✎
09:20
|
запросы надо соеденить
|
|||
4
Axel2009
02.04.12
✎
09:20
|
(1) ну и как же разделить то?
|
|||
5
Alexion124
02.04.12
✎
09:21
|
(2)(3) покажите плиз на примере, не соображу как их соеденить
|
|||
6
el-gamberro
02.04.12
✎
09:22
|
(ВЫБРАТЬ
Продажи.Подразделение КАК Подразделение, Продажи.Количество КАК Количество, Продажи.Номенклатура КАК Номенклатура, Продажи.Стоимость КАК Стоимость, Продажи.Период КАК Период, Продажи.ДоговорКонтрагента КАК ДоговорКонтрагента ИЗ РегистрНакопления.Продажи КАК Продажи ГДЕ Продажи.Период >= &ДатаНачала И Продажи.Период <= &ДатаОкончания) КАК ВложенныйЗапрос, (ВЫБРАТЬ Продажи.Подразделение КАК Подразделение, Продажи.Количество КАК Количество, Продажи.Номенклатура КАК Номенклатура, Продажи.Стоимость КАК Стоимость, Продажи.Период КАК Период, Продажи.ДоговорКонтрагента КАК ДоговорКонтрагента ИЗ РегистрНакопления.Продажи КАК Продажи ГДЕ Продажи.Период >= ДОБАВИТЬКДАТЕ(&ДатаНачала, ГОД, 1) И Продажи.Период <= ДОБАВИТЬКДАТЕ(&ДатаОкончания, ГОД, 1)) КАК ВложенныйЗапрос1 ГДЕ ВложенныйЗапрос1.Подразделение = ВложенныйЗапрос.Подразделение И ВложенныйЗапрос1.Номенклатура= ВложенныйЗапрос.Номенклатура уродский синтаксис. но |
|||
7
Axel2009
02.04.12
✎
09:22
|
(5) как любые таблицы между собой соединяются
|
|||
8
Alexion124
02.04.12
✎
09:22
|
(5)точнее по какому полю, я пробовал по договору контрагента, но вообще запрос пустоту тогда выдапет
|
|||
9
el-gamberro
02.04.12
✎
09:22
|
(8) ты должен использовать ПОЛНОЕ СОЕДИНЕНИЕ ПО
|
|||
10
Axel2009
02.04.12
✎
09:23
|
(6) еще по договору, и вложенные таблицы свернуть надо и посчитать суммарные значения
|
|||
11
el-gamberro
02.04.12
✎
09:23
|
(8) вообще важны условия задачи. что если по номенклатуре в прошлом периоде были обороты. а в текущем нет. они должны попасть в отчет?
|
|||
12
Alexion124
02.04.12
✎
09:29
|
(11)прошлые периоды вообще не вывожу в отчет, мне они нужны только для вычисления процента
|
|||
13
Ненавижу 1С
гуру
02.04.12
✎
09:34
|
ВЫБРАТЬ
ЕСТЬNULL(ПродажиОбороты.ДоговорКонтрагента, ПродажиОбороты1.ДоговорКонтрагента) КАК Договор, ЕСТЬNULL(ПродажиОбороты.Номенклатура, ПродажиОбороты1.Номенклатура) КАК Номенклатура, ЕСТЬNULL(ДОБАВИТЬКДАТЕ(ПродажиОбороты.Период, МЕСЯЦ, 12), ПродажиОбороты1.Период) КАК Месяц, ЕСТЬNULL(ПродажиОбороты.СтоимостьОборот, 0) КАК База, ЕСТЬNULL(ПродажиОбороты1.СтоимостьОборот, 0) КАК Текущее, ВЫБОР КОГДА ЕСТЬNULL(ПродажиОбороты.СтоимостьОборот, 0) = 0 ТОГДА NULL ИНАЧЕ (ЕСТЬNULL(ПродажиОбороты1.СтоимостьОборот, 0) / ЕСТЬNULL(ПродажиОбороты.СтоимостьОборот, 0) - 1) * 100 КОНЕЦ КАК Процент ИЗ РегистрНакопления.Продажи.Обороты(&НачДата, &КонДата, Месяц, ) КАК ПродажиОбороты ПОЛНОЕ СОЕДИНЕНИЕ РегистрНакопления.Продажи.Обороты(ДОБАВИТЬКДАТЕ(&НачДата, ГОД, 1), ДОБАВИТЬКДАТЕ(&КонДата, ГОД, 1), Месяц, ) КАК ПродажиОбороты1 ПО ПродажиОбороты.Номенклатура = ПродажиОбороты1.Номенклатура И ПродажиОбороты.ДоговорКонтрагента = ПродажиОбороты1.ДоговорКонтрагента И (ДОБАВИТЬКДАТЕ(ПродажиОбороты.Период, МЕСЯЦ, 12) = ПродажиОбороты1.Период) |
|||
14
Ненавижу 1С
гуру
02.04.12
✎
09:35
|
+(13) это рыба
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |