我正在寻找一种方法来重命名case语句中的值,然后将这些值一起作为总和。似乎所有解释都集中在creating the condition,setting criteria或summing上。我设想查询应该看起来像 这个:
SELECT
X,
Y,
CASE Z
WHEN '1' THEN 'A'
WHEN '2' THEN 'B'
WHEN '3' THEN 'C'
WHEN '4' THEN 'D'
END +
SUM(CASE WHEN Z='1' OR Z='2' THEN 'I' END) +
SUM(CASE WHEN Z='3' OR Z='4' THEN 'J' END) AS Letters
FROM FOO
我可能会使其变得比必要的更加困难。我真正需要的只是将1
中的2
和Z
分组为I
中的3
和4
和Z
分组为J
,这样I
将是1
和2
所有情况的总和,而J
将是{{1 }}和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
下的值与{{1}下的I
和3
下的值相加{1}}。因此:
4
J
是排除条件。
答案 0 :(得分:1)
<servlet>
<display-name>GetServlet</display-name>
<servlet-name>GetServlet</servlet-name>
<servlet-class>mypackage.GetServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>GetServlet</servlet-name>
<url-pattern>/myservlet</url-pattern>
</servlet-mapping>
或更短
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