【发布时间】:2021-12-08 05:49:36
【问题描述】:
尝试自定义GROUP BY Range。
我构建了以下 SQL 查询:
SELECT TheTmp, SUM(TheTmp*0.33)
FROM MyTable
WHERE Name = 'TestName1'
GROUP BY SWITCH(TheTmp BETWEEN 0 AND 5,0,50,true)
但它会抛出一个错误:
您的查询不包含指定表达式“TheTmp”作为聚合函数的一部分。
'TheTmp' 是正确的字段,因为以下查询有效:
Select TheTmp, SUM(TheTmp*0.33)
FROM MyTable
WHERE Name = 'TestName1'
GROUP BY TheTmp
所以我认为我在SWITCH() 中使用了BETWEEN
对于下表:
Name TheTmp
TestName1 8.76669265399322
TestName2 0.273812785388691
TestName1 1
TestName1 1.58938597048424
我的目标是得到下面的输出(将 0 和 5 之间的值相加)
TestName1 8.766*0.33
TestName1 (1.58938597048424*0.33)+(1*0.33)
如何使用BETWEEN 转换为SWITCH
SWITCH(TheTmp BETWEEN 0 AND 5,0,50,true)
【问题讨论】:
-
在询问 SQL 相关问题时,minimal reproducible example 是一个很好的开始。
-
如何做一个 sql 可重现的例子?它不是 HTML/JS 吗?
-
编辑时,在适当的列中输入数据,突出显示并单击
{}。 -
@jarlh 我已编辑,希望更清楚!
-
@KenWhite:
CASE是 T-SQL;在 Access SQL 中无效。