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)
고수님!! 도와 주세요
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