SSRS Квартальный период на заказ - PullRequest
0 голосов
/ 05 февраля 2020

Мне нужно создать отчет с пользовательскими кварталами, как показано ниже:

Квартал 1 - июль, август, сентябрь, квартал 2 - октябрь, ноябрь, декабрь, квартал 3 - январь, февраль, мар, квартал 4 - апрель, май, июнь

Я немного растерялся, пытаясь приблизиться к этому, поскольку мне нужно создать параметр, в котором при выборе квартала 1 будут отображаться данные только за соответствующие месяцы.

Кто-нибудь может что-то предложить?

Сценарий выглядит следующим образом:

SELECT
ATD.TrnYear, 
ATD.TrnMonth, 
ATD.Invoice, 
ATD.InvoiceDate, 
ATD.Salesperson, 
ATD.Customer, 
ATD.StockCode, 
ATD.ProductClass, 
ATD.QtyInvoiced, 
ATD.NetSalesValue, 
ATD.CostValue, 
AC.Name

ОТ ArTrnDetail ATD JOIN ArCustomer A C ON ATD.Customer = A C .Customer

Поэтому мне нужно добавить, как различать guish, когда пользователь выбирает квартал.

Очень ценится.

Ответы [ 2 ]

1 голос
/ 05 февраля 2020

Предполагая, что в вашем столбце ATD.TrnMonth для представления месяцев используется целое число, я добавил в ваш запрос дополнительный столбец для указания кварталов ( QTR ). Также добавлено условие, которое будет фильтровать ваш результат на основе выбора пользователя ( WHERE Qtr = @ четверть ). Это будет ваш запрос к набору данных.

SELECT *
FROM 
    (SELECT
    CASE 
        WHEN ATD.TrnMonth IN (7,8,9) THEN 1
        WHEN ATD.TrnMonth IN (10,11,12) THEN 2
        WHEN ATD.TrnMonth IN (1,2,3) THEN 3
        WHEN ATD.TrnMonth IN (4,5,6) THEN 4
    END as Qtr,
    ATD.TrnYear, 
    ATD.TrnMonth, 
    ATD.Invoice, 
    ATD.InvoiceDate, 
    ATD.Salesperson, 
    ATD.Customer, 
    ATD.StockCode, 
    ATD.ProductClass, 
    ATD.QtyInvoiced, 
    ATD.NetSalesValue, 
    ATD.CostValue, 
    AC.Name
    FROM ArTrnDetail ATD JOIN ArCustomer AC ON ATD.Customer = AC.Customer
    ) as ArTrnDetail
WHERE Qtr = @quarter

В построителе отчетов создайте параметр с этими настройками:

ОБЩАЯ вкладка

  • Имя: квартал
  • Подсказка: (все, что вы хотите отобразить для пользователя)

Доступные значения TAB

  • выберите Укажите значения и добавьте 4 доступных значения.
  • Метка должна быть 1, 2, 3 и 4 (кварталы), а значение должно быть ярлыки, которые вы хотите отобразить в выпадающем списке. Убедитесь, что метки соответствуют вашим значениям (кварталам)

ТАБЛИЦА ЗНАЧЕНИЙ ПО УМОЛЧАНИЮ

  • Например, когда отчет запускается и вы хотите, чтобы отчет по умолчанию соответствовал первому кварталу , Выберите Укажите значения , введите 1 в значение. Покиньте эту вкладку, если вы не хотите использовать значения по умолчанию.

Примечание. Это конфигурация для раскрывающегося списка с одним значением. Если вы хотите, чтобы пользователь мог выбрать несколько значений. На вкладке «Общие» параметра установите флажок «Разрешить несколько значений» и измените условие запроса с ГДЕ Qtr = @ четверть на ГДЕ Qtr IN (@quarter).

0 голосов
/ 05 февраля 2020

Вам необходимо сопоставить свои данные с измерением даты.

Когда вы это сделаете, у вас будет таблица фактов, которую можно будет присоединить к вашей таблице дат. Либо суррогатным ключом, либо бизнес-ключом.

Примером может быть.

Запрос отчета

Select SalesAmount,SalesDate,Employee from fact.Sales S
inner join Dim.Datedimension d on s.SalesDate = d.Date

where d.QuarterNo = @DateParameter

Запрос фильтра

Select distinct QuarterNo,QuarterLabel(Your Quarter 1 - Jul, Aug, Sep) From Dim.Datedimension

QuarterNo будет вашим значением в настройках параметров. QuarterLabel будет вашим ярлыком.

Не забудьте настроить размер даты так, чтобы он соответствовал вашим особым кварталам.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...