【发布时间】:2020-12-12 23:10:56
【问题描述】:
我有一些看起来像这样的代码:
SELECT colname, SUM(value) AS items_sum, COUNT(value) AS items_count
FROM MyTable
CROSS APPLY (
VALUES ('Item1',Item1),('Item2',Item2)
) x(colname, value)
WHERE Date BETWEEN @sdate AND @edate
AND value IS NOT NULL
GROUP BY colname
我被要求将查询更改为不再对 Item1、Item2 进行硬编码,而是接受传入的任何 Item#。我尝试了一些解决方案来通过 select 语句获取 Item#,但似乎聚合函数 SUM() 和 COUNT() 抱怨,因为我尝试过的解决方案返回列名的 varchar,而不是列数据本身。有没有办法在不使用字符串连接的情况下传递列 Item#?
谢谢!
【问题讨论】:
标签: sql sql-server tsql