Sql server 根据条件创建大小写和求和值

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

我正在寻找一种方法来重命名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),
(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