2012-06-01 125 views
1

我創建了一個數據庫,它看起來像:質疑MS ACCESS

表:

PATIENT ID  CONDITION  DOCTOR  DATE ADMITTED 
PATIENT 1  CONDITION 1 DOCTOR 1 5/23/2011 
PATIENT 2  CONDITION 1 DOCTOR 2 8/22/2011 
PATIENT 3  CONDITION 2 DOCTOR 1 12/12/2010 

TABLE2:

PATIENT ID  CONDITION  DOCTOR  DATE CHANGED 
PATIENT 1  CONDITION 4 DOCTOR 3 5/24/2011 
PATIENT 1  CONDITION 3 DOCTOR 3 6/22/2011 
PATIENT 2  CONDITION 1 DOCTOR 1 10/22/2011 

我想要得到的條件和醫生具體日期看起來如下:(具有條件x的患者的數量在特定日期)

DATE   5/1/2012 5/2/2012 5/3/2012 
==================================================== 
CONDITION 1  5   2   1 
CONDITION 2  2   1   2 

AND在特定日期(例如, (3名患者具有條件1,但1名患者在5月1日獲得條件1,因此它將產生1而不是3)

我正在通過這種方式訪問​​ms-access。

+0

聯合這兩個表以獲取每個患者的當前條件,然後將其轉到獲取特定日期的條件數量。所以我現在的問題是查詢#2。我需要獲得在給定日期獲得條件x的患者數量。我需要得到在日期z從條件y改變的條件x的數量。目前我的數據庫看起來像上面的2個表。我正在考慮另外增加一個字段「Previous Condition」。 –

+0

如果你可以找到一種方法來做到這一點,而不需要添加另一個字段,那就太棒了! –

+2

根據您提供的樣本數據發佈預期的輸出可能會更有用。 – GarethD

回答

0

在聯合查詢上創建交叉表。

SELECT Condition, Doctor, [Date Admitted] 
FROM [Table] 

UNION 

SELECT Condition, Doctor, [Date Changed] 
FROM Table2 

這將創建一個3列的表格,而不考慮是否有任何平等。如果要限制任何條件,則必須將WHERE語句放在每個聯合查詢中或交叉表查詢本身中