【发布时间】:2015-12-20 06:26:18
【问题描述】:
我有一张这样的桌子
+----+------+-----+
| ID | Type | Qty |
+----+------+-----+
| 1 | 1 | 10 |
| 2 | 1 | 10 |
| 3 | 2 | 15 |
| 4 | 1 | 20 |
| 5 | 2 | 10 |
+----+------+-----+
如何根据条件“类型”字段进行动态求和。
类似这样的:
SELECT
Type,
CASE WHEN Type = 1 THEN SUM(Qty)
ELSE Qty
END AS SumQty
FROM tbl
GROUP BY ??
我想要这样的结果:
+------+--------+
| Type | SumQty |
+------+--------+
| 1 | 40 |
| 2 | 15 |
| 2 | 10 |
+------+--------+
我知道我可以使用 UNION 子句来做到这一点。但是,如果您知道实现该结果的动态查询,请告诉我。 任何解决方案将不胜感激。谢谢
【问题讨论】:
-
动态查询只是在运行时构建的,而不是预先知道的。它与包含联合子句的查询不互斥。
标签: dynamic sql-server-2012 sum grouping case-when