所以我有以下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。
这显然是个错误!
现在我有一种直觉,告诉我它正在计算两行中的所有内容,但我不知道如何修复它?
答案 0 :(得分: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'