每个 ID 的多个计数
Multiple counts for each ID
我正在努力解决这个问题,但不幸的是,我的两种方法都不起作用:
我需要一个包含 3 列的 table:
- 物品ID
- ItemID 具有 CostcentreID x 的案例数
- ItemID 具有 CostcentreID y 的案例数
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
我正在努力解决这个问题,但不幸的是,我的两种方法都不起作用:
我需要一个包含 3 列的 table:
- 物品ID
- ItemID 具有 CostcentreID x 的案例数
- ItemID 具有 CostcentreID y 的案例数
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