[ad_1]
私はテーブルを持っています:
ID |A |B |C
1 NULL DEF NULL
1 ABC NULL NULL
2 XYZ NULL NULL
3 IJKヌルヌル
3 NULL LMN NULL
3 NULL NULL PQR
私は結果を取得したい
ID |A |B |C
1 ABC DEF NULL
2 XYZ NULL NULL
3 IJK LMN PQR
私が試したこと:
CTEを試しましたが、まったく同じ結果が得られません
解決策 1
GROUP BY を使用するだけです。
select ID, MAX(A) AS A, MAX(B) AS B, MAX(C) AS C from #t GROUP BY ID
しかし! SerenityNowDev が指摘したように … Id = 1 の A に複数の値がある場合はどうなりますか … MAX
それでも必要な結果が得られますか、それとも別の集計関数を使用する必要がありますか? あなただけが決めることができます
解決策 2
E.EmpId AS ユーザーコードを選択し、
E.EmpCode AS ユーザー名、
E.FirstName AS EmployeeName、
m.EmpCode AS Managercode,
STUFF((select ‘,’ +M.FirstName
から [dbo].[TblEmployee] e
どこで e.EmpId = m.EmpId
for xml path(”)),1,1,”) as managername,r.rolename
から [dbo].[TblEmployee] e
内部結合 [dbo].[TblEmployee] M ON M.EmpId =E.ManagerId
内部結合 [User].[TblRoles] r ON e.EmpId = r.RoleId
[ad_2]
コメント