SELECT
Count(a.record_id) AS newrecruits
,a.studyrecord_id
FROM
visits AS a
INNER JOIN
(
SELECT
record_id
, MAX(modtime) AS latest
FROM
visits
GROUP BY
record_id
) AS b
ON (a.record_id = b.record_id) AND (a.modtime = b.latest)
WHERE (((a.visit_type_id)=1))
GROUP BY a.studyrecord_id;
我想,如果沒有記錄修改COUNT
部分顯示爲零,因爲我認爲COUNT
將評估爲Null
。
我曾嘗試以下,但仍然沒有結果:
IIF(ISNULL(COUNT(a.record_id)),0,COUNT(a.record_id)) AS newrecruits
這是一個問題,因爲聯接是record_id
?我試着將INNER
更改爲LEFT
,但也沒有收到任何結果。
Q 如果沒有符合條件的記錄,我如何獲得上述評估爲零?
編輯:
給一點細節推理。
研究表包含一個名爲'original_recruits'的字段,它基於使用數據庫之前的活動。
訪問表跟蹤new_recruits(每項研究的記錄數)。
我把這些在另一個查詢(original_recruits + new_recruits) - 如果沒有新的新兵,我仍然需要顯示original_recruits,所以如果沒有記錄我需要它評價爲零而不是null,所以最終總和仍然有效。
您的查詢似乎沒有逗號。請發佈可以編譯的查詢。 – IndoKnight 2013-04-05 09:02:04
當你的結果不依賴它時,你爲什麼要加入到子查詢中?另外,你有一個單獨的表,裏面有studyrecord詳細信息? – 2013-04-05 09:02:18
添加了逗號。該表包含跟蹤更改的同一記錄的多個實例 - 子查詢選擇最新的編輯日期/時間,因此是最新的記錄版本。是將研究記錄詳細信息保存在單獨的表中。 – 2013-04-05 09:03:26