SELECT
(SELECT T3.STORAGE_NAME FROM YDM_BS_STORAGE T3 WHERE T3.STORAGE_NO = T2.STORAGE_NO) AS STORAGE_NAME,
(SELECT T4.LOCATION_NAME FROM YDM_BS_LOCATION T4 WHERE T4.LOCATION_NO = T2.LOCATION_NO) AS LOCATION_NAME,
SUM(T1.ACT_COUNT) AS ACT_COUNT,
SUM(T1.ACT_WEIGHT) AS ACT_WEIGHT,
SUM(T1.ACT_LEN) AS ACT_LEN
FROM MAT_BC_M T1
LEFT JOIN YDM_BC_BUTTRESS T2 ON T1.MAT_NO=T2.MAT_NO
LEFT JOIN YDM_BS_STORAGE S ON S.STORAGE_NO=T2.STORAGE_NO
LEFT JOIN YDM_BS_LOCATION B ON B.LOCATION_NO = T2.LOCATION_NO
WHERE
T1.MAT_NO = T2.MAT_NO
#STORAGE_NO# #STORAGE_NAME# #LOCATION_NAME#
GROUP BY T2.STORAGE_NO,T2.LOCATION_NO
UNION ALL
SELECT
(SELECT T3.STORAGE_NAME FROM YDM_BS_STORAGE T3 WHERE T3.STORAGE_NO = T2.STORAGE_NO) AS STORAGE_NAME,
(SELECT T4.LOCATION_NAME FROM YDM_BS_LOCATION T4 WHERE T4.LOCATION_NO = T2.LOCATION_NO) AS LOCATION_NAME,
SUM(T1.ACT_COUNT) AS ACT_COUNT,
SUM(T1.ACT_WEIGHT) AS ACT_WEIGHT,
SUM(T1.ACT_LEN) AS ACT_LEN
FROM MAT_ZC_M T1
LEFT JOIN YDM_ZC_BUTTRESS T2 ON T1.MAT_NO=T2.MAT_NO
LEFT JOIN YDM_BS_STORAGE S ON S.STORAGE_NO=T2.STORAGE_NO
LEFT JOIN YDM_BS_LOCATION B ON B.LOCATION_NO = T2.LOCATION_NO
WHERE T1.MAT_NO = T2.MAT_NO
#STORAGE_NO# #STORAGE_NAME# #LOCATION_NAME#
GROUP BY T2.STORAGE_NO,T2.LOCATION_NO
SELECT B.STORAGE_NO, B.STORAGE_NAME, T.LOCATION_NO, T.LOCATION_NAME
, (
SELECT NVL(SUM(Z.ACT_COUNT),0) + NVL(SUM(B.ACT_COUNT),0)
FROM YDM_ZC_BUTTRESS Y
LEFT JOIN MAT_ZC_M Z ON Z.MAT_NO = Y.MAT_NO
LEFT JOIN MAT_BC_M B ON B.MAT_NO = Y.MAT_NO
WHERE Y.LOCATION_NO = T.LOCATION_NO
) AS ACT_COUNT
, (
SELECT NVL(SUM(Z.ACT_WEIGHT),0) + NVL(SUM(B.ACT_WEIGHT),0)
FROM YDM_ZC_BUTTRESS Y
LEFT JOIN MAT_ZC_M Z ON Z.MAT_NO = Y.MAT_NO
LEFT JOIN MAT_BC_M B ON B.MAT_NO = Y.MAT_NO
WHERE Y.LOCATION_NO = T.LOCATION_NO
) AS ACT_WEIGHT
FROM YDM_BS_LOCATION T
LEFT JOIN YDM_BS_STORAGE B ON T.STORAGE_NO = B.STORAGE_NO
WHERE
1=1