union, 옆으로 늘려서 쿼리 0 3 706

by 유지니 [2021.12.17 23:37:46]


Seoul, Busan, Inchon 3개의 지점에서

A, B, C, D 제품을 팔고 있습니다.

3개 지점의 판매 기록을 받아서 union 을 했더니 다음과 같은 결과가 나오고(1)

하려고 하는 것은 (2) 번 입니다

(1)

Item SaleAmt
A 90
A 100
A 140
B 100
B 120
C 80
D 30
D 50

 

(2)

  Seoul Busan Inchon
A 100 90 140
B 120 0 100
C 80 0 0
D 0 50 30

 

다음은 사전 작업입니다 (mssql)

 

CREATE TABLE [dbo].[Seoul](
    [Item] [nvarchar](50) NOT NULL,
    [SaleAmt] [real] NOT NULL
) ON [PRIMARY]


CREATE TABLE [dbo].[Busan](
    [Item] [nvarchar](50) NOT NULL,
    [SaleAmt] [real] NOT NULL
) ON [PRIMARY]

CREATE TABLE [dbo].[Inchon](
    [Item] [nvarchar](50) NOT NULL,
    [SaleAmt] [real] NOT NULL
) ON [PRIMARY]

--INSERT INTO [Seoul] ([Item],[SaleAmt]) VALUES ('A', 100)
--INSERT INTO [Seoul] ([Item],[SaleAmt]) VALUES ('B', 120)
--INSERT INTO [Seoul] ([Item],[SaleAmt]) VALUES ('C', 80)
--INSERT INTO [Busan] ([Item],[SaleAmt]) VALUES ('A', 90)
--INSERT INTO [Busan] ([Item],[SaleAmt]) VALUES ('D', 50)
--INSERT INTO [Inchon] ([Item],[SaleAmt]) VALUES ('A', 140)
--INSERT INTO [Inchon] ([Item],[SaleAmt]) VALUES ('B', 100)
--INSERT INTO [Inchon] ([Item],[SaleAmt]) VALUES ('D', 30)
 

고수님!! 도와 주세요

 

 

by 뉴비디비 [2021.12.18 01:06:55]
SELECT 
	 Item
	, SUM( IIF(area = 'Seoul', SaleAmt, 0 ) ) Seoul
	, SUM( IIF(area = 'Busan', SaleAmt, 0 ) ) Busan
	, SUM( IIF(area = 'Inchon', SaleAmt, 0 ) ) Inchon
FROM (
	SELECT Item, SaleAmt, 'Seoul' area FROM Seoul
	UNION ALL 
	SELECT Item, SaleAmt, 'Busan'  area FROM Busan
	UNION ALL 
	SELECT Item, SaleAmt, 'Inchon'  area FROM Inchon
) AA 
GROUP BY Item
ORDER BY Item

 


by 유지니 [2021.12.18 05:13:22]

뉴비디비 님 !

감사합니다 ^^

 


by 마농 [2021.12.20 09:32:27]
SELECT *
  FROM (SELECT 'Seoul'  Area, Item, SaleAmt FROM Seoul
         UNION ALL
        SELECT 'Busan'  Area, Item, SaleAmt FROM Busan
         UNION ALL
        SELECT 'Inchon' Area, Item, SaleAmt FROM Inchon
        ) a
 PIVOT (SUM(SaleAmt) FOR Area IN ([Seoul], [Busan], [Inchon])) a
;

 

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입