日期:2014-05-17  浏览次数:20655 次

关于查询数据库中时间记录大于30天的记录?
SQL2000下,假设有这么两张表  
表1存储用户的基本信息
"userid" (主键)
"用户姓名"
.
.
.
表2:存储所用用户的购买信息
"userid"
"时间"
我现在是想查询30天未购买东西的用户,下面这段是我昨天问到的答案,当时我觉得正确的! 最后发现这段代码内层查询到的userid是所有购买时间记录大于30天的userid.估计是我昨天表述不清楚!
SQL code

SELECT * 
FROM USERINFO 
WHERE userid IN  
             (SELECT userid
               FROM BuyInformation
               WHERE  DATEDIFF(day, 时间, GETDATE()) > 30
              )



------解决方案--------------------
select * from USERINFO a
 where not exists(select 1 from BuyInformation 
where userid=a.userid and DATEDIFF(day, 时间, GETDATE()) > 30)