每个 ID 的多个计数

Multiple counts for each ID

我正在努力解决这个问题,但不幸的是,我的两种方法都不起作用:

SELECT ItemID, Count1, Count2 FROM Table

输出应该是这样的:

--ItemID--Count1--Count2

1       12      5
2        3      2

我在使用

时得到了什么

SELECT ItemdID, SUM(case when costc...),... FROM Table

是:

--ItemID--Count1--Count2

1       12      0
2        3      0

由于 GROUP BY 语句。

没有游标也能解决这个问题吗?

此外,需要 5 table 秒的 JOIN。

提前致谢!

我不确定你需要什么连接,但这是第一部分。

DECLARE @table TABLE(ItemID INT, CostCentreID CHAR(1));

INSERT INTO @table
VALUES  (1,'X'),
        (1,'X'),
        (1,'Y'),
        (2,'X'),
        (2,'Y'),
        (2,'Y'),
        (2,'Y');

SELECT  ItemID,
        SUM(
                CASE
                    WHEN CostCentreID = 'X' THEN 1 ELSE 0
                END
            ) AS CostCentreX,
        SUM(
                CASE
                    WHEN CostCentreID = 'Y' THEN 1 ELSE 0
                END
            ) AS CostCentreY
FROM @table
GROUP BY ItemID

结果:

ItemID      CostCentreX CostCentreY
----------- ----------- -----------
1           2           1
2           1           3