0

1 つではなく複数の行を持つ location_id でデータをピボットしようとしています。複数の場所があり、毎回 location_name をハードコードすることなく、データをピボットして複数の合計を計算する簡単な方法が必要です。これにアプローチする方法がわからず、正しい方向へのプッシュに感謝します。DB2 データベース。

SELECT RowNumber () over (PARTITION BY DIM_LOCATION_ID ORDER BY LOCATION_NAME),

        DIM_LOCATION_ID,
        LOCATION_NAME,

        (
        SELECT 
        SUM(SALES_AMOUNT) AS SALES_SUMMARY
        FROM FACT_TABLE
        WHERE LOCATION_NAME = 'DENVER'

        ) AS SALES_SUMMARYDV,

        (
        SELECT 
        SUM(SALES_AMOUNT) AS SALES_SUMMARY
        FROM FACT_TABLE
        WHERE LOCATION_NAME = 'CHICAGO'

        ) AS SALES_SUMMARYCH,

            (
        SELECT
        SUM(ORDERS) AS SUMMARY_ORDERS
        FROM FACT_TABLE
        WHERE LOCATION_NAME = 'DENVER'

        ) AS ORDER_SUMMARYDV,


        (
        SELECT
        SUM(ORDERS) AS SUMMARY_ORDERS
        FROM FACT_TABLE
        WHERE LOCATION_NAME = 'CHICAGO'

        ) AS ORDER_SUMMARYCH



    FROM FACT_TABLE 
    GROUP BY DIM_LOCATION_ID, LOCATION_NAME  
    ORDER BY LOCATION_NAME

望ましい結果: ここに画像の説明を入力

4

0 に答える 0