2013-09-02 2 views
3

특정 제품에 대한 판매 수를 포함하는 보고서를 생성해야합니다. (의류)SQL Server 2012에서 특정 쿼리를 생성하는 방법

내가 4 개 테이블이 있습니다

  • Orders는 ID와 날짜
  • Product_Model을 포함는
  • Product_Type은 제품 모델 ID, 가격, 크기, 색상이 들어있는 모델 설명 및 성별을 포함
  • Product_Order
  • 는 "주문"의 참조 및 "제품 _"
의 참조를 포함

내가 필요한 것은 모든 달에 남성 블루 티셔츠의 수를 보여주는 보고서를 생성하는 것입니다. 이 순서에서

: 제품 모델/성별/색상 예를 들어

:

enter image description here

Also check my simple representation in SQLFiddle

이 지원을 많이

감사합니다! =)이 같은

+0

시도? 포스터가 문제를 풀려고 할 때 질문이 더 좋은 반응을 얻습니다. –

답변

3

시도 뭔가 :

SELECT MODEL, 
     GENDER, 
     COLOR, 
     SUM(CASE 
      WHEN MONTH(ORDER_DATE) = 1 THEN 1 
      ELSE 0 
      END) Jan, 
     SUM(CASE 
      WHEN MONTH(ORDER_DATE) = 2 THEN 1 
      ELSE 0 
      END) Feb, 
     SUM(CASE 
      WHEN MONTH(ORDER_DATE) = 3 THEN 1 
      ELSE 0 
      END) Mar, 
     SUM(CASE 
      WHEN MONTH(ORDER_DATE) = 4 THEN 1 
      ELSE 0 
      END) Apr 
FROM PRODUCT_MODELS t1 
     INNER JOIN PRODUCT_TYPES t2 
       ON t1.PRODUCT_MODEL_ID = t2.PRODUCT_MODEL_ID 
     INNER JOIN PRODUCT_ORDERS T3 
       ON t2.PRODUCT_TYPE_ID = t3.PRODUCT_TYPE_ID 
     INNER JOIN ORDERS T4 
       ON T3.ORDER_ID = T4.ORDER_ID 
GROUP BY MODEL, 
      GENDER, 
      COLOR 

나는 my own example을 요리하기 위해 SQL 바이올린을 사용했다.

+1

나는 다른 어떤 대답도 너의 것보다 나를 도울 수 없다고 정말로 믿는다! 대단히 감사합니다 !! = D –

0

타 솔루션은 귀하의 요구 사항 여기에

에 대한 SQL Pivot Table query를 사용하여 나는 당신의 테이블 여기

with OrderReport as (
select 
-- o.Order_ID, 
-- date, 
    DATENAME(Month,date) months, 
    Order_Quantity, 
-- Price, 
-- Size, 
-- Color, 
-- model_description, 
-- gender, 
    product = model_description + '/' + gender + '/' + Color 
from Orders o 
inner join Product_Order po on po.Order_ID = o.Order_ID 
inner join Product_Type t on t.Product_Type_ID = po.Product_Type_ID 
inner join Product_Model m on m.Product_Model_ID = t.Product_Model_ID 
) SELECT * FROM OrderReport 
PIVOT (
    SUM(Order_Quantity) 
    FOR months IN (
     [January],[February],[March],[April], 
     [May],[June],[July],[August], 
     [September],[October],[November],[December] 
    ) 
) PivotTable 

그리고 DDL 및 피벗 쿼리

테스트를위한 몇 가지 샘플 데이터입니다 구축 피벗 쿼리를한다 BU 수 있습니다 난이 도움이되기를 바랍니다

create table Product_Model (Product_Model_ID int, model_description nvarchar(50),  gender nvarchar(20)) 
create table Product_Type (Product_Type_ID int, Product_Model_ID int, price int, size nvarchar(20), color nvarchar(20)) 
create table Orders (Order_ID int, date datetime) 
create table Product_Order (Order_ID int, Product_Type_ID int, Order_Quantity int) 

insert into Product_Model select 1, 'Basic T-Shirt','Male' 
insert into Product_Model select 2, 'Basic T-Shirt','Female' 
insert into Product_Model select 3, 'Polo','Male' 
insert into Product_Model select 4, 'Polo','Female' 
insert into Product_Model select 5, 'Jacket','Male' 
insert into Product_Model select 6, 'Jacket','Female' 
insert into Product_Model select 7, 'Long T-Shirt','Female' 

insert into Product_Type select 1,1,1,'1','Red' 
insert into Product_Type select 2,1,1,'1','Blue' 
insert into Product_Type select 3,2,1,'1','Cyano' 
insert into Product_Type select 4,2,1,'1','Pink' 
insert into Product_Type select 5,3,2,'1','Grey' 
insert into Product_Type select 6,3,2,'1','Black' 
insert into Product_Type select 7,4,2,'1','Blue' 
insert into Product_Type select 8,4,2,'1','Red' 

insert into Orders select 1,'20130131' 
insert into Orders select 2,'20130110' 
insert into Orders select 3,'20130216' 
insert into Orders select 4,'20130220' 
insert into Orders select 5,'20130311' 
insert into Orders select 6,'20130311' 

insert into Product_Order select 1,1,3 
insert into Product_Order select 2,1,5 
insert into Product_Order select 3,2,7 
insert into Product_Order select 4,1,4 
insert into Product_Order select 5,1,1 
insert into Product_Order select 6,3,8 
, 당신은 무엇을

관련 문제