| 날짜 | 구분 | 가격 |
| 20141212 | 음료 | 5000 |
| 20141212 | 과자 | 3000 |
| 20141215 | 과자 | 9000 |
이런식으로 있는 데이터테이블 구조를
날짜 음료 과자
20141212 5000 3000
20141215 9000
이런식으로 보여주고 싶습니다.
도와주세요;;;
Comment 3
-
메칸더
2014.01.24 10:43
PIVOT을 이용하시면 좋을거 같습니다..DECLARE @TestTable TABLE([Date] NVARCHAR(8), [Item] NVARCHAR(50), Price INT)INSERT INTO @TestTable([Date], [Item], Price)SELECT '20141212', '음료', 5000 UNION ALLSELECT '20141212', '과자', 3000 UNION ALLSELECT '20141215', '과자', 9000SELECT * FROM @TestTableSELECT [Date], ISNULL([음료],0) '음료', ISNULL([과자],0) AS '과자' FROM @TestTablePIVOT (SUM(Price) FOR [Item] IN ([음료],[과자])) AS pvt -
아싸라비아콜롬비아
2014.01.24 13:45
아 이런방법이 있엇군요
해결은 하긴했지만 약간 에매하게 했다는....
그룹바이해서... 몇번의 셀렉트를 했는데... 피봇이라는걸 이용하면 간단하군요....
감사합니다.
-
이스트럭(강동운)
2014.01.24 16:57
안녕하세요~!
GROUP BY와 CASE 문으로도 해결가능합니다~~ 쿼리는 메칸더님쿼리 가져다 사용했네요 ^^
DECLARE @TestTable TABLE
(
[Date] NVARCHAR(8)
, [Item] NVARCHAR(50)
, Price INT
)
INSERT INTO @TestTable
([Date], [Item], Price)
SELECT '20141212', '음료', 5000 UNION ALL
SELECT '20141212', '과자', 3000 UNION ALL
SELECT '20141215', '과자', 9000
select
[Date]
, sum(case Item when '음료' then Price else 0 end)
, sum(case Item when '과자' then Price else 0 end)
from @TestTable
group by [Date]