日期:2014-05-16  浏览次数:20637 次

[Microsoft][SQLServer 2000 Driver for JDBC][SQLServer] 求和sum出错
SELECT Sum(a.seremit_t) AS seremit_t,Sum(a.seremit_f) AS seremit_f,Sum(a.seaccept_t) AS seaccept_t,Sum(a.seaccept_f) AS seaccept_f,Sum(a.secash_t) AS secash_t,Sum(a.secash_f) AS secash_f FROM dbo.tb_Periodstart AS a WHERE a.deptclass IN (108,107,106) and CONVERT(VARCHAR, dateadd(dd,1,a.ctdate), 23)='2014-04-10'
java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC][SQLServer]列 'a.id' 在选择列表中无效,因为该列未包含在聚合函数中,并且没有 GROUP BY 子句。





使用的是Struts2 +SQL SERVER 2000   
------解决方案--------------------
纯粹你的SQL语句没用到ID,应该不会报错,问题就是你的查询是否仅仅那么简单
------解决方案--------------------
我不用第三方软件连数据库,2000我只用查询分析器。算了,我不回复你了,本来还打算跟你一起找找问题,竟然一开口就被骂,你慢慢等吧
------解决方案--------------------
单纯你的语句本身就是没有错误的,所以我才说你前端程序调用的语句是不是真的是这个语句。有个方法,开启sqlserver Profiler,跟踪语句,看看点击报错的那一步,实际上是发送了什么SQL给sqlsever,导致报错。
------解决方案--------------------
我只搞过C#,Profiler你用过没?这个可以抓SQL
------解决方案--------------------
嗯,带出ID了,不过你这里也没进行sum啊
------解决方案--------------------
额,那就报错了,不用我啰嗦了吧?等下又被骂