2016-04-02 11 views
0

私は、特定のセグメント、すなわちDomestic Corpの地域別分割でパーセンテージグロスセールスを計算する必要があります。
私のクエリは、私がHNIのために同じクエリを繰り返す必要が地域賢明なパーセンテージ

select REGION_NAME, 
      round(ratio_to_report(nvl(sum(gross_sales_amt_t),0)) over()*100) as Gr_Sales_domcorp 
from  fact_mfdex_segment A 
JOIN  dim_location B 
ON  a.branch_code = b.branch_code 
WHERE  to_date(DATE_SK,'YYYYMMDD') between '01-feb-2016' and '01-mar-2016' 
AND  week_flag='Y' 
AND  a.segments = 'Domestic Corp.' 
group by REGION_NAME; 

で、小売ETC.私は別のセグメントを追加するために私の最初のクエリを使用することができます。私はケースステートメントを試みたが、動作していない。任意のヘルプをいただきました

答えて

0

、選択した列にa.segmentsを追加a.segmentsとREGION_NAMEで "AND a.segments = ..." 行、a.segmentsによってパーティションRATIO_TO_REPORT、およびグループを削除します。出力列名をGr_Sales_domcorpからGr_Salesに変更することができます。このようなもの:

select  REGION_NAME, a.segments, 
      round(ratio_to_report(nvl(sum(gross_sales_amt_t),0)) 
        over (partition by a.segments)*100) as Gr_Sales 
from  fact_mfdex_segment A 
JOIN  dim_location B 
ON  a.branch_code = b.branch_code 
WHERE  to_date(DATE_SK,'YYYYMMDD') between '01-feb-2016' and '01-mar-2016' 
AND  week_flag='Y' 
group by a.segments, REGION_NAME 
order by a.segments, REGION_NAME 
+0

私のために働いてくれてありがとう:)私はちょうどcase文で別の列にそれを分離するために上記の別のブロックを追加しなければならなかった – ajith

+0

あなたはピボットとあなたの行と列を得ることができるはずです。一方、その形式は報告要件のように聞こえます。組織内で使用されているものであれば、標準のレポートツールを使用する方が簡単です。とにかく - あなたが必要な助けを得てうれしいです。乾杯! – mathguy

0

"IN"句の中に入れ、次にセグメントごとにグループ化するだけで、必要なセグメントのすべてのレコードを含めるだけで、期待される結果が得られます。

select REGION_NAME, 
      round(ratio_to_report(nvl(sum(gross_sales_amt_t),0)) over()*100) as Gr_Sales_domcorp 
from  fact_mfdex_segment A 
JOIN  dim_location B 
ON  a.branch_code = b.branch_code 
WHERE  to_date(DATE_SK,'YYYYMMDD') between '01-feb-2016' and '01-mar-2016' 
AND  week_flag='Y' 
AND  a.segments IN ('Domestic Corp.','HNI','RETAIL') 
group by REGION_NAME, a.segments; 

+0

?これは、HNIなどとは別に、国内法人とは別に地域別の内訳を表示することはありません。私はOPの要件が明確だと思った。 – mathguy

+0

明確にするには、ratio_to_reportのpartition_by句がありません。 – mathguy

+0

@MaheshChand。おめでとうが、私は欲しいです。 10の領域があるとしたら、4列と10行が必要です。 i、e地域名、gross_domcorp、gross_hni、gross_retail。 – ajith