여러 열에서 피벗을 사용하려고합니다. 현재, 단 하나의 컬럼으로이 작업을 수행 할 수 있습니다. 나의 현재 메소드가 리턴 : 여기SQL 서버 다중 열 피벗 - 다른 차원
Membership Item1
DO1 400
Neither 21
Plan A 69
Plan B 53
그러나 나는 달성하기 위해 노력하고 무엇 :
여기Membership Item1 Item2 Item3 Item3 Item4 Item5
DO1 30 300 25 14 10 144
Neither 35 250 30 30 5 125
Plan A 50 100 25 25 5 254
Plan B 100 25 15 25 4 123
내 코드
WITH CTE_SQL
AS
(
SELECT CaseId
,Item1 AS Number1
,[Membership] -- ,Item2 AS Number2,Item3 AS Number3,Item4 AS Number4,Item5 AS Number5
FROM TABLE1
WHERE [Membership] IS NOT NULL
)
SELECT [Membership]
,Item1 --,Item2--,Item3 AS 'Item3',Item4 AS 'Item4',Item5 AS 'Item5'
FROM
(
SELECT CaseId
,Number1
,[Membership] --,[Item2],[Item3],[Item4],[Item5]
FROM CTE_SQL
) AS p
PIVOT
(
COUNT(CaseId)
FOR Number1 IN (Item1)
) AS pvt
ORDER BY [Membership]
어떤 통찰력입니까? 여기에 업데이트 것은
ColumnName DataType Allow Nulls
.......... ........ ...........
CaseId nvarchar(50) No
Membership nvarchar(50) Yes
Item1 nvarchar(50) Yes
Item2 nvarchar(50) Yes
Item3 nvarchar(50) Yes
Item4 nvarchar(50) Yes
Item5 nvarchar(50) Yes
그래서 여기에 테이블 스키마에게 내 마지막 업데이트입니다. 지금까지이
CREATE TABLE TABLE1
(CASENumber NVARCHAR(50),Membership NVARCHAR(50),Item1 NVARCHAR(50),Item2 NVARCHAR(50),Item3 NVARCHAR(50),Item4 NVARCHAR(50),Item5 NVARCHAR(50))
INSERT INTO TABLE1
SELECT 'Case001', 'D01','Gold','Silver','Diamond','Steel','Wood'
UNION ALL
SELECT 'Case002', 'D01','Gold','Silver','Diamond','Steel','Wood'
UNION ALL
SELECT 'Case003', 'Neither','Gold','Silver','Diamond','Steel','Wood'
UNION ALL
SELECT 'Case004', 'Neither','Gold','Silver','Diamond','Steel','Wood'
UNION ALL
SELECT 'Case005', 'Neither','Gold','Silver','Diamond','Steel','Wood'
UNION ALL
SELECT 'Case001', 'PlanA','Gold','Silver','Diamond','Steel','Wood'
UNION ALL
SELECT 'Case002', 'PlanA','Gold','Silver','Diamond','Steel','Wood'
UNION ALL
SELECT 'Case003', 'PlanB','Gold','Silver','Diamond','Steel','Wood'
UNION ALL
SELECT 'Case004', 'PlanB','Gold','Silver','Diamond','Steel','Wood'
UNION ALL
SELECT 'Case005', 'PlanB','Gold','Silver','Diamond','Steel','Wood'
UNION ALL
SELECT 'Case001', 'D01','Gold','Silver','Diamond','Steel','Wood'
UNION ALL
SELECT 'Case002', 'D01','Gold','Silver','Diamond','Steel','Wood'
UNION ALL
SELECT 'Case003', 'Neither','Gold','Silver','Diamond','Steel','Wood'
UNION ALL
SELECT 'Case004', 'Neither','Gold','Silver','Diamond','Steel','Wood'
UNION ALL
SELECT 'Case005', 'Neither','Gold','Silver','Diamond','Steel','Wood'
UNION ALL
SELECT 'Case001', 'PlanA','Gold','Silver','Diamond','Steel','Wood'
UNION ALL
SELECT 'Case002', 'PlanA','Gold','Silver','Diamond','Steel','Wood'
UNION ALL
SELECT 'Case003', 'PlanB','Gold','Silver','Diamond','Steel','Wood'
UNION ALL
SELECT 'Case004', 'PlanB','Gold','Silver','Diamond','Steel','Wood'
UNION ALL
SELECT 'Case005', 'PlanB','Gold','Silver','Diamond','Steel','Wood'
UNION ALL
SELECT 'Case003', 'PlanB','Gold','Silver','Diamond','Steel','Wood'
UNION ALL
SELECT 'Case004', 'PlanB','Gold','Silver','Diamond','Steel','Wood'
UNION ALL
SELECT 'Case005', 'PlanB','Gold','Silver','Diamond','Steel','Wood'
UNION ALL
SELECT 'Case005', 'PlanB','Gold','Silver','Diamond','Steel','Wood'
UNION ALL
SELECT 'Case001', 'D01','Gold','Silver','Diamond','Steel','Wood'
UNION ALL
SELECT 'Case002', 'D01','Gold','Silver','Diamond','Steel','Wood'
UNION ALL
SELECT 'Case003', 'Neither','Gold','Silver','Diamond','Steel','Wood'
UNION ALL
SELECT 'Case004', 'Neither','Gold','Silver','Diamond','Steel','Wood'
UNION ALL
SELECT 'Case005', 'PlanB','Gold','Silver','Diamond','Steel','Wood'
UNION ALL
SELECT 'Case005', 'PlanB','Gold','Silver','Diamond','Steel','Wood'
UNION ALL
SELECT 'Case001', 'PlanB','Gold','Silver','Diamond','Steel','Wood'
UNION ALL
SELECT 'Case002', 'D01','Gold','Silver','Diamond','Steel','Wood'
UNION ALL
SELECT 'Case003', 'Neither','Gold','Silver','Diamond','Steel','Wood'
그리고 여기 내 코드와 출력 붙어 있었다 :
WITH CTE_SQL
AS
(
SELECT CASENumber,Item1 AS Number1,[Membership]--,Item2 AS Number2,
Item3 AS Number3,Item4 Number4,Item5 AS Number5
FROM dbo.TABLE1
WHERE [Membership] IS NOT NULL
)
SELECT Membership,Gold as 'Item1' --,Item2--,Item3 AS 'Item3',
Item4 AS 'Item4',Item5 AS 'Item5'
FROM
(
SELECT CaseNumber,Number1,Membership--,[Item2],[Item3],[Item4],[Item5]
FROM CTE_SQL
) AS p
PIVOT
(
COUNT(CASENumber)
FOR Number1 in(Gold)
) as pvt
전류 출력
Membership Item1
......... .....
D01 7
Neither 9
PlanA 4
PlanB 13
의도 된 출력이 내 소스 데이터입니다
Membership Item1 Item2 Item3 Item4 Item5
.......... ..... ..... ..... ..... .....
D01 7 7 7 7 7
Neither 9 9 9 9 9
PlanA 4 4 4 4 4
PlanB 13 13 13 13 13
항목 1 열의 모든 요소는 금입니다. 항목 2-5에 대해서도 Silver
, Diamond
, Steel
및 Wood
으로 각각 적용됩니다.
당신은 샘플 데이터를 제공 할 수 있습니까? –
샘플 데이터는 코드 – user3424320
앞에 나와 있습니다. 예상 한 결과라고 생각 했습니까? –