以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  sql中的SUM报错  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=171463)

--  作者:BG小白
--  发布时间:2021/8/31 10:12:00
--  sql中的SUM报错
.NET Framework 版本:4.0.30319.42000
Foxtable 版本:2021.5.29.1
错误所在事件:
详细错误信息:
选择列表中的列 \'SPKCB.SPDM\' 无效,因为该列没有包含在聚合函数或 GROUP BY 子句中。


cmd1.CommandText = "SEL ECT {SPKCB}.SPDM AS 商品代码, {GUIGE1}.GGMC AS 颜色, {GUIGE2}.GGMC AS 尺码, sum(SL) AS 数量, {SPTP}.pic_name AS 图片 from (({SPKCB} INNER JOIN {GUIGE1} ON {SPKCB}.GG1DM = {GUIGE1}.GGDM) INNER JOIN {GUIGE2} ON {SPKCB}.GG2DM = {GUIGE2}.GGDM) INNER JOIN {SPTP} ON {SPKCB}.SPDM = {SPTP}.SPDM where ckdm = 001 and {SPkcb}.sl > 20 ORDER BY {SPKCB}.SPDM DESC"


蓝老师,这个是要怎么修改啊

--  作者:有点蓝
--  发布时间:2021/8/31 10:16:00
--  
分组统计必须和 GROUP BY一起使用

sl是哪个表的,根据哪些列进行分组统计?

--  作者:BG小白
--  发布时间:2021/8/31 10:48:00
--  
cmd1.CommandText = "S ELECT {SPKCB}.SPDM AS 商品代码, {GUIGE1}.GGMC AS 颜色, {GUIGE2}.GGMC AS 尺码, sum(SL) AS 数量, {SPTP}.pic_name AS 图片 from (({SPKCB} INNER JOIN {GUIGE1} ON {SPKCB}.GG1DM = {GUIGE1}.GGDM) INNER JOIN {GUIGE2} ON {SPKCB}.GG2DM = {GUIGE2}.GGDM) INNER JOIN {SPTP} ON {SPKCB}.SPDM = {SPTP}.SPDM where ckdm = 001 and {SPkcb}.sl > 200 GROUP BY {SPKCB}.SPDM, {GUIGE1}.GGMC, {GUIGE2}.GGMC,{SPTP}.pic_name ORDER BY {SPKCB}.SPDM DESC"

如何不把这个字段进行分组统计,我不写进去就会报错

.NET Framework 版本:4.0.30319.42000
Foxtable 版本:2021.5.29.1
错误所在事件:
详细错误信息:
选择列表中的列 \'SPTP.pic_name\' 无效,因为该列没有包含在聚合函数或 GROUP BY 子句中。


--  作者:有点蓝
--  发布时间:2021/8/31 11:11:00
--  
先做分组统计,再和其它表关联,获取不需要参与统计的列
--  作者:BG小白
--  发布时间:2021/8/31 16:55:00
--  
这里不太明白,对应的开发指南有吗?


--  作者:有点蓝
--  发布时间:2021/8/31 17:04:00
--  
这个百度吧。简单比如

select a.第一列,a.第二列,b.合计 from 表A as a inner join (select 第一列,sum(金额) as 合计 from 表B group by 第一列) as b on a.第一列 = b.第一列