从2个表中分组结果

时间:2012-02-15 21:19:38

标签: sql-server

我有2个表,其中一个表包含位置ID和标识符列表,如下所示

PKID   LOCATIONID
232      656
2424     657
878      663

另一张表有locationID,以及一系列Mile Markers那些位置ID的参考。

LocID   Roadway   StartMM     EndMM
656      I-40      373.5      376.4
657      I-40      373.5      376.4
658      I-40      373.5      376.4
660      I-40      377.5      381.4
661      I-40      377.5      381.4
662      I-40      377.5      381.4
66       I-40      377.5      381.4

注意相同StartMM和EndMM范围的多个LocID

我需要计算第一个表中每个locID在第二个表中出现的次数 例如,在上面示例的示例中,对于范围373.5到376.4,第一个表中有2个条目匹配,因此计数将为2.对于范围377.5到381.4,第一个表中的一个locID与范围匹配

我的输出需要像

Roadway StartMM   EndMM   Count  
I-40     373.5    376.4     2
I-40     377.5    381.4     1

我希望这很清楚......任何帮助都非常感谢!

2 个答案:

答案 0 :(得分:0)

假设您的第二个表中的LocID是唯一的,您可以做一些简单的事情:

SELECT Roadway,StartMM, EndMM, count(*)
FROM Table2
GROUP by Roadway, StartMM, EndMM

答案 1 :(得分:0)

SELECT Roadway,StartMM, EndMM, count(t1.locationid)
FROM Table2 t2
left join table1 t1
on t1.locationid = t2.locid
GROUP by Roadway, StartMM, EndMM

对于第一个表中没有匹配的位置ID的标记范围,计数为0。如果您只需要显示第一个表中存在的英里标记范围,请将左连接更改为内连接。