SQL聚合和分组

时间:2017-10-03 21:15:27

标签: sql sql-server reporting-services

深入研究SQL并看到了我喜欢的报告格式,并希望这是一个正确的论坛。我熟悉基本的选择语句和分组,但我对如何执行此操作或是否可以使用单个数据表感到困惑。

以下是我所拥有的一张桌子的样本。     表:

Item      Loc   Frozen     Scanned    Adj
1457481   85      0         1          1
1457481   85      0         1          1
1457481   25      1         1          0
1457481   25      1         1          0
1457481   35      1         1          0
1457481   45      1         1          0

Here is the format I would like to show:

Item       GoodLoc     Adj
1457481     2@25       2@85
            1@35
            1@45    


如果不加入其他表格,这是否可行?非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

如果没有问题的更多细节,这只是猜测,但这是一个可能的解决方案:

假设表:

CREATE TABLE Items
(
    item    INT,
    Loc     INT,
    Frozen  BIT,
    Scanner BIT,
    Adj     BIT
)

SELECT  DISTINCT
        Item,
        CASE
            WHEN Frozen = 0
            THEN NULL
            ELSE CONVERT(VARCHAR(5),COUNT(Loc) OVER (PARTITION BY Loc)) + '@' + CONVERT(VARCHAR(5),Loc)
        END As GoodLoc,
        CASE
            WHEN Adj = 0
            THEN NULL
            ELSE CONVERT(VARCHAR(5),COUNT(Adj) OVER (PARTITION BY Adj)) + '@' + CONVERT(VARCHAR(5),Loc)
        END As Adj
FROM    Items
ORDER BY GoodLoc DESC

正如其他人所说的那样,您似乎正在尝试呈现您应该在表示层(SSRS)而不是管理工作室中执行的数据