sqlserver显示列名无效怎么解决

-- 16. 按季度统计销售量

SELECT YEAR(订单.订购日期) AS 年度,

(CASE

WHEN MONTH(订单.订购日期) IN (1,2,3) THEN '1'

WHEN MONTH(订单.订购日期) IN (4,5,6) THEN '2'

WHEN MONTH(订单.订购日期) IN (7,8,9) THEN '3' ELSE '4' END) AS 季度,

SUM(订单明细.数量) AS 订购数量

FROM 订单

LEFT JOIN 订单明细 ON 订单明细.订单ID = 订单.订单ID     

GROUP BY 年度,季度    

ORDER BY 年度,季度

结果如下:

image.png

hhOSKOQe 发布于 2022-7-26 14:06
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共3回答
最佳回答
0
yzm339714Lv6中级互助
发布于2022-7-26 14:09

select 年度,季度 ,sum(订购数量) as 订购数量 from (

SELECT YEAR(订单.订购日期) AS 年度,

(CASE

WHEN MONTH(订单.订购日期) IN (1,2,3) THEN '1'

WHEN MONTH(订单.订购日期) IN (4,5,6) THEN '2'

WHEN MONTH(订单.订购日期) IN (7,8,9) THEN '3' ELSE '4' END) AS 季度,

订单明细.数量 AS 订购数量

FROM 订单

LEFT JOIN 订单明细 ON 订单明细.订单ID = 订单.订单ID ) a    

GROUP BY 年度,季度    

ORDER BY 年度,季度

最佳回答
0
snrtuemcLv8专家互助
发布于2022-7-26 14:09(编辑于 2022-7-26 14:14)

改成下面的试试

select * from

(SELECT YEAR(订单.订购日期) AS 年度,

(CASE

WHEN MONTH(订单.订购日期) IN (1,2,3) THEN '1'

WHEN MONTH(订单.订购日期) IN (4,5,6) THEN '2'

WHEN MONTH(订单.订购日期) IN (7,8,9) THEN '3' ELSE '4' END) AS 季度,

SUM(订单明细.数量) AS 订购数量

FROM 订单

LEFT JOIN 订单明细 ON 订单明细.订单ID = 订单.订单ID)     

GROUP BY 年度,季度    

ORDER BY 年度,季度

==================

image.png

  • hhOSKOQe hhOSKOQe(提问者) 不行
    2022-07-26 14:10 
  • snrtuemc snrtuemc 回复 hhOSKOQe(提问者) 不会吧,你一样语句,我放到sqlite中,把year和month替换成sqlite支持的写法可以的啊,看修改答案
    2022-07-26 14:14 
最佳回答
0
Z4u3z1Lv6专家互助
发布于2022-7-26 14:09

SELECT YEAR(订单.订购日期) AS 年度,

(CASE

WHEN MONTH(订单.订购日期) IN (1,2,3) THEN '1'

WHEN MONTH(订单.订购日期) IN (4,5,6) THEN '2'

WHEN MONTH(订单.订购日期) IN (7,8,9) THEN '3' ELSE '4' END) AS 季度,

SUM(订单明细.数量) AS 订购数量

FROM 订单

LEFT JOIN 订单明细 ON 订单明细.订单ID = 订单.订单ID     

GROUP BY

 YEAR(订单.订购日期) ,

(CASE

WHEN MONTH(订单.订购日期) IN (1,2,3) THEN '1'

WHEN MONTH(订单.订购日期) IN (4,5,6) THEN '2'

WHEN MONTH(订单.订购日期) IN (7,8,9) THEN '3' ELSE '4' END)

  

ORDER BY 1,2

  • 3关注人数
  • 315浏览人数
  • 最后回答于:2022-7-26 14:14
    请选择关闭问题的原因
    确定 取消
    返回顶部