• Начало
  • Поиск
    •  

Автор Тема: Пример запроса для вывода отчета с показателями аналогичных периодов  (Прочитано 1184 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн WKBAPKA

  • Администратор
  • Новичок
  • *****
  • Сообщений: 24
  • Карма: +0/-0
  • Пол: Мужской
    • Внедренческий центр "КУБиК"
Появилась необходимость на базе универсального отчета сделать отчет по движению денежных средств, который бы показывал данные текущего выбранного периода, а также, аналогичного периода прошлого года, с возможностью детализации по под-периодам. Сложность в том, что нужно все это скормить универсальному отчету где с таблицами значений не поиграешься. Соединение решил делать через номер периода. Привожу запрос полностью. Возможно есть другие решения.

ВЫБРАТЬ
Источник1.МестоОформления КАК МестоОформления,
ВЫБОР
КОГДА &ВидПериода = "Месяц"
ТОГДА ВЫБОР
КОГДА Источник1.Период = 1
ТОГДА "Январь"
КОГДА Источник1.Период = 2
ТОГДА "Февраль"
КОГДА Источник1.Период = 3
ТОГДА "Март"
КОГДА Источник1.Период = 4
ТОГДА "Апрель"
КОГДА Источник1.Период = 5
ТОГДА "Май"
КОГДА Источник1.Период = 6
ТОГДА "Июнь"
КОГДА Источник1.Период = 7
ТОГДА "Июль"
КОГДА Источник1.Период = 8
ТОГДА "Август"
КОГДА Источник1.Период = 9
ТОГДА "Сентябрь"
КОГДА Источник1.Период = 10
ТОГДА "Октябрь"
КОГДА Источник1.Период = 11
ТОГДА "Ноябрь"
КОГДА Источник1.Период = 12
ТОГДА "Декабрь"
ИНАЧЕ Источник1.Период
КОНЕЦ
ИНАЧЕ ПРЕДСТАВЛЕНИЕ(Источник1.Период)
КОНЕЦ КАК ПредставлениеПериода,
Источник1.Период КАК Период,
Источник1.Сумма1 КАК Сумма1,
Источник1.Сумма2 КАК Сумма2,
0 КАК СуммаРазница,
0 КАК ПроцентРазница,
Источник1.Контрагент,
Источник1.Регистратор
{ВЫБРАТЬ
МестоОформления.*,
Сумма1,
Сумма2,
Контрагент.*,
ПредставлениеПериода КАК ПредставлениеПериода}
ИЗ
(ВЫБРАТЬ
Источник.МестоОформления КАК МестоОформления,
Источник.Период КАК Период,
СУММА(Источник.Сумма1) КАК Сумма1,
СУММА(Источник.Сумма2) КАК Сумма2,
Источник.Контрагент КАК Контрагент,
Источник.Регистратор КАК Регистратор
ИЗ
(ВЫБРАТЬ
wkbДвиженияДенежныхСредствОбороты.МестоОформления КАК МестоОформления,
ВЫБОР
КОГДА &ВидПериода = "Неделя"
ТОГДА НЕДЕЛЯ(wkbДвиженияДенежныхСредствОбороты.Период)
КОГДА &ВидПериода = "Месяц"
ТОГДА МЕСЯЦ(wkbДвиженияДенежныхСредствОбороты.Период)
КОГДА &ВидПериода = "Квартал"
ТОГДА КВАРТАЛ(wkbДвиженияДенежныхСредствОбороты.Период)
КОНЕЦ КАК Период,
wkbДвиженияДенежныхСредствОбороты.СуммаГрнОборот КАК Сумма1,
0 КАК Сумма2,
wkbДвиженияДенежныхСредствОбороты.Контрагент КАК Контрагент,
wkbДвиженияДенежныхСредствОбороты.Регистратор КАК Регистратор
ИЗ
РегистрНакопления.wkbДвиженияДенежныхСредств.Обороты(&ДатаНач, &ДатаКон, Регистратор, ПриходРасход = &ВидДвиженияПриход) КАК wkbДвиженияДенежныхСредствОбороты

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
wkbДвиженияДенежныхСредствОбороты.МестоОформления,
ВЫБОР
КОГДА &ВидПериода = "Неделя"
ТОГДА НЕДЕЛЯ(wkbДвиженияДенежныхСредствОбороты.Период)
КОГДА &ВидПериода = "Месяц"
ТОГДА МЕСЯЦ(wkbДвиженияДенежныхСредствОбороты.Период)
КОГДА &ВидПериода = "Квартал"
ТОГДА КВАРТАЛ(wkbДвиженияДенежныхСредствОбороты.Период)
КОНЕЦ,
0,
wkbДвиженияДенежныхСредствОбороты.СуммаГрнОборот,
wkbДвиженияДенежныхСредствОбороты.Контрагент,
wkbДвиженияДенежныхСредствОбороты.Регистратор
ИЗ
РегистрНакопления.wkbДвиженияДенежныхСредств.Обороты(&Дата3, &Дата4, Регистратор, ПриходРасход = &ВидДвиженияПриход) КАК wkbДвиженияДенежныхСредствОбороты) КАК Источник

СГРУППИРОВАТЬ ПО
Источник.МестоОформления,
Источник.Период,
Источник.Контрагент,
Источник.Регистратор) КАК Источник1
{ГДЕ
Источник1.МестоОформления.*,
Источник1.Контрагент.*}

УПОРЯДОЧИТЬ ПО
Период
{УПОРЯДОЧИТЬ ПО
МестоОформления.*,
Период}
ИТОГИ
СУММА(Сумма1),
СУММА(Сумма2),
СУММА(Сумма1 - Сумма2) КАК СуммаРазница,
ВЫБОР
КОГДА СУММА(Сумма1) <> 0
ТОГДА (СУММА(Сумма1) - СУММА(Сумма2)) / СУММА(Сумма1) * 100
ИНАЧЕ 100
КОНЕЦ КАК ПроцентРазница
ПО
ОБЩИЕ
{ИТОГИ ПО
МестоОформления.*,
Контрагент.*,
Период}