我已经在我的主数据库中创建了一个名为tblGlobalIDMapping的表,它将为所有条目分配一个GUID,并存储应用程序中的其他3个主ID,以提供单个ID存储库。
新表的结构如下-->
AppGlobalID uniqueidentifier NoNulls
PersonID int NoNulls
DRIMaster int Nulls
DRIClient int Nulls我需要的信息在另一个DB (同一服务器)中的一个表中,该表具有以下部分结构-->
PersonID int NoNulls
ApplicationID tinyint NoNulls
PersonApplicationID varchar(14) NoNulls对于每个应用,在第二表1中表示一个人(ID# 13579)。ApplicationID列存储一个数字,1表示DRIMaster,6表示DRIClient,它告诉您PersonApplicationID中的ID#是做什么用的。
我需要从该表批量复制/插入到我的新表中,但我只想要1行记录新表中的3个主ID。
这就是我到目前为止所拥有的,但它为每个PersonID返回一行。
SELECT PersonID,
CASE
WHEN ApplicationID = 1
THEN PersonApplicationID
END AS 'DRIMaster',
CASE
WHEN ApplicationID = 6
THEN PersonApplicationID
END AS 'DRIClient'
FROM tblApplicationAssociation
WHERE ApplicationID IN (1,6)这将返回以下内容-->
PersonID DRIMaster DRIClient
_______________________________
108574 71163 NULL
108574 NULL 71163发布于 2009-07-29 15:44:14
聚合会忽略空值,所以....
SELECT PersonID,
Min(CASE
WHEN ApplicationID = 1
THEN PersonApplicationID
END) AS 'DRIMaster',
Min(CASE
WHEN ApplicationID = 6
THEN PersonApplicationID
END) AS 'DRIClient'
FROM tblApplicationAssociation
WHERE ApplicationID IN (1,6)
Group By PersonIdhttps://stackoverflow.com/questions/1201128
复制相似问题