表名:zfxx
字段1:id   int  自动增长
字段2:lxr   varchar(20)
字段3:lxdh   varchar(50)
字段4:qydz  varchar(100)
字段5:fbsj  varchar(100)  但是存的数据是:例如:2012-02-15 13:26如图:我现在想将我zfxx表中的 lxr,lxdh,qydz三个字段中的内容有两项相同,并且fbsj在两个月以内的数据检索出来大家有什么好的方法?

解决方案 »

  1.   


     SELECT * FROM zfxx 
     WHERE ((lxr=lxdh AND lxdh<>qydz)
     OR (lxr<>lxdh AND lxr=qydz)
     OR (lxr<>qydz AND lxdh=qydz))
     AND DATEDIFF(d,fbsj,GETDATE())<60
      

  2.   

    select * from zfxx where  fbsj between CONVERT(varchar(16),dateadd(month,-2,GETDATE()),120) and CONVERT(varchar(16),GETDATE(),120)and (lxr=lxdh or lxr=qydz or lxdh=qydz )
      

  3.   

    create table zfxx (id int identity(1,1),lxr varchar(20),lxdh varchar(50),qydz varchar(100),fbsj varchar(100))-- 但是存的数据是:例如:2012-02-15 13:26
    go
    insert into zfxx select 'a','d','c',CONVERT(varchar(16),GETDATE(),120) union all
    select 'aa','bb','cc','2012-03-01 13:20' union all 
    select 'a','b','c','2012-01-02 13:20' union all 
    select 'bb','bb','cc','2012-03-03 13:20' union all 
    select 'ss','bb','v','2012-02-01 13:20' union all 
    select 'aa','aa','cc','2012-03-01 13:20' union all 
    select 'gg','bb','cvc','2012-02-21 13:20' union all 
    select 'aa','bb','cc','2012-01-21 13:20' union all 
    select 'cc','gg','cc','2012-04-01 13:20' 
    go
    select * from zfxx where  fbsj between CONVERT(varchar(16),dateadd(month,-2,GETDATE()),120) and CONVERT(varchar(16),GETDATE(),120)and (lxr=lxdh or lxr=qydz or lxdh=qydz )
    /*
    id lxr lxdh qydz fbsj
    4 bb bb cc 2012-03-03 13:20
    6 aa aa cc 2012-03-01 13:20
    9 cc gg cc 2012-04-01 13:20
    */
      

  4.   

    你们没理解我的意思。我将zfxx表as  a和b,条件是这样的:
    (a.LXR=b.LXR and a.LXDH=b.LXDH) 
    or (a.JBQK=b.JBQK and a.LXDH=b.LXDH) 
    or (a.JBQK=b.JBQK and a.LXR=b.LXR)
    不是lxr=lxdh or lxr=qydz or lxdh=qydz
    时间也不是和当前时间比。是两条相同的数据进行对比
      

  5.   


    你没理解我的意思。我将zfxx表as a和b,条件是这样的:
    (a.LXR=b.LXR and a.LXDH=b.LXDH)  
    or (a.JBQK=b.JBQK and a.LXDH=b.LXDH)  
    or (a.JBQK=b.JBQK and a.LXR=b.LXR)
    不是lxr=lxdh or lxr=qydz or lxdh=qydz
    时间也不是和当前时间比。是两条相同的数据进行对比