2014-03-03 139 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实体
  • 多个参考可能具有相同的原因

将重复的列转为行。