2

所以我有以下SQL语句:

SELECT   COUNT("Oprettet af Initialer") AS meetings_booked
FROM     KS_DRIFT.DIAN_POT_OPR
WHERE    "Oprettet dato" = '2013-08-12'
AND      "Oprettet af Initialer" = 'JOEB'

现在这将返回正确的数字 (71)

现在这只是一个测试,我必须对整个表做同样的事情,但只包括一些与另一个表中Oprettet af Initialer的行相等的地方。Initialer

为此,我决定使用联接:

SELECT   COUNT("Oprettet af Initialer") AS meetings_booked
FROM     KS_DRIFT.DIAN_POT_OPR INNER JOIN KS_DRIFT.V_TEAM_DATO ON KS_DRIFT.DIAN_POT_OPR."Oprettet af Initialer" = KS_DRIFT.V_TEAM_DATO.INITIALER
WHERE    "Oprettet dato" = '2013-08-12'
AND      "Oprettet af Initialer" = 'JOEB'

当我运行它时,我得到以下输出:181476。

这显然是一个错误!

现在我有一种直觉告诉我它正在计算两行中的所有内容但是我不知道如何解决它?

4

1 回答 1

3

问题是 V_TEAM_DATO 中有几行匹配 KS_DRIFT.DIAN_POT_OPR,试试这个:

SELECT   COUNT("Oprettet af Initialer") AS meetings_booked
FROM     KS_DRIFT.DIAN_POT_OPR 
WHERE exists
(SELECT 1 FROM KS_DRIFT.V_TEAM_DATO 
WHERE KS_DRIFT.DIAN_POT_OPR."Oprettet af Initialer" = KS_DRIFT.V_TEAM_DATO.INITIALER
)
AND "Oprettet dato" = '2013-08-12'
AND "Oprettet af Initialer" = 'JOEB'
于 2013-08-21T17:16:54.207 回答