Отчеты SSRS: как мне создать такой ежемесячный отчет / отчет с начала года? - PullRequest
0 голосов
/ 14 июля 2011

У меня есть таблица, которая выглядит следующим образом:

-------------------------------------------------------------------
CUSTNUM (INT), ITEMNUM (INT), MONTH (INT), YEAR (INT), AMOUNT (INT)
-------------------------------------------------------------------
100000, 489, 1, 2011, 4000
100000, 489, 2, 2011, 3000
100000, 489, 3, 2011, 5000
100000, 587, 1, 2011, 7500
100000, 587, 2, 2011, 6800
100000, 587, 3, 2011, 9000

То, что я пытаюсь создать, - это отчет, который показывает мне каждый предмет, приобретенный клиентом в данный месяц и год. На той же странице я хотел бы, чтобы таблица (либо часть той же матрицы, либо все, что требуется) имела бы продажи за год, сгруппированные по номеру товара в каждой строке.

Конечным результатом должна быть сводная страница (возможно, несколько страниц) для каждого покупателя с ежемесячными продажами вверху и сводкой по годам на каждый предмет, купленный внизу.

Вот как будет выглядеть желаемый результат при запросе к марту 2011 года:

-----------------------
Customer: 100000
-----------------------
Item    Month Quantity
-----------------------
489     5000
587     9000
-----------------------
Total   14000

------------------------
Item    Year-to-Date Qty
------------------------
489     12000
587     23300
------------------------
Total   35300

Следующий разрыв страницы будет для нового клиента с похожим макетом.

В частности, я 'Я борюсь с тем, как должна выглядеть сторона запроса.У меня есть рабочий запрос для определенного месяца - и если я опущу параметр MONTH в предложении where, я получу все строки, необходимые для текущего года - но тогда как мне показать только один месяц вверх?

Заранее спасибо!

Ответы [ 2 ]

1 голос
/ 15 июля 2011

Если вы используете SQL 2008 R2, используйте функцию поиска.Эта функция недоступна в более ранних выпусках.

Сохраните набор данных, который у вас уже есть.Не нужно беспокоиться о YTD еще.Создайте второй набор данных, который находит YTD для данного клиента, группируйте по элементам.Функция поиска может найти YTD во втором наборе данных на основе номера элемента в первом наборе данных.

Надеюсь, это поможет.

Дополнительный ответ

Почти забыло подотчете.Вы можете создать второй отчет, который принимает 1 параметр: CustNum и показывает YTD в таблице.Добавьте это в качестве дополнительного отчета в ваш основной отчет.Хорошее место будет в нижнем колонтитуле таблицы.

0 голосов
/ 15 июля 2011

Sql не предназначен для составления отчета, он предназначен для извлечения ваших данных, поэтому Excel, построитель отчетов или другой инструмент может настроить дизайн. Я надеюсь, что вы можете использовать это.

declare @t TABLE (custnum int, itemnum int, month int, year int, amount int)

DECLARE @m INT
DECLARE @y INT

set @m = 3
set @y = 2011

insert @t values(100000, 489, 1, 2011, 4000)
insert @t values(100000, 489, 2, 2011, 3000)
insert @t values(100000, 489, 3, 2011, 5000)
insert @t values(100000, 587, 1, 2011, 7500)
insert @t values(100000, 587, 2, 2011, 6800)
insert @t values(100000, 587, 3, 2011, 9000)

SELECT custnum customer, itemnum item, sum(amount) [Month Quantity]
FROM @t
WHERE MONTH = @m
AND year = @y
GROUP BY custnum, itemnum with rollup 

Результат:

customer  item     month quantity
100000    498      5000
100000    587      9000
100000             14000 <---(total for this customer)
                   14000 <---(grand total for all customers)


SELECT itemnum item, sum(amount) [Year-to-Date Qty]
FROM @t
WHERE year = @y
GROUP BY itemnum with rollup

Результат:

item      Year-to-Date Qty
489       12000
587       23300
          35300
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...