百思不得其解的问题,求各位大佬解惑

select TM1.ID,"SUM"(TM1.数量)*TM3.PRICE,'2020-12-31 00:00:00'  DATE,'2020' YEARfromTM1left join TM2 on TM1.编码=TM2.编码left join TM3 on tm1.ID=TM3.ID and TM.编码=TM3.编码WHERE TM1.ID='20201123'GROUP BY TM1.ID

报错not a GROUP BY expression

用户kWEye3931 发布于 2021-2-23 09:33 (编辑于 2021-2-23 09:35)
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共3回答
最佳回答
0
axingLv6专家互助
发布于2021-2-23 09:42

按照你的写法,TM3.PRIC也要加到group by后面

select TM1.ID,"SUM"(TM1.数量)*TM3.PRICE, '2020-12-31 00:00:00'  DATE, '2020' YEAR from TM1  left join TM2 on TM1.编码=TM2.编码 left join TM3 on tm1.ID=TM3.ID  and TM1.编码=TM3.编码 WHERE TM1.ID='20201123' GROUP BY TM1.ID,TM3.PRICE

但我觉得正确的写法应该是这样,把TM3.PRICE放到括号里面

select TM1.ID,"SUM"(TM1.数量*TM3.PRICE), '2020-12-31 00:00:00'  DATE, '2020' YEAR from TM1  left join TM2 on TM1.编码=TM2.编码 left join TM3 on tm1.ID=TM3.ID  and TM1.编码=TM3.编码 WHERE TM1.ID='20201123' GROUP BY TM1.ID

最佳回答
0
ScyalcireLv7中级互助
发布于2021-2-23 09:34(编辑于 2021-2-23 09:41)

不止一个TM1.ID  '2020-12-31 00:00:00'  DATE,'2020' YEAR也要加在group by后面

select TM1.ID, SUM(TM1.数量)*TM3.PRICE, '2020-12-31 00:00:00'  DATE, '2020' YEAR from TM1 left join TM2 on TM1.编码=TM2.编码 left join TM3 on tm1.ID=TM3.ID and TM.编码=TM3.编码 WHERE TM1.ID='20201123' GROUP BY TM1.ID,'2020-12-31 00:00:00' ,'2020'

  • 用户kWEye3931 用户kWEye3931(提问者) 我把\'2020-12-31 00:00:00\' DATE,\'2020\' YEAR这两段去掉也会出现同样的问题
    2021-02-23 09:37 
  • Scyalcire Scyalcire 回复 用户kWEye3931(提问者) group by 后面要加上这两段,不是去掉啊
    2021-02-23 09:38 
  • Scyalcire Scyalcire 回复 用户kWEye3931(提问者) 直接就加两个固定值也行 group by TM1.ID,\'2020-12-31 00:00:00\',\'2020\'
    2021-02-23 09:40 
  • 用户kWEye3931 用户kWEye3931(提问者) 回复 Scyalcire 加上就是SQL command not properly ended
    2021-02-23 09:40 
  • Scyalcire Scyalcire 回复 用户kWEye3931(提问者) 你在复制上面的sql试着跑一下
    2021-02-23 09:41 
最佳回答
0
snrtuemcLv8专家互助
发布于2021-2-23 09:38(编辑于 2021-2-23 09:39)

除了TM1.ID,其他的字段也要写进去,SUM不要用引号

select  TM1.ID,SUM(TM1.数量)*TM3.PRICE,'2020-12-31 00:00:00'  DATE,'2020' YEAR  from TM1 left join TM2 on TM1.编码=TM2.编码left join TM3 on tm1.ID=TM3.ID and TM.编码=TM3.编码WHERE TM1.ID='20201123' GROUP BY TM1.ID, DATE, YEAR

  • 4关注人数
  • 352浏览人数
  • 最后回答于:2021-2-23 09:42
    请选择关闭问题的原因
    确定 取消
    返回顶部