を試すことができます:ピボットのためのユニークなコラムCONCATその後
CREATE TABLE #tblUser
(
userid INT,
userName VARCHAR(100),
department VARCHAR(100)
)
CREATE TABLE #tblLanguage
(
uniqueid INT,
userid INT,
[language] VARCHAR(100)
)
CREATE TABLE #tblContryPassport
(
uniqueid INT,
userid INT,
contryPassport VARCHAR(100)
)
INSERT INTO #tblUser
VALUES
(1,'aa','TT'),
(2,'bb','gg'),
(3,'cc','rr'),
(4,'dd','dd')
INSERT INTO #tblLanguage
VALUES
(1,1,'American'),
(1,1,'Arabic'),
(1,2,'Azerbaujani'),
(1,3,'Bulgarian'),
(1,3,'Chaochow'),
(1,4,'Behdini')
INSERT INTO #tblContryPassport
VALUES
(1,1,'Hongkong'),
(1,1,'Malaysia'),
(1,2,'Spain'),
(1,3,'China'),
(1,4,'India'),
(1,4,'UK')
:
まずテストデータを。そして、私の場合、私は一時テーブルをドロップします
DECLARE @query NVARCHAR(4000)=
N';WITH CTE
AS
(
SELECT
#tblContryPassport.userid,
''yes'' AS Answer,
#tblContryPassport.contryPassport AS Name
FROM
#tblContryPassport
UNION ALL
SELECT
#tblLanguage.userid,
''yes'' AS Answer,
#tblLanguage.[language] AS Name
FROM
#tblLanguage
)
SELECT
userName,
department,
'[email protected]+'
FROM
(
SELECT
#tblUser.userid,
#tblUser.userName,
#tblUser.department,
CTE.Answer,
CTE.Name
FROM
#tblUser
JOIN CTE
ON #tblUser.userid=CTE.userid
) AS p
PIVOT
(
MAX(Answer)
FOR Name IN ('[email protected]+')
) AS pvt'
EXECUTE(@query)
:
DROP TABLE #tblUser
DROP TABLE #tblContryPassport
DROP TABLE #tblLanguage
おかげでこのようなダイナミックなピボットを行うその後
:2がある場合は、それらのいずれかを選択します。アリオン。素早く解決してくれてありがとう。 – Sukhjeevan
それは私が必要としていたものです。 – Sukhjeevan
ハッピーコーディング:P – Arion