SQL 三表联合查询
我现在有三个表
Ytable 业务员表:YID,YName,date(业绩员ID,业务员姓名,创建时间)
Ctable 客户表: CID,CName,YID(客户ID,客户姓名,业务员ID)
Mtable 回款表: MID,Money,CID,Date(业绩ID,回款金额,回款客户ID,回款时间)
我现在想查询出三个月没有回款的业务员数据。
我现在用这个语名只能查询出有过回款记录的,我想把还没有一个客户回款,创建时间超过三个月的也查询出来
select * from Ytable left join Ctable on Ctable.YID=Ytable.YID left join Mtable on Mtable.CID=Ctable.CID where Mtable.Date<=dateadd(m,-3,getdate())
[解决办法]
SELECT Y.业务员姓名
FROM Ytable Y
WHERE NOT EXISTS ( SELECT 1
FROM Mtable M
INNER JOIN Ctable C ON M.汇款客户ID = C.cid
WHERE C.业务员ID = Y.业绩员ID --少些一个Y
AND M.date <= DATEADD(m, -3, GETDATE()) )
select *
from Ytable a
where not exists
(select 1
from Ctable b
inner join Mtable c on b.客户ID=c.回款客户ID
where datediff(mm,c.回款时间,getdate())<=3)
select *
from Ytable
left join Ctable on Ctable.YID=Ytable.YID
left join Mtable on Mtable.CID=Ctable.CID
where Mtable.Date<=dateadd(m,-3,getdate()) and Mtable.CID is null