问题描述
- SQL语句在VS中运行错误,在数据库中执行正确
-
select (case when ub.ishandle is NUll then '未处理' when ub.ishandle='' then '未处理' else ishandle end)as 'ishandle',u.fsid,u.BuMenId,y.Chusheng,y.lunar,u.Realname,b.Name as bname from qp_hr_Yuangong y, qp_oa_Bumen b,qp_oa_username u left join qp_oa_userBirth ub on u.fsid=ub.fsid where( (y.lunar=1 and (( MONTH(y.Chusheng)=MONTH(GETDATE()) and (day(y.Chusheng) = day(dateadd(dd,3,getdate())) or day(y.Chusheng) = day(dateadd(dd,2,getdate())) or day(y.Chusheng) = day(dateadd(dd,1,getdate()))) and ((DAY(y.Chusheng)>=3))) or (MONTH(y.Chusheng)=MONTH(DATEADD(MM,1,GETDATE()) )and (day(y.Chusheng) = day(dateadd(dd,3,getdate())) or day(y.Chusheng) = day(dateadd(dd,2,getdate())) or day(y.Chusheng) = day(dateadd(dd,1,getdate())))and (DAY(y.Chusheng)<=3)))) or (( (y.lunar=1 and (( MONTH(y.Chusheng)=month((select dbo.fn_GetLunar(GETDATE()))) and (day(y.Chusheng) = day(dateadd(dd,3,(select dbo.fn_GetLunar(GETDATE())))) or day(y.Chusheng) = day(dateadd(dd,2,(select dbo.fn_GetLunar(GETDATE())))) or day(y.Chusheng) = day(dateadd(dd,1,(select dbo.fn_GetLunar(GETDATE()))))))))) ) )and u.BuMenId=b.id and u.fsid=y.fsid
SQL语句如下,选出最近三天生日的人员,包括阳历和农历。
如何单独执行查询阳历或者农历,就不会报错,于是我一开始尝试用union去连接,但是也报错了
解决方案
还是提示语法错误,你看你VS中执行的时候,sql完整语句字符串是什么样子,估计有修饰符等没有注意到。
解决方案二:
VS中执行到这条sql语句,我拿出来放到数据库中执行,可以通过。
解决方案三:
错误地正确运行着