2014-03-03 187 views
0

我想2NF一些數據子集:SQL Server 2012中查詢,提取數據

Refid | Reason 
------|--------- 
1  | Admission 
1  | Advice and Support 
1  | Behaviour 

正如你可以看到一個人可能有多種原因,所以我需要另一個表有以下格式:

Refid | Reason1 | Reason2   | Reason3  | ETC... 
------|-----------|--------------------|----------- 
1  | Admission | Advice and Support | Behaviour 

但我不知道如何編寫查詢來提取數據,並將其寫入像這樣的新表。原因沒有其他標準的日期,會使任何理由在任何特殊的順序。所有原因都是在轉診時分配的。

感謝侑幫助.. SQL Server 2012的

回答

1

你模擬一個多對多的關係

你需要3個表

- One for Reasons (say ReasonID and Reason) 
- One for each entity identified by RefID (say RefID and ReferenceOtherData) 
- An junction (or intersection) table with the keys (RefID, ReasonID) 

這樣,

  • 多理由可以適用於一個Ref實體
  • 多個參考可能具有相同的原因

將重複的列轉爲行。