要求:(1)员工类别:干部、工人;
      (2)性别:男、女;
      (3)退休年限: 干部:>60、   工人:男>55、女>50
      (4)可通过选择年或月来显示人员  
       请各位指教一下,用SQL语句如何写来实现在数据库中的查找?谢谢!!!!
 

解决方案 »

  1.   

    LZ得对应表吧?LZ给出表结构...
      

  2.   

    select * from tb where 年龄>(case when 员工类别='干部' then 60 else 性别='男' then 55 else 50 end)
      

  3.   


    declare @sqlstr nvarchar(1000)
    set @sql='select xxoo,ooxx from tbl where 1=1 '
    if(@xxx<>'')
    begin
      set @sql=@sql+' and xxx='+@xxx
    end
    ...
    exe sp_execute (@sql)
      

  4.   

    不好意思,写错了!
    select * from tb where 年龄>(case when 员工类别='干部' then 60 else (case when 性别='男' then 55 else 50 end)end)
      

  5.   

    代码是delphi的,
    FilterDataSet(TSqlDataSet(dsbReport.DataSet),'.....'); 
    dsbReport指向数据库中的员工信息表,
    结果是想在页面的表格中只显示出符合要求的人员名单
      

  6.   

    用IF写写试试if exists(select 1 from tb where 员工类别='干部')
    select * from tb where 年龄>60
    if exists(select 1 from tb where  员工类别='工人')
    select * from tb where 年龄>(case when 性别='男' then 55 else 50 end)
      

  7.   

    年龄和月没关系,最简单的办法是直接拿出生日期与getdate对比天数.