首页 > 解决方案 > 根据第一个表中的值计算第二个表中的记录数

问题描述

我有3个这样的表:

架构

我想得到这个:

输出

通知表中有所有行(选定的属性)。
然后是通知所在的位置名称。发生(Notification.Location_ID = Location.ID
和在通知的时间段内发生在同一位置的进程计数。( COUNT(Process.ID) WHERE Notification.Location_ID = Process.Location_ID AND DateTime > Begin AND DateTime < End)

我认为我在正确加入 Process 表时遇到问题。
整个 SQL 查询应该如何获得想要的输出?谢谢。

标签: sqlsql-server

解决方案


看起来前两个表之间的连接是好的,所以,我建议您在 FROM 之前的 SELECT 子句末尾添加以下子查询,以计算行的计数器。

(SELECT Count(*) FROM Process WHERE Process.Location_ID = Location.ID) AS Counter

如果您已在联接中包含第三个表(进程),则必须将其消除。


推荐阅读