我有一個醫療數據庫中的表法:MAX後COUNT時出錯?
IDAct Historic IDPatient
1 2001-01-01 1
1 2001-01-02 1
2 2001-01-01 2
3 2001-01-03 1
我想計算列IDActPerPatient:
IDAct Historic IDPatient IDActPerPatient
1 2001-01-02 1 1
2 2001-01-01 2 1
3 2001-01-03 1 2
該法表包含行爲與歷史行爲的每次修改的。 (索引是一對(IDAct,歷史))。 所以我很感興趣,最後的修改行爲:現在
SELECT A.IDActe, MAX(Historic) AS Historic FROM Act A GROUP BY IDAct
,我想每個患者人數的行爲。因此,我計算了一名患者IDAct較少或相等的行爲數量。 我已創建了以前的請求視圖LastAct,我試試這個:
SELECT DA1.*, COUNT(*) AS IDActPerPatient
FROM LastAct DA1
INNER JOIN LastAct DA2 ON DA1.IDPatient = DA2.IDPatient
AND DA2.IDActe >= DA1.IDAct
GROUP BY DA1.IDAct
......這不行! 當一個行爲在歷史中有多個版本(對於在3個版本中有1個行爲的患者,我有81個)時,我在IDActPerPatient中獲得大量數字。
您是否知道問題的來源?