我有一個查詢,使用子查詢從2個獨立的表中計數2列,該工作。現在我必須在這個查詢中實現根據通話記錄的日期過濾掉這些結果的能力。我將發佈我正在使用的查詢:從兩個日期之間的單獨表中計數2列
SELECT (m.FirstName || " " || m.LastName) AS Members,
(
SELECT count(CallToLineOfficers.MemberID)
FROM CallToLineOfficers
WHERE CallToLineOfficers.MemberID = m.MemberID
)
+ (
SELECT count(CallToMembers.MemberID)
FROM CallToMembers
WHERE CallToMembers.MemberID = m.MemberID
) AS Tally
FROM Members AS m, Call, CallToMembers, CallToLineOfficers
Join Call on CallToMembers.CallID = Call.CallID
and CallToLineOfficers.CallID = Call.CallI
WHERE m.FirstName <> 'None'
-- and Call.Date between '2017-03-21' and '2017-03-22'
GROUP BY m.MemberID
ORDER BY m.LastName ASC;
好吧,所以表呼叫存儲日期和它的PK是CallID。 CallToLineOfficers和CallToMembers都是隻包含CallID和MemberID的橋表。在當前查詢中,日期被註釋掉,該日期範圍應該只返回所有名字,但計數1應該出現在1人名下。
我曾嘗試加入Call.CallID與兩個橋表Call's沒有任何運氣,但我認爲這是正確的方式來做到這一點。有人能幫助我指出正確的方向嗎?我搞不清楚了。 (我試圖解釋這一盡我所能,所以如果你需要更多的信息,讓我知道。)
更新:這裏是我得到的截圖:基於
在樣本中提供日期,新日期的結果應爲:
Bob Clark - 1
Rob Catalano - 1
Matt Butler - 1
Danielle Davidson - 1
Jerry Chuska - 1
Tom Cramer - 1
Everyone else should be 0.
樣本數據和期望的結果將是有益的。無論如何,它看起來好像你忘了加入'm'和'Call'表。 –
本來我有他們在那裏,但似乎無法弄清楚他們是否正確。我會讀它們,並提供我得到的和我應該得到的截圖。 – RockGuitarist1