读书人

同样的sql语句当数据库在本机时正确

发布时间: 2012-02-11 09:51:35 作者: rapoo

同样的sql语句,当数据库在本机时正确,在另外的服务器上就出错?
如题,sql 如下:
SELECT 业务号=Upper(Left(JobNo,2)),年份=Cast(Substring(JobNo,3,2) as char),
count(case when Cast(Substring(JobNo,5,2) as int)=1 then Left(JobNo,2) else null end) as [1],
count(cast(Substring(JobNo,5,2) as int)) as 合计
FROM JobSheet_SI
WHERE AcceptDate >'2005' and (Cast(Substring(JobNo,3,2) as CHAR)>'04') and Upper(Substring(JobNo,1,2))<>'YR' and Upper(Substring(JobNo,1,2))<>'SX' and Upper(Substring(JobNo,1,2))<>'Y0'
GROUP BY Left(JobNo,2),Cast(Substring(JobNo,3,2) as char)
ORDER BY 业务号,年份

当数据库还原到本机,运行正确;但数据库在局域网的另外一台计算机,就出错:

JobNo 不在聚合函数或group by 子句内(大意如此)

[解决办法]
--try

GROUP BY Upper(Left(JobNo,2)),Cast(Substring(JobNo,3,2) as char)

读书人网 >SQL Server

热点推荐