Sql server 根据条件创建大小写和求和值
我正在寻找一种方法来重命名case语句中的两个值,然后将这些值组合在一起作为它们的总和。似乎所有的解释都集中在、或上。我设想查询应该是这样的 这: 我可能把这件事弄得太难了。实际上,我所需要的就是把Sql server 根据条件创建大小写和求和值,sql-server,Sql Server,我正在寻找一种方法来重命名case语句中的两个值,然后将这些值组合在一起作为它们的总和。似乎所有的解释都集中在、或上。我设想查询应该是这样的 这: 我可能把这件事弄得太难了。实际上,我所需要的就是把1和2从Z组合成I和3和4从Z组合成J,这样I将是1和2的所有情况的总和,J将是所有情况的总和3和4,最好在同一列中。任何帮助都将不胜感激 根据社区的要求,输入数据如下所示: INSERT INTO FOO (Z, Values) VALUES (1,3), (2,6), (3,10), (4,20
1
和2
从Z
组合成I
和3
和4
从Z
组合成J
,这样I
将是1
和2
的所有情况的总和,J
将是所有情况的总和3
和4
,最好在同一列中。任何帮助都将不胜感激
根据社区的要求,输入数据如下所示:
INSERT INTO FOO
(Z, Values)
VALUES
(1,3),
(2,6),
(3,10),
(4,20),
(5,1),
(1,9),
(2,12),
(3,30)
(4,40)
(5,2);
结果应创建一个新类别,将1
和2
下的值和I
下的值相加,并将3
和4
下的值和J
下的值相加。因此:
Letters Values
I 30
J 100
其中5
为排除条件
SELECT CASE [Z]
WHEN 1 THEN 'I'
WHEN 2 THEN 'I'
WHEN 3 THEN 'J'
WHEN 4 THEN 'J'
END [Letters]
,SUM([Values]) [Values]
FROM FOO
GROUP BY CASE [Z]
WHEN 1 THEN 'I'
WHEN 2 THEN 'I'
WHEN 3 THEN 'J'
WHEN 4 THEN 'J'
END
或者稍微短一点
SELECT CASE
WHEN [Z] IN (1,2) THEN 'I'
WHEN [Z] IN (3,4) THEN 'J'
END [Letters]
,SUM([Values]) [Values]
FROM FOO
GROUP BY CASE
WHEN [Z] IN (1,2) THEN 'I'
WHEN [Z] IN (3,4) THEN 'J'
END
请提供一些输入和输出数据示例,以说明您试图实现的目标。按照@DaleBurrell的要求,请提供输入和输出数据,因为您不清楚您试图实现的目标。“条件和”的例子可以在这里找到:谢谢Alex,如果我能找到一种方法在一个和下包含两个条件,我可以使用这个解决方案。类似于
SUM(Z='1'或Z='2'的情况下,我会在Z='3'或Z='4'的情况下,然后是J END)的字母
您需要在[Z]的(1,2,3,4)中添加一个位置
。谢谢Andy,感谢您抽出时间回答我的问题。我遇到了一些麻烦,因为我的问题不够完整。我应该提到的是,我也使用了orderby
。一旦我发现这里也需要包含案例
语句,您的解决方案就可以顺利运行了。再次感谢。
SELECT CASE
WHEN [Z] IN (1,2) THEN 'I'
WHEN [Z] IN (3,4) THEN 'J'
END [Letters]
,SUM([Values]) [Values]
FROM FOO
GROUP BY CASE
WHEN [Z] IN (1,2) THEN 'I'
WHEN [Z] IN (3,4) THEN 'J'
END