加入时SQL计数会变得疯狂

加入时SQL计数会变得疯狂,sql,oracle,count,Sql,Oracle,Count,因此,我有以下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) 现在这只是一个测试,我必须对整个表做同样的测试,但只包括一些opretet af Initiale

因此,我有以下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)

现在这只是一个测试,我必须对整个表做同样的测试,但只包括一些
opretet 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

这显然是个错误


现在我有一种直觉告诉我,这是从两行计算一切,但我不知道如何修复它

问题是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'

工作!§谢谢,即使我没有和“opretet af Initialer”=“JOEB”?@MarcRasmussen是的,您可以在exists子句末尾括号后的
会议记录中的列上添加任何条件。