我有两个名为LocalVSDB和TemporaryVSDB的表。这两个表具有相同的列:
LocalVSDB: msisdn,activateDate
TemporaryVSDB: msisdn,activateDate
但是两个表都具有MSIDSN的重复行
我需要加入这两个表。我的预期结果如下所示:
MSISDN LocalActivateDate TemporaryActivateDate Datediff
60103820251 2013-12-14 2013-10-05 70
601111000254 2013-12-14 2013-10-05 70
601111000254 2013-12-18 2013-09-10 80
但是,由于存在重复的MSIDSN,所以我加入时会得到重复的行。例如,每个表中的某些MSISDN有6行,因此当我加入时,该MSISDN总共有36行。
我正在使用以下查询加入:
SELECT t.msisdn,t.activateDate AS VSDB_Activate_Date,
l.activateDate AS Local_Activate_Date,
DATEDIFF(D,l.activateDate,t.activateDate) AS date_Diff
FROM temporaryVSDB2 t
INNER JOIN LocalVSDB l ON t.msisdn = l.msisdn
WHERE t.activateDate > l.activateDate
请帮助我如何获得6行MSISDN的6行?
提前致谢。
最佳答案
问题是:
where t.activateDate > l.activateDate
这意味着表一中的一行可以连接到表二中的所有六行。您要么需要将其更改为=,要么只是根据特定条件从第二个表中获取一行。