2017-10-02 14 views
1

다음 코드는 New_Channel로 그룹화하려는 코드입니다. 11 행 (a-j 및 알 수 없음) 및 개수가 필요합니다.SQL - 대소 문자 구별로 그룹화

select count(transaction_number) [transactions] 
,case when Sales_Location = 4235             then 'a. Online Sale - Fast Track - Store Pick Up' 
        when SALES_LOCATION = 678 and FULFILLMENT_METHOD = 5        then 'b. Online Sale - Fast Track - Home Delivery' 
      when SALES_LOCATION in ('678','5')            then 'c. Online Sale - Home Delivery' 
      when FULFILLMENT_METHOD = 10 and CATEGORY = 2          then 'd. Online Order - Check & Reserve - Store Pick Up' 
      when Till_Number In (1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20) 
         and FULFILLMENT_METHOD = 10            then 'e. Store Sale - Till Payment - Store Pick Up' 
      when TILL_NUMBER In (30,31,32,33,34,35,36,37,38,39) and FULFILLMENT_METHOD = 10 then 'f. Store Sale - Kiosk Payment - Store Pick Up ' 
      when SALES_LOCATION = 500 AND TILL_NUMBER BETWEEN 60 AND 69      then 'g. Phone Sale - Home Delivery' 
      when SALES_LOCATION IN (5,678) AND TILL_NUMBER BETWEEN 40 AND 49     then 'g. Phone Sale - Home Delivery' 
      when SALES_LOCATION = 500 AND TILL_NUMBER = 90         then 'g. Phone Sale - Home Delivery' 
      when SALES_LOCATION = 500               then 'c. Online Sale - Home Delivery' 
      when FULFILLMENT_METHOD = 10              then 'h. Store Sale - Store Pick Up' 
      when FULFILLMENT_METHOD = 05              then 'i. Store Sale - Fast Track Home Delivery' 
      when FULFILLMENT_METHOD in ('02','07','06')          then 'j. Store Sale - Home Delivery' 
      else 'Unknown' end as New_Channel 
from HRG_PROD.PRD.SKU_SALES_HISTORY_2017 
group by Sales_Location, Fulfillment_Method, Category, Till_Number 
+1

일부 샘플 테이블 데이터와 예상 된 결과 추가 - 서식있는 텍스트 (.하지 이미지) 등을 그리고 당신이 사용하고있는 DBMS에 태그를. – jarlh

+0

파생 테이블 (또는 cte)에서 case _expression_을 포함하는 select를 수행하고 결과에 따라 그룹화합니다. – jarlh

답변

0

나는 그것을 해결했다. 파생 된 테이블을 사용했습니다. 감사합니다 jarlh

SELECT nc.New_Channel 
,sum(transactions) as [Retail Sales] 
from (select 
count(Transaction_Number) as [transactions] 
,case when Sales_Location = 4235             then 'a. Online Sale - Fast Track - Store Pick Up' 
        when SALES_LOCATION = 678 and FULFILLMENT_METHOD = 5        then 'b. Online Sale - Fast Track - Home Delivery' 
      when SALES_LOCATION in ('678','5')            then 'c. Online Sale - Home Delivery' 
      when FULFILLMENT_METHOD = 10 and CATEGORY = 2          then 'd. Online Order - Check & Reserve - Store Pick Up' 
      when Till_Number In (1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20) 
         and FULFILLMENT_METHOD = 10            then 'e. Store Sale - Till Payment - Store Pick Up' 
      when TILL_NUMBER In (30,31,32,33,34,35,36,37,38,39) and FULFILLMENT_METHOD = 10 then 'f. Store Sale - Kiosk Payment - Store Pick Up ' 
      when SALES_LOCATION = 500 AND TILL_NUMBER BETWEEN 60 AND 69      then 'g. Phone Sale - Home Delivery' 
      when SALES_LOCATION IN (5,678) AND TILL_NUMBER BETWEEN 40 AND 49     then 'g. Phone Sale - Home Delivery' 
      when SALES_LOCATION = 500 AND TILL_NUMBER = 90         then 'g. Phone Sale - Home Delivery' 
      when SALES_LOCATION = 500               then 'c. Online Sale - Home Delivery' 
      when FULFILLMENT_METHOD = 10              then 'h. Store Sale - Store Pick Up' 
      when FULFILLMENT_METHOD = 05              then 'i. Store Sale - Fast Track Home Delivery' 
      when FULFILLMENT_METHOD in ('02','07','06')          then 'j. Store Sale - Home Delivery' 
      else 'Unknown' end as New_Channel 
from HRG_PROD.PRD.SKU_SALES_HISTORY_2014 
group by Sales_Location, Fulfillment_Method, Category, Till_Number) as nc 
group by nc.New_Channel