Как я могу использовать свод с союзом всех - PullRequest
0 голосов
/ 10 февраля 2020

Вот так выглядит моя таблица

А вот так должна выглядеть моя таблица

Я попытался повернуть, но все примеры, непосредственно связанные с таблицей. Я не смог найти ни одного примера разворота с union, так что сейчас я в отчаянии. Если вы, ребята, имеете представление об этом предмете, это было бы очень полезно.

Это мой избранный код

               WITH CTE1 
                    AS (
                SELECT
                    EI.EXPENSE_ITEM_ID,
                    EC.EXPENSE_CAT_ID,
                    MONTH(BP.BUDGET_PLAN_DATE) AS PLAN_MONTH,
                    BPR.ROW_TOTAL_INCOME PLAN_INCOME,
                    BPR.ROW_TOTAL_EXPENSE PLAN_EXPENSE,
                    EI.EXPENSE_ITEM_NAME,
                    EC.EXPENSE_CAT_NAME
                FROM
                    catalyst_teknotel.BUDGET_PLAN BP
                        LEFT JOIN BUDGET_PLAN_ROW BPR ON BPR.BUDGET_PLAN_ID = BP.BUDGET_PLAN_ID
                        LEFT JOIN EXPENSE_ITEMS EI ON EI.EXPENSE_ITEM_ID = BPR.BUDGET_ITEM_ID
                        LEFT JOIN EXPENSE_CATEGORY EC ON EC.EXPENSE_CAT_ID = EI.EXPENSE_CATEGORY_ID
                WHERE
                    BP.BUDGET_ID = (SELECT TOP 1 BUDGET_ID FROM BUDGET WHERE PERIOD_YEAR = 2019)
            )




            (
            SELECT
                SUM(PLAN_EXPENSE) PLAN_EXPENSE,
                SUM(PLAN_INCOME) PLAN_INCOME,
                PLAN_MONTH,
                EXPENSE_CAT_ID,
                0 AS EXPENSE_ITEM_ID,
                '' AS EXPENSE_ITEM_NAME,
                EXPENSE_CAT_NAME
            FROM
                CTE1
            GROUP BY
                PLAN_MONTH,
                EXPENSE_CAT_ID,
                EXPENSE_CAT_NAME

            UNION ALL


            SELECT
                SUM(PLAN_EXPENSE) PLAN_EXPENSE,
                SUM(PLAN_INCOME) PLAN_INCOME,
                PLAN_MONTH,
                0 AS EXPENSE_CAT_ID,
                EXPENSE_ITEM_ID,
                EXPENSE_ITEM_NAME,
                '' AS EXPENSE_CAT_NAME
            FROM
                CTE1
            GROUP BY
                PLAN_MONTH,
                EXPENSE_ITEM_ID,
                EXPENSE_ITEM_NAME
            )

...