SQL Server中有两行合二为一

时间:2012-10-25 06:52:22

标签: sql-server sql-server-2005

您好,感谢您的关注

我需要将来自两个不同行的数据转换为一行。

我们想象

ORDERS表:

ID    Name    adress   
-------------------- 
01    AA      adr1
02    BB      adr2
03    CC      adr3

LINEORDERS表:

ID    IDorder    IDprofileType     ProfileType      idPers   
------------------------------------------------------------- 
01    01         01                Organizer        0045
01    01         02                Present          0085
01    01         02                Present          0032
01    01         03                Manager          0018

让我们想象我们想要结果>

期望的结果:

IDorder   NameOrder     OrganizerID           PresentID           ManagerID       Diff
------------------------------------------------------------- 
01        AA            0045                  0085                0018            yes
01        AA            0045                  0032                0018            yes

Diff如果managerIDorganizerID不同,则为是。

我怎样才能得到这样的结果?

我是否需要创建T-SQL临时表?什么是打火机?

表格中有很多行。

感谢您的帮助

2 个答案:

答案 0 :(得分:0)

你可以通过子查询实现这一点,但我真的认为你必须在这里做一些再造。因为会有很多子查询。

答案 1 :(得分:0)

如果您使用的是MS SQL Server,则应尝试使用PIVOT。以下是一些示例:SQL Server: Examples of PIVOTing String data