我有一个获取不同deviceID列表的查询,现在我想将该查询与另一个具有内部联接的查询联系起来。
这是我的第一个查询
Select distinct deviceid
from session
where cast(createdon as date) between '01/01/2018' and '01/30/2018'
and len(deviceid) > 10
该查询返回我需要的不同DeviceId。我现在想要使用该查询中的DeviceID并将其替换为此查询中的DeviceID
第二次查询:
select f.PracticeID, F.Name, D.DeviceID, d.SerialNumber
from device d
inner join facility f on f.id = d.locationid
inner join session s on s.deviceid = d.deviceid
where d.deviceID = 'deviceID'
我如何合并那些2?我想从第一个查询中获取结果并将其用于第二个查询DeviceID列。现在我在第一个查询中手动执行DeviceID
。我正在使用SQL Server 2012
答案 0 :(得分:2)
您想从第二个查询中获取第一个查询中与第一个查询不同的DeviceID的所有数据吗?这应该做到。
select f.PracticeID,F.Name,D.DeviceID,d.SerialNumber from device d
inner join facility f on f.id=d.locationid
inner join session s on s.deviceid=d.deviceid
where d.deviceID in (
Select distinct deviceid from session where cast(createdon as date) between
'01/01/2018' and '01/30/2018' and len(deviceid)>10
)
答案 1 :(得分:1)
您可以使用子查询来实现此目的: -
select f.PracticeID,F.Name,D.DeviceID,d.SerialNumber from ( Select distinct deviceid from session where cast(createdon as date) between
'01/01/2018' and '01/30/2018' and len(deviceid)>10) d
inner join facility f on f.id=d.locationid
inner join session s on s.deviceid=d.deviceid
where d.deviceID='deviceID'