2014-08-29 2 views
1

전자 상거래 웹 사이트에서 작업하고 있습니다. "제품 일련에 의해 그룹 '하지 않고 열로 here is my stock table행을 의류 제품의 행으로 표시합니다.

조각을 의류 크기를 유지하려고 조항이

같은 결과"제품 ID에 의해 그룹 "과

select d.id, 
(case when s.sizeid = 1 then 1 else 0 end) as "S" , 
(case when s.sizeid = 2 then 1 else 0 end) as "M", 
(case when s.sizeid = 3 then 1 else 0 end) as "L" , 
(case when s.sizeid = 4 then 1 else 0 end) as "XL", 
(case when s.sizeid = 5 then 1 else 0 end) as "XXL" 
from datatest d 
inner join stock s on d.id = s.productid 

result

select d.id, (case when s.sizeid = 1 then 1 else 0 end) as "S" , (case when s.sizeid = 2 then 1 else 0 end) as "M", (case when s.sizeid = 3 then 1 else 0 end) as "L" , (case when s.sizeid = 4 then 1 else 0 end) as "XL", (case when s.sizeid = 5 then 1 else 0 end) as "XXL" from datatest d inner join stock s on d.id = s.productid group by d.id 

result

+0

를 사용하고 계십니까? 원하는 결과는 무엇입니까? –

답변

0

내가 당신이 원하는 것은 동일한 제품 ID를 공유 크기에 대한 모든 컬럼의 합계, 추측 저를 도와주세요.

당신을 위해 그렇게 할 것입니다 SUM() 기능 당신이 도움을 필요로하는 일 GROUP BY

select d.id, 
SUM((case when s.sizeid = 1 then 1 else 0 end)) as "S" , 
SUM((case when s.sizeid = 2 then 1 else 0 end)) as "M", 
SUM((case when s.sizeid = 3 then 1 else 0 end)) as "L" , 
SUM((case when s.sizeid = 4 then 1 else 0 end)) as "XL", 
SUM((case when s.sizeid = 5 then 1 else 0 end)) as "XXL" 
from datatest d 
inner join stock s on d.id = s.productid 
group by d.id