关于查询数据库中时间记录大于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)