2013-06-19 2 views
0

위해 나는 SQL 서버 2008 R2를 사용하고 같은 테이블이있어 : 나는 요약 얻을 필요가거래 SQL - 쿼리 요약한다

table origin

과 같은 :

table result

내가 큐브/롤업 및 기능을 그룹화를 사용하여 노력하고있어,하지만 그것을 해결하는 방법에 붙어 있어요. 그래서 누군가가 제발이 질문에 도움을 줄 수 있는지 묻고 싶습니다.

미리 감사드립니다.

+2

이 정말보고 층에서 수행되어야한다가, 데이터베이스에 없습니다 (특별히 색과 굵은 글씨가 다른 경우) – Lamak

+0

죄송합니다. 색상 및 서식을 조심하십시오. 나는 순서대로 데이터 만 필요로한다. – jMarcel

+2

색상 및 텍스트 형식을 무시하더라도 원하는 데이터를 살펴보십시오. 첫 번째 'ID로 제품 합계'행이 제품과 제품에 어떤 의미인지 어떻게 알 수 있습니까? 예에서 다른 모든 열은 비어 있으므로 구별 할 방법이 없습니다. – Lamak

답변

0

앞서 말했듯이, 나는 이었습니다. 해결 방법은 고집했습니다.입니다. 하지만 예를 들어, 생각하고 해결하기 위해 나에게 많은 도움이 멋진 링크를 가지고 : http://blogs.msdn.com/b/craigfr/archive/2007/09/21/aggregation-with-rollup.aspx

이 내가 해결 방법입니다 :

select 
    0 order_customer, 
    customer_ID, 
    0 order_product, 
    product_ID, 
    0 tipo_linha, 
    subProduct_description, 
    subProduct_balance 

from products 
    union all  
select 
    GROUPING(customer_ID) order_customer, 
    customer_ID, 
    GROUPING(product_ID) order_product, 
    product_ID, 
    1 tipo_linha, 
    CASE 
     WHEN (GROUPING(customer_ID) = 1) THEN 'Grand Total'    
     WHEN (GROUPING(product_ID) = 1) THEN 'Total of products by customer ' 
+ cast(customer_ID as varchar) 
     ELSE 'Total by product ' + cast(product_ID as varchar) 
    END msg,  
    sum(subProduct_balance) balance  
from products 
group by rollup(customer_ID, product_ID) 
order by order_customer, customer_ID, order_product, product_ID, tipo_linha