1
這就是表看起來像「正常」WITH ROLLUP只能產生空值
WorkloadCategory | WorkloadCapacity| WorkloadTotalTime
-----------------|-----------------|------------------
DI | 317632 | 239.92
DI | 106706 | 32.45
DI | 35840 | 27.77
DI | 50000 | 48.07
DI | 8000 | 9.18
DI | 29120 | 15.71
DI | 0 | 0
使用下面的查詢:
SELECT
wlc.WorkloadCategory,
wl.WorkloadCapacity,
ROUND(wl.WorkloadMinutes * wl.WorkloadCapacity/60/assum.WorkYearHours, 2) AS WorkloadTotalTime
FROM
swam.Assumptions assum
CROSS JOIN
swam.WorkloadCategories wlc
INNER JOIN
swam.Workloads wl ON wlc.WorkloadCategoryID = wl.WorkloadCategoryID
ORDER BY
wlc.WorkloadCategory
我想要做的就是簡單地總結了兩列WorkloadCapacity
和WorkloadTotalTime
,並在表格底部有一個新行,顯示每列的總和。
我希望某些列是NULL,因爲這是ROLLUP的工作方式,是的,我知道如果我想要的話,我需要指定列名稱來讀取'Total'....但是我不明白爲什麼從ROLLUP的款項甚至沒有顯示出來的。
我試圖用類似GROUP BY GROUPING SET
(像什麼的),從這個網站的其他崗位的東西,但它並沒有解決我遇到的問題。
SELECT
wlc.WorkloadCategory,
ROUND(wl.WorkloadMinutes * wl.WorkloadCapacity/60/assum.WorkYearHours, 2) AS WorkloadTotalTime
FROM
swam.Assumptions assum
CROSS JOIN
swam.WorkloadCategories wlc
INNER JOIN
swam.Workloads wl ON wlc.WorkloadCategoryID = wl.WorkloadCategoryID
GROUP BY
wlc.WorkloadCategory, wl.WorkloadCapacity,
assum.WorkYearHours, wl.WorkloadMinutes WITH ROLLUP
輸出表只是NULLS的全部!
WorkloadCategory | WorkloadCapacity | WorkloadTotalTime
DI | 0 | 0
DI | 0 | NULL
DI | 0 | NULL
DI | 8000 | 9.18
DI | 8000 | NULL
DI | 8000 | NULL
DI | 29120 | 15.71
DI | 29120 | NULL
DI | 29120 | NULL
DI | 35840 | 27.77
DI | 35840 | NULL
DI | 35840 | NULL
DI | 50000 | 48.07
DI | 50000 | NULL
DI | 50000 | NULL
DI | 106706 | 32.45
DI | 106706 | NULL
DI | 106706 | NULL
DI | 317632 | 239.92
DI | 317632 | NULL
DI | 317632 | NULL
DI | NULL | NULL
預先感謝任何幫助,您可以提供。
非常感謝你的幫助! – blacksaibot