现有一个客户资料表,客户表表结构如下:
客户名称 营业执照有效期 税务登记证有效期 卫生许可有效期 生产许可有效期
   企业1     2013-11-12       2014-05-10    2013-11-15      2013-12-31
   企业2     2013-11-15       2014-03-10    2013-11-19      2013-12-31在查询时将四个日期与当前日期进行判断,如果全部大于90天,则直接显示查询结果;如果有一个执照到期则显示该企业执照到期,感谢各位赐教。

解决方案 »

  1.   

    select 客户名称 ,case when datediff(dd,sj1,getdate)>90 or datediff(dd,sj2,getdate)>90 or datediff(dd,sj3,getdate)>90 or datediff(dd,sj4,getdate)>90 then '该企业执照到期' else '未过期' end as state from tb
      

  2.   


    select 客户名称 ,
           case when datediff(dd,sj1,getdate)>90 or 
                     datediff(dd,sj2,getdate)>90 or 
                     datediff(dd,sj3,getdate)>90 or 
                     datediff(dd,sj4,getdate)>90 
                     then '该企业执照到期' 
                else '未过期' end as state,
                
           case when datediff(dd,sj1,getdate)>90
                     then  '营业执照有效期过期。' 
                else ''
           end + 
           case when datediff(dd,sj1,getdate)>90
                     then  '税务登记证有效期过期。' 
                else ''
           end +
           case when datediff(dd,sj1,getdate)>90
                     then  '卫生许可有效期过期。' 
                else ''
           end +
           case when datediff(dd,sj1,getdate)>90
                     then  '生产许可有效期过期。' 
                else ''
           end '哪些执照过期了' 
    from tb
      

  3.   


    上面的有点问题,我给改了一下字段名称:select 客户名称 ,
           case when datediff(dd,sj1,getdate)>90 or 
                     datediff(dd,sj2,getdate)>90 or 
                     datediff(dd,sj3,getdate)>90 or 
                     datediff(dd,sj4,getdate)>90 
                     then '该企业执照到期' 
                else '未过期' end as state,
                
           case when datediff(dd,sj1,getdate)>90
                     then  '营业执照有效期过期。' 
                else ''
           end + 
           case when datediff(dd,sj2,getdate)>90
                     then  '税务登记证有效期过期。' 
                else ''
           end +
           case when datediff(dd,sj3,getdate)>90
                     then  '卫生许可有效期过期。' 
                else ''
           end +
           case when datediff(dd,sj4,getdate)>90
                     then  '生产许可有效期过期。' 
                else ''
           end '哪些执照过期了' 
    from tb
      

  4.   

    大概就是这样了,你自己再改一下就行
    select 客户名称 ,
           case when datediff(dd,sj1,getdate)>90 or 
                     datediff(dd,sj2,getdate)>90 or 
                     datediff(dd,sj3,getdate)>90 or 
                     datediff(dd,sj4,getdate)>90 
                     then '该企业执照到期' 
                else '未过期' end as state,
                
           case when datediff(dd,sj1,getdate)>90
                     then  '营业执照有效期没过期。'
                when datediff(dd,sj1,getdate) <0
                     then '营业执照有效期过期。'
                else '营业执照有效期即将过期。'
           end + 
           case when datediff(dd,sj1,getdate)>90
                     then  '税务登记证有效期没过期。'
                when datediff(dd,sj1,getdate) <0
                     then '税务登记证有效期过期。'
                else '税务登记证有效期即将过期。'
           end + 
           case when datediff(dd,sj1,getdate)>90
                     then  '卫生许可有效期没过期。'
                when datediff(dd,sj1,getdate) <0
                     then '卫生许可有效期过期。'
                else '卫生许可有效期即将过期。'
           end + 
           case when datediff(dd,sj1,getdate)>90
                     then  '生产许可有效期没过期。'
                when datediff(dd,sj1,getdate) <0
                     then '生产许可有效期过期。'
                else '生产许可有效期即将过期。'
           end 
    from tb