首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

SQL 3表联合查询

2013-10-16 
SQL 三表联合查询我现在有三个表Ytable 业务员表:YID,YName,date(业绩员ID,业务员姓名,创建时间)Ctable 客

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()) )

[解决办法]
try this,

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

热点排行