【问题标题】:Sql Query for an ssrs report用于 ssrs 报告的 Sql 查询
【发布时间】:2013-11-11 20:28:47
【问题描述】:

我需要生成以下报告。我是 SSRS 的新手。

   Number of Stores with      June   July  Aug
     0 sales                   12      34   32
     1 to 9 Sales              12      34   45
     10+ sales                 15      45   54

我的表如下:

Store : 
YEAR MONTH StoreName 
2013  10      ABC
2013  10      DEF
2013  09      JKL 
2013  06      FGH


Store Sales : (Contains only stores whose sales are > 0)
YEAR MONTH StoreName NumberOfSales
2013  10     ABC          3
2013  09     JKH          14
2013  10     FRH           9

我不确定我需要做什么才能获得上述格式的报告? 我可以在一个月内编写一个销售查询,但是如何编写一个查询 获得所有 3 个月的报告?或者有没有更好的方法来使用 ssrs 进行这些报告?

如果你能指导我做什么会很棒吗?

【问题讨论】:

    标签: sql-server sql-server-2008 tsql reporting-services ssrs-2008


    【解决方案1】:

    你想这样设置你的查询:

    SELECT Year, Month, (CASE
      WHEN NumberOfSales = 0 THEN '0 Sales'
      WHEN NumberOfSales BETWEEN 1 AND 9 THEN '1-9 Sales'
      WHEN NumberOfSales > 9 THEN '10+ Sales' END) [SaleGroup]
    FROM FactStoreSales
    

    然后你基本上想进入 SSRS 并将其放入一个表中,其中列中为月份,行中为组,并让它自己旋转数据,而不是尝试在 SQL 中执行此操作。

    【讨论】:

    • 嘿大卫,谢谢。你能告诉我我需要在矩阵的数据部分放什么吗?此外,我无法从此表中获取“0 Sales”,我需要从 Stores 中选择商店名称,但从 StoreSales 中选择商店名称除外,以便获得具有 0 销售额的商店。有没有办法可以将它整合到我的查询中?
    • @Courage 对于 0 销售,现在变得有点复杂了。本质上,您必须为商店和数字的每个组合构建一个交叉联接的数据集,然后使用 isnull 对销售事实进行左联接,以便计数将 null 替换为 0。将其传递给您的报告,您使用总和针对销售额的 count(*) 记录(确保您的空记录通过测试返回 0 而不是 1)以获得您想要的报告。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多