关于select case的问题,希望大家给看看,谢谢各位了!!
SELECT a.*,b.name from chanpin as a,customer as b
where a.jianyan_riqi <=getdate() and
**************************************************************************
大家给看看下面这段sql(case when )可以嵌到 这吗,另外我的sql语法有问题吗
我现在对这sql有点乱,谢谢大家帮忙指点一下!!!!!!!!!!!
-------------------------
case when datediff(yy,getdate(),a.shengcan_riqi)> 12 then
'datediff(dd,getdate(),DATEADD(yy, 3, a.jianyan_riqi))> 15 " '
else
'datediff(dd,getdate(),DATEADD(yy, 4, a.jianyan_riqi))> 15 '
end as Category //这个Category是我随便写的对吗
------------------------
*************************************************************************
order by bianhao
------解决方案--------------------应该没有错误
你在查询分析器中运行下不就知道有没有语法错误了
------解决方案--------------------SELECT a.*,b.name from chanpin as a,customer as b
where a.jianyan_riqi <=getdate() and case when datediff(yy,getdate(),a.shengcan_riqi)> 12 then
datediff(dd,getdate(),DATEADD(yy, 3, a.jianyan_riqi))> 15
else datediff(dd,getdate(),DATEADD(yy, 4, a.jianyan_riqi))> 15
end AND 關聯條件
還少了兩個表得關聯條件
------解决方案--------------------是不是想这样?
(case when datediff(yy,getdate(),a.shengcan_riqi)> 12 then
datediff(dd,getdate(),DATEADD(yy, 3, a.jianyan_riqi))
else
datediff(dd,getdate(),DATEADD(yy, 4, a.jianyan_riqi))
end) > 15
------解决方案--------------------SELECT a.*, b.name from chanpin as a,customer as b
where a.jianyan_riqi <= getdate() and
case when datediff(yy, getdate(), a.shengcan_riqi) > 12
then datediff(dd, getdate(), DATEADD(yy, 3, a.jianyan_riqi))
else
datediff(dd,getdate(), DATEADD(yy, 4, a.jianyan_riqi))
end > 15 //case 返回的是值
order by bianhao