SQL: تعبئة صف واحد (TBL 1) من صفوف متعددة (TBL 2)؛ عبر DB
سؤال
ولقد خلق جدول واحد في بلدي DB الأساسي دعا tblGlobalIDMapping
من شأنها أن تعيين GUID لجميع القيود وتخزين أخرى 3 معرف الأولية في جميع أنحاء التطبيق لتوفير مستودع ID واحد.
والجدول الجديد هو في البنية التالية ->
AppGlobalID uniqueidentifier NoNulls
PersonID int NoNulls
DRIMaster int Nulls
DRIClient int Nulls
والمعلومات أحتاج هي في جدول في DB مختلفة (نفس الخادم) مع هيكل جزئي التالية ->
PersonID int NoNulls
ApplicationID tinyint NoNulls
PersonApplicationID varchar(14) NoNulls
ويتم تمثيل شخص (ID # 13579) في الجدول الثاني 1 لكل تطبيق. العمود ApplicationID بتخزين رقم (1)، لDRIMaster و 6 DRIClient، أن يقول لك ما # ID في PersonApplicationID ل.
ولست بحاجة للقيام نسخة السائبة / إدراج من هذا الجدول إلى بلدي الجدول الجديد ولكن أريد فقط 1 الصف تسجيل 3 معرف الرئيسية في الجدول الجديد.
وهذا ما لدي حتى الآن ولكن هذا يعود على التوالي لكل 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
المحلول
والمجاميع تتجاهل بلا قيم، لذلك ....
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 PersonId
لا تنتمي إلى StackOverflow