请问一个SQL的问题?
SELECT *,SUM(dayMoney) FROM DianTuGP INNER JOIN
GangWei ON DianTuGP.gw_id = GangWei.gw_id
WHERE (DianTuGP.d_date >= :date1) and (DianTuGP.d_date <= :date2) GROUP BY DianTuGP.gp_id
提示有错误,‘列DianTuGP.gh在选择列表中无效,因为该列既不包含在聚合函数中,也不包含在GROUP BY子句中’请问这是为什么呀,
问题点数:20、回复次数:4Top
1 楼dulei115(前途无亮)回复于 2003-12-03 11:13:33 得分 5
SELECT 后面显示的列必须满足下面的条件,
要么在聚合函数中,如:dayMoney在SUM(dayMoney)
要么在GROUP BY子句中,如GROUP BY DianTuGP.gp_id
Top
2 楼outer2000(天外流星)回复于 2003-12-03 11:15:13 得分 5
SELECT DIANTUGP.GP_ID,SUM(dayMoney) FROM DianTuGP INNER JOIN
GangWei ON DianTuGP.gw_id = GangWei.gw_id
WHERE (DianTuGP.d_date >= :date1) and (DianTuGP.d_date <= :date2) GROUP BY DianTuGP.gp_id
Top
3 楼dulei115(前途无亮)回复于 2003-12-03 11:16:57 得分 5
如果没有猜错,楼主的DianTuGP表,第一列为gp_id,第二列就是gh
把列DianTuGP.gh加到聚合函数或者GROUP BY子句中后,还会提示下一列“在选择列表中无效,因为该列既不包含在聚合函数中,也不包含在GROUP BY子句中”,直到所有列满足条件为止Top
4 楼angle097113(深思不解)回复于 2003-12-03 11:18:47 得分 5
当你使用了GROUP BY 的时候你的select的字段必须出现在GROUP BY的后面的
或者你select的字段是聚合函数的Top




