`我如何拥有12个月的静态行以及动态行,它必须看起来像一个表?我没有列预算,我创建了单独的帮助表,全年预算金额。所以我不知道如何将该表加入主查询?
Select SUM(amount) as Commercial Auto
FROM
JOIN...`
WHERE...
UNION ALL
Select sum(anotherAmount) as Speciality Casualty
FROM
JOIN
WHERE
应该是这样的: enter image description here
答案 0 :(得分:0)
简短回答是将您拥有的数据交叉加入日历。 - 这样你仍然可以保留没有任何数字数据的单元格,因为它们仍然会显示日历月。
观看您的聚合 - 确保您正在进行交叉加入!
WITH Money_CTE AS(
SELECT
'1564651.01' AS MonataryData,
'2' AS MonthNumber
FROM
DUAL
UNION
SELECT
'234235.23' AS MonataryData,
'3' AS MonthNumber
FROM
DUAL
),
Calendar_CTE AS(
SELECT
'1' AS MonthNumber,
'January' AS MonthName
FROM
DUAL
UNION
SELECT
'2' AS MonthNumber,
'February' AS MonthName
FROM
DUAL
UNION
SELECT
'3' AS MonthNumber,
'March' AS MonthName
FROM
DUAL
)
SELECT
C.MonthNumber,
C.MonthName,
MAX(CASE WHEN M.MonthNumber = C.MonthNumber THEN M.MonataryData ELSE NULL END) AS Money
FROM
Money_CTE M
CROSS JOIN Calendar_CTE C
GROUP BY
C.MonthNumber,
C.MonthName

对不起所有" Dual"废话 - 我最近被迫与甲骨文打交道。