首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

sql话语在查询分析器里面正确,代码执行报错

2013-08-04 
sql语句在查询分析器里面正确,代码执行报错。sql语句如下:select CONVERT(varchar(10),uc.pay_time,3) pay_

sql语句在查询分析器里面正确,代码执行报错。
sql语句如下:

select CONVERT(varchar(10),uc.pay_time,3) pay_time
        ,COUNT(*) xiaofeishuliang 
        ,SUM(CONVERT(decimal(18,2),uc.amount)) xiaofeizongji 
        ,SUM(CONVERT(decimal(18,2),uc.amount)) shijizongji 
        ,SUM(CONVERT(decimal(18,2),uc.amount))/COUNT(*) renjun 
from ucpayorder as uc
where uc.gameId=504002  
group by uc.pay_time 



gameid动态设置。

在查询分析器里面是正确的,可是代码执行的时候报错了,

注意:该sql语句是提供给分页存储过程 第一个参数。

错误信息如下:
选择列表中的列 'ucpayorder.pay_time' 无效,因为该列没有包含在聚合函数或 GROUP BY 子句中。
sql 存储过程
[解决办法]
select CONVERT(varchar(10),uc.pay_time,3) pay_time
        ,COUNT(*) xiaofeishuliang 
        ,SUM(CONVERT(decimal(18,2),uc.amount)) xiaofeizongji 
        ,SUM(CONVERT(decimal(18,2),uc.amount)) shijizongji 
        ,SUM(CONVERT(decimal(18,2),uc.amount))/COUNT(*) renjun 
from ucpayorder as uc
where uc.gameId=504002  
group by CONVERT(varchar(10),uc.pay_time,3)

我想这样应该不会错吧
[解决办法]


CREATE TABLE #TESTT(gameId INT IDENTITY(1,1) PRIMARY KEY,pay_time DATETIME,amount INT) 
SELECT * FROM #TESTT
INSERT INTO #TESTT VALUES (GETDATE(),100)
SELECT CONVERT(VARCHAR(10),t.pay_time,3) AS 'pay_time',
COUNT(1) AS 'xiaofeishuliang' ,
SUM(CONVERT(DECIMAL(18,2),T.amount))AS 'xiaofeizongji',
SUM(CONVERT(DECIMAL(18,2),T.amount))AS 'shijizongji',
avg(CONVERT(DECIMAL(18,2),T.amount))AS 'renjun'
FROM #TESTT t
GROUP BY t.pay_time
GO



/*
* Result:

pay_time   xiaofeishuliang xiaofeizongji    shijizongji       renjun
---------- --------------- ---------------- ----------------- ---------------
24/07/13   1               100.00           100.00            100.000000


(1 row(s) affected)


*/


没看出来哪里出错了。。
[解决办法]
不过确实我把楼主的语句直接COPY到查询分析器里会出错!




/*
* -------------------------------------
* 楼主的:
* -------------------------------------
*/
select?CONVERT(varchar(10),uc.pay_time,3) AS?'pay_time'
????????,COUNT(1) AS?'xiaofeishuliang'?
????????,SUM(CONVERT(decimal(18,2),uc.amount)) AS?'xiaofeizongji'?
????????,SUM(CONVERT(decimal(18,2),uc.amount)) AS?'shijizongji'?
????????,AVG(CONVERT(decimal(18,2),uc.amount)) AS?'renjun'
from?#TESTT AS?uc
where?uc.gameId=504002??
group?by?uc.pay_time?
/*

Msg 102, Level 15, State 1, Line 1
'?' 附近有语法错误。

找了半天反正没找到

*/


[解决办法]
引用:
不过确实我把楼主的语句直接COPY到查询分析器里会出错!




/*
* -------------------------------------
* 楼主的:
* -------------------------------------
*/
select?CONVERT(varchar(10),uc.pay_time,3) AS?'pay_time'
????????,COUNT(1) AS?'xiaofeishuliang'?
????????,SUM(CONVERT(decimal(18,2),uc.amount)) AS?'xiaofeizongji'?
????????,SUM(CONVERT(decimal(18,2),uc.amount)) AS?'shijizongji'?
????????,AVG(CONVERT(decimal(18,2),uc.amount)) AS?'renjun'
from?#TESTT AS?uc
where?uc.gameId=504002??
group?by?uc.pay_time?
/*

Msg 102, Level 15, State 1, Line 1
'?' 附近有语法错误。

找了半天反正没找到

*/




好吧。。是我自己的错。。。。引号的原因。
[解决办法]
引用:
用查询分析器监视到了执行的sql语句,语句被截断了,后面order by 部分都没有了,有人遇到过么
???


存储过程接受参数字符串大小设置是多少?
或是你传参的时候 指定 字符串的大小没?
------解决方案--------------------


引用:
Quote: 引用:

用查询分析器监视到了执行的sql语句,语句被截断了,后面order by 部分都没有了,有人遇到过么
???


存储过程接受参数字符串大小设置是多少?
或是你传参的时候 指定 字符串的大小没?


+1

热点排行