您好,我有一张 table ,里面有很多客户,可以有 2 种指定类型。我想做的是选择两种类型的约会,但是,仅当 apptType=1 的日期 apptDate 介于 01/01/2016 和 06/30/2016 之间时。
表结构
ID ClientID ApptType ApptDate
1 12 1 01/03/2016
2 12 2 12/05/2016
3 90 1 12/31/2015
4 90 2 05/30/2016
因此每个客户端都有 2 个 ApptType,1 和 2 带有 ApptDate。
我正在尝试选择所有客户端,并且 ApptDate 介于 01/01/2016 和 06/30/2016 之间,ApptType = 1。对于满足该条件的所有客户端,我尝试查看两个 appTtypes
我尝试过类似的方法,但它只显示 apptType =1
Select * from tblA where apptType=1 and apptDate between 01/01/2016 and 06/30/2016
期望的最终结果:
ID ClientID ApptType ApptDate
1 12 1 01/03/2016
2 12 2 12/05/2016
我希望结果能够显示 AppTType=1 的所有客户的 ApptType = 1 和 ApptType=2
最佳答案
根据 Sean Lange 的建议,您可以使用存在来执行此操作
Select * from tblA T1
where exists (
select 1 from tblA T2 where T2.apptType=1 and T2.apptDate between '01/01/2016' and '06/30/2016' AND T1.ClientId=T2.ClientId)
使用 JOIN 的其他方式如下
select * from TblA t1
inner Join tblA t2
on T1.ClientId=T2.ClientId
AND T2.apptType=1 and T2.apptDate between '01/01/2016' and '06/30/2016'
关于sql - 选择具有特定标准的一组特定客户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46648960/