2016-07-04 1 views
1

product 표는 다음과 같습니다처럼별도의 WHERE는

product_group_name | product_group_name | product_group_name |...more groups 
30(sum)    | 72(sum)   | 50(sum)   |...more values 

그룹 id_product 될 것입니다 (1,2 OR 3,4 OR 1,4,5)이며 그룹 이름은 별칭입니다.

| group_name | 
| 200  | 

이 가능 그룹 이름으로 더 많은 열을 추가 :이 쿼리의

SELECT 
    cast(SUM(product.product_count) as float) as group_name 
FROM  
    product 
WHERE 
    product.id_product in (608,913,528,529,920,406,407,408,912,919,918,917,924,926,925) 

및 결과입니다

여기에 SQL 코드는 하나의 열을 만드는 것입니다? 그것들이 행이 아니라 행인 것이 중요합니다.

+0

, 그래 당신이 열 후 ('') 혼수를 사용 can..just .. '나는 당신이 다음과 같은 일 1)해야 할 것이라고 생각 group_name2' –

+0

로 GROUP_NAME로 캐스트 (float로서 SUM (product.product_count)), 합계 (2 열)을 선택합니다. product_group 테이블을 사용하여 조인을 수행하십시오. 2). group_id를 사용하여 "그룹화"를 수행하고 sum() 작업을 수행하십시오. 3). 위 단계에서 결과를 얻으면 여기에 설명 된 방법 중 하나를 사용하여 결과를 조 변경 할 수 있습니다. http://stackoverflow.com/questions/13372276/simple-way-to-transpose-columns-and-rows-in -sql – ArunGeorge

답변

1

나는 PIVOT이 당신이 찾고있는 것 같아요. 이 question도 확인하십시오. 내가 제대로 이해하면

0

, 그것을 할 수있는 한 가지 방법은 조건 집합입니다 : 내가 rigth 유를 가지고있는 경우

SELECT 
    cast(SUM(
     CASE WHEN product.id_product in (608,913,528, ... ,924,926,925) 
     THEN product.product_count ELSE NULL END) as float) as group_name1 
    ,cast(SUM(
     CASE WHEN product.id_product in (1,2,3) 
     THEN product.product_count ELSE NULL END) as float) as group_name2 
    ,cast(SUM(
     CASE WHEN product.id_product in (4,5) 
     THEN product.product_count ELSE NULL END) as float) as group_name3 
FROM 
    product 
; 
관련 문제