我有一個涉及2個邏輯表的多對多表關係。涉及家庭關係的棘手的SQL查詢問題
是連接到一個關係表上primaryID是加入到關係表上ReciprocalID這樣做的目的是爲了顯示數據庫中的家庭關係記錄表的 二審
記錄表。每個主記錄表在關係表中有一行或多行,顯示此人在數據庫中具有的其他家庭關係。
我的任務是設法建立一個聯繫人列表,其中包括顯示每個參加這所學校的孩子的名字以及他們的父母和聯繫信息。
我已經到了能夠向每位父母下方展示孩子的地步,但現在我必須找到一種方法將這些孩子合併在一起。
因爲我無法控制這個數據庫(它的Education Edge 7)的設計,所以我製作了一個單獨的數據庫來存放我的報告的查詢和視圖。我正在從事這項工作的學校只能訪問CR 8.5。
現在我有我的頂級組在CR作爲recordstable的姓氏,我的第二組是在recordstable的全名。我有一個子報表,可以記錄所有的孩子記錄。
我在我的主視圖(上面描述的)中將'女兒'和'兒子'轉換爲子女,'母親'或'父親'轉換爲父母時使用了一種情況。
希望這沒有太多漫遊。如果您需要更多信息,請詢問。
SELECT dbo.vwEA7RelationshipsTableView.PRIMARYID,
dbo.vwEA7RecordsTableView.LASTNAME AS PRIMARYLASTNAME,
dbo.vwEA7RecordsTableView.FIRSTNAME AS PRIMARYFIRSTNAME,
dbo.vwEA7RecordsTableView.NAMEFORDISPLAY AS PRIMARYNAME,
CASE dbo.vwEA7RelationshipsTableView.PRIMARYDESC
WHEN 'Father' THEN 'Parent'
WHEN 'Mother' THEN 'Parent'
WHEN 'Son' THEN 'Child'
WHEN'Daughter' THEN 'Child'
ELSE dbo.vwEA7RelationshipsTableView.PRIMARYDESC
END AS PRIMARYDESC,
dbo.vwEA7RelationshipsTableView.RELATIONID,
vwEA7RecordsTableView_1.LASTNAME AS RELATIONLASTNAME,
vwEA7RecordsTableView_1.NAMEFORDISPLAY AS RELATIONNAME,
dbo.vwEA7RelationshipsTableView.RELATIONDESC
FROM dbo.vwEA7RelationshipsTableView INNER JOIN
dbo.vwEA7RecordsTableView ON
dbo.vwEA7RelationshipsTableView.PRIMARYID = dbo.vwEA7RecordsTableView.ID INNER JOIN
dbo.vwEA7RecordsTableView AS vwEA7RecordsTableView_1 ON
dbo.vwEA7RelationshipsTableView.RELATIONID = vwEA7RecordsTableView_1.ID
TableViews實際上只是從主數據庫中重新創建主表。
有什麼問題嗎? – dotjoe 2009-10-30 18:15:08
「我已經到了能夠向每位家長展示孩子的地步,但現在我必須找到一種方法將這些孩子融合在一起」 - 你能描述一下你的意思嗎? – MartW 2009-10-30 18:55:09
關係表中的每個記錄都有幾種可用的描述。每個記錄在Relationtable中都有一個或多個記錄,用於說明主ID與關係ID的關係。所以: 1 Jane Doe的母親23李四JR兒子 1 Jane Doe的母親24 Jane Doe的JR女兒 1李四老婆25李四丈夫 25李四丈夫1李四老婆 25李四父親23李四JR兒子 那就是原始數據。我把搞得爸爸媽媽=母體和子子=兒童 – ecathell 2009-10-30 19:18:03