2010-08-05 48 views
1

=================Postgres的查詢銷售計劃

這是我的查詢:

SELECT 
SUM(sub_total) AS sales, 
CASE WHEN (sub_total<100) THEN '0-99'  
    WHEN (sub_total>=100 AND sub_total<200) THEN '100-199' 
    WHEN (sub_total>=200 AND sub_total<300) THEN '200-299' 
    WHEN (sub_total>=300 AND sub_total<400) THEN '300-399' 
    WHEN (sub_total>=400 AND sub_total<500) THEN '400-499' 
    ELSE '500+' 
END 
AS product_sales_range 
FROM order_item 
GROUP BY sub_total 

========= ===============

它給人的ressult爲:

sales  product_sales_range 
-----  ------------------- 

10398.96  200-299 
600   100-199 
300   0-99 
7699.78  300-399 
6799.32  100-199 
600   0-99 
26599.24  500+ 

================== ========================

我希望得到的結果是這樣的:

sales  product_sales_range sales_increase_by_10% sales_increase_by_20% 
-----  ------------------- ------------------ ------------------ 

10398.96  200-299 
600   100-199 
300   0-99 
7699.78  300-399 
6799.32  100-199 
600   0-99 
26599.24  500+ 

============

要求:

目前我們的銷售數字。需要找出銷售預測,就像銷售額增加10%,20%,30%等一樣。例如:今天sales_sales_range(0-99)的銷售額是300.如果銷售額增加10%,sales_increase_by_10 %應該是330

回答

2

我失去了一些東西,或者你只需​​要使用:

SELECT SUM(sub_total) AS sales, 
     CASE WHEN (sub_total<100) THEN '0-99' 
       WHEN (sub_total>=100 AND sub_total<200) THEN '100-199' 
       WHEN (sub_total>=200 AND sub_total<300) THEN '200-299' 
       WHEN (sub_total>=300 AND sub_total<400) THEN '300-399' 
       WHEN (sub_total>=400 AND sub_total<500) THEN '400-499' 
       ELSE '500+' 
     END AS product_sales_range, 
     SUM(sub_total) * 1.1 AS sales_increase_by_10Percent, 
     SUM(sub_total) * 1.2 AS sales_increase_by_20Percent 
    FROM order_item 
GROUP BY sub_total 
+0

精彩..那正是我需要的。非常感謝,非常感謝 – user412220 2010-08-05 17:35:02