2016-05-20 4 views
0
で2番目のクエリの合計

に最初のクエリの合計を追加します。は、私が列を合計する既存のクエリを持っているSQL

4/30/2016 9953639 159384 184.5015 
5/7/2016 9953639 159384 188.5844 
5/14/2016 9953639 159384 186.102` 

と私は別のクエリを持っている:

SELECT 
    fcst.eow_date - 21 AS eow_date, 
    fcst.item, 
    ril.source_wh, 
    SUM (fcst.forecast_sales) AS forecast_sales 
FROM RMS10.item_forecast fcst, RMS10.repl_item_loc ril, RMS10.wh w 
WHERE ril.item = fcst.item 
    AND fcst.loc = ril.location 
    AND ril.source_wh = w.wh 
    AND w.forecast_wh_ind = 'Y' 
    AND ril.loc_type = 'S' 
    AND fcst.item IN (SELECT UNIQUE item 
         FROM RMS10.repl_item_loc ril, RMS10.wh w 
         WHERE  ril.location = W.WH 
           AND W.FORECAST_WH_IND = 'Y' 
           AND RIL.REPL_METHOD IN ('TI', 
                 'M', 
                 'C', 
                 'D')) 
GROUP BY fcst.item, eow_date, source_wh 
ORDER BY 3, 2, 1;  

を出力例は次のようになりますそのうち私は次のように予測合計を合計したいと思います:

SELECT fcst.eow_date -21 AS eow_data, fcst.item, axrf.source_whse, SUM(fcst.forecast_sales) AS forecast_sales 
FROM item_forecast fcst, aip.aafes_pack_item_xref axrf, repl_item_loc rpl 
WHERE fcst.item = axrf.item 
    AND fcst.item = rpl.item 
    AND fcst.loc = rpl.location 
    AND rpl.source_wh = axrf.loc 
    AND rpl.loc_type = 'S' 
GROUP BY fcst.eow_date, fcst.item, axrf.source_whse 
ORDER BY 3,2,1; 

`

上記のクエリの出力は次のようになります。

4/30/2016 9953639 159384 58.1433 
5/7/2016 9953639 159384 56.5777 
5/14/2016 9953639 159384 57.5736 

私は最初の3列は、このような予測の販売の新しい合計と一致して含めるたびのための2つの出力を追加したい:

4/30/2016 9953639 159384 242.6448 
5/7/2016 9953639 159384 245.1621 
5/14/2016 9953639 159384 243.6756 

2行目/ 3列目の行が一致しない場合でも、その合計を表示したいと考えています。どのように私はおそらくSQLでそれを行うことができますか?

ありがとうございます!

+1

「一致しない出力も表示されることをお勧めしますか? '? – EagleRainbow

+0

申し訳ありませんが、アイテム/場所(2列目/ 3列目)が一致しない行の場合は、結果を確認したいと思います。 – Adil

+2

あなたは本当に 'JOIN'構文を読み、' FROM'節に複数のテーブルを置くのをやめてください。 –

答えて

0

私はあなたの2つのクエリを結合しようとし、それらを上に集約しようとします。したがって、上記のあなたの文と組み合わせることで、この

select eow_date, item, sum(forecast_sales) as forecast_sales 
from 
(
    (your-first-query) 
    UNION ALL 
    (your-second-query) 
) as union_table 
group by eow_date, item 

のようなものは、これは次のように長いっぽいSQL文を生成:

SELECT eow_date, item, sum(forecast_sales) AS forecast_sales 
FROM 
(
    ( 
    SELECT 
    fcst.eow_date - 21 AS eow_date, 
    fcst.item, 
    ril.source_wh, 
    SUM (fcst.forecast_sales) AS forecast_sales 
    FROM RMS10.item_forecast fcst, RMS10.repl_item_loc ril, RMS10.wh w 
    WHERE ril.item = fcst.item 
     AND fcst.loc = ril.location 
     AND ril.source_wh = w.wh 
     AND w.forecast_wh_ind = 'Y' 
     AND ril.loc_type = 'S' 
     AND fcst.item IN (SELECT UNIQUE item 
        FROM RMS10.repl_item_loc ril, RMS10.wh w 
        WHERE  ril.location = W.WH 
          AND W.FORECAST_WH_IND = 'Y' 
          AND RIL.REPL_METHOD IN ('TI', 
                'M', 
                'C', 
                'D')) 
    GROUP BY fcst.item, eow_date, source_wh 
    ORDER BY 3, 2, 1 
    ) 
    UNION ALL 
    (
     SELECT fcst.eow_date -21 AS eow_data, fcst.item, axrf.source_whse, SUM(fcst.forecast_sales) AS forecast_sales 
     FROM item_forecast fcst, aip.aafes_pack_item_xref axrf, repl_item_loc rpl 
     WHERE fcst.item = axrf.item 
     AND fcst.item = rpl.item 
     AND fcst.loc = rpl.location 
     AND rpl.source_wh = axrf.loc 
     AND rpl.loc_type = 'S' 
     GROUP BY fcst.eow_date, fcst.item, axrf.source_whse 
     ORDER BY 3,2,1 
    ) 
) AS union_table 
GROUP BY eow_date, item 

このSQL文の複雑さを減らすために(したがって、メンテナンス性を向上させるために)この場合、SQLビューを使用すると便利です。

関連する問題