我期待返回包含了一組表中每個聯繫人的以下信息:返回一審跨多個表的值(並返回相關的列)
Contact_id | first_Event_date | first_Event_id | event_type
id123456 | 01/12/2007 | eveid123456 | table1
id456455 | 05/06/1999 | eveid456585 | table4
當數據反映的第一個事件每個聯繫人都曾參與(可以包含在最多8個表中的任何一箇中),而event_type告訴你來自哪個表的事件。
我有以下查詢腳本作爲起點,它試圖拉只contact_id和event_date時工作正常,但當我嘗試還包括event_id時,它似乎任意從一個不正確的地方拉一個ID :
SELECT
table1.contact_id AS contact_id
MIN(table1.date_received) AS event_date
table1.event_id AS event_id
FROM table1
GROUP BY table1.contact_id
UNION
SELECT
table2.contact_id
MIN(table2.date_received)
table2.event_id
FROM table2
GROUP BY table2.contact_id
這對錶3-6重複。我知道我還需要在GROUP BY子句中包含table1.event_id等,但是當我這樣做時,它將爲每個聯繫人(對於每個表)返回每個事件的所有提及,因此一個聯繫人有多個行返回給table1子查詢最多應該返回1行。
此外,在情況下幫助並不是所有的聯繫人會出現在所有的表(但會出現在所有的表至少一次),我使用SQL Server提前2005年
感謝: )