SSRS - выражения по группам - PullRequest
2 голосов
/ 11 мая 2011

Используя службу отчетов SS 2008, я смотрю на настройку отчета о продажах по умолчанию с разбивкой по месяцам.

Теоретически это должно выглядеть примерно так:

Date         Total Sales    Qty 
----------------------------------
01/04/2011   $15.00         3
02/04/2011   $20.00         4
03/04/2011   $00.00         0
Etc

Проблема, с которой я столкнулся - пропускаются дни месяца, в которых нет записей. (Как и 03/04/2011 выше). Есть ли способ показать даты, у которых нет записей?

Ответы [ 2 ]

1 голос
/ 11 мая 2011

Нет конкретного способа сделать это в SSRS, но это можно сделать в запросе SQL.

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

Например, если у вас были следующие таблицы

DateList

Date
----
2011-01-01
2011-01-02
2011-01-03
2011-01-04
2011-01-05
etc...

SalesData

Date        Qty
----------------
2011-01-01  5
2011-01-02  4
2011-01-04  7

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

select 
    dl.Date, 
    sd.Qty
from SalesData sd 
    left outer join DateList dl on dl.Date = sd.Date


Date    Qty
--------------
2011-01-01  5
2011-01-02  4
2011-01-03  (null)
2011-01-04  7
2011-01-05  (null)
etc...

См. этот вопрос для получения информации о создании списка дат для присоединения.

0 голосов
/ 08 августа 2011

Чтобы расширить ответ Натана, чтобы избежать пустых значений, оператор select может использовать isnull в поле sd.QTY:
isnull (sd.QTY, 0) как 'Qty'

...