我有两个不同的数据库SQL查询始终运行 - SQL Server 2008中
Database1 - Table1
Database2 - Table2
Table1 Columns: NimID,IDDate,Station
Table2 Columns: XilID,XilDate
Table1 Table2
NimID IDDate Station XilID XilDate
234 2011-04-21 HYD 234 2011-04-21
237 2011-04-21 CHN 208 2011-04-21
208 2011-04-21 HYD 209 2011-04-15
209 2011-04-15 DEL 218 2011-05-28
212 2011-03-11
我想了解有多少的ID在表1表2中,其中IDDate = XilDate ='不是两个表2011-04- 21'组由Table1.Station组成。 我做了以下
select x.Station as Station,
count(distinct x.NimID) as Difference
from (
select a.NimID,
a.IDDate,
a.Station
from database1.dbo.table1 a
where left(cast(a.Date as date),11)='2011-04-21'
) as X, (
select b.XilID,
b.XILDate
from database2.dbo.Table2 b
where b.XilDate='2011-04-21'
) as Y
where x.NimID not in (y.XilID)
group by x.Station
查询,但此查询将永远运行下去.. 请记住表是从位于同一台服务器上不同的数据库和表1中包含10,000,000记录和表2包含约1300万条记录 请纠正我的查询,如果错误或建议我更快的方式
感谢
了不起的人......非常感谢.. 。我一直讨厌使用连接..现在连接帮助我成千上万的数据.. :) – ARB 2011-06-17 07:58:24
@ARB:那么对你有好处。看起来非常像你现在会更恨他们。 :)请看我的更新,我试图重写解决方案,使其更简单。 – 2011-06-17 08:22:28
嗯..谢谢。 。:)。今晚会去参加学习。 。 :) – ARB 2011-06-17 09:07:19