以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 关于CASE表达式的一个问题 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=186715) |
-- 作者:czy66ds -- 发布时间:2023/5/23 13:35:00 -- 关于CASE表达式的一个问题 执行下列代码通过 SE LECT Month(日期) AS 月, SUM(成交金额) AS \'本期金额\' FROM {某外部表} WH ERE Year(日期) = 2023 or Year(日期) = 2021 GROUP by Month(日期) 执行下列代码报错 SE LECT Month(日期) AS 月,CASE WHEN Year(日期) = 2023 THEN SUM(成交金额) ELSE NULL END AS \'本期金额\',CASE WHEN Year(日期) = 2021 THEN SUM(成交金额) ELSE NULL END AS \'前期金额\' FROM {某外部表} WH ERE Year(日期) = 2023 or Year(日期) = 2021 GROUP by Month(日期) 报错信息: .NET Framework 版本:4.0.30319.42000 Foxtable 版本:2022.8.18.1 错误所在事件: 详细错误信息: 选择列表中的列 \'全品牌销售记录表含品牌.日期\' 无效,因为该列没有包含在聚合函数或 GROUP BY 子句中。 何故?
|
-- 作者:有点蓝 -- 发布时间:2023/5/23 13:41:00 -- SE LECT Month(日期) AS 月,SUM(CASE WHEN Year(日期) = 2023 THEN 成交金额 ELSE 0 END ) AS \'本期金额\',SUM(CASE WHEN Year(日期) = 2021 THEN 成交金额 ELSE 0 END ) AS \'前期金额\' FROM {某外部表} |
-- 作者:czy66ds -- 发布时间:2023/5/23 14:02:00 -- 经测试,这样写还是报同样的错误 |
-- 作者:有点蓝 -- 发布时间:2023/5/23 14:17:00 -- select 月,SUM(本期金额) as 本期金额,SUM(前期金额) as 前期金额 from(SELECT Month(日期) AS 月,CASE WHEN Year(日期) = 2023 THEN 成交金额 ELSE 0 END AS 本期金额,CASE WHEN Year(日期) = 2021 THEN 成交金额 ELSE 0 END AS 前期金额 FROM 某外部表 WHERE Year(日期) = 2023 or Year(日期) = 2021 ) as a GROUP by 月 |
-- 作者:czy66ds -- 发布时间:2023/5/23 14:54:00 -- 谢谢,成功。 |