diff --git a/src/main/resources/mappers/estimate/estimateMapper.xml b/src/main/resources/mappers/estimate/estimateMapper.xml
index 005ce9f1..afbc6180 100644
--- a/src/main/resources/mappers/estimate/estimateMapper.xml
+++ b/src/main/resources/mappers/estimate/estimateMapper.xml
@@ -368,119 +368,111 @@
/* sqlid : com.interplug.qcast.biz.estimate.selectEstimateRoofCertVolKw */
' + REPLACE(ISNULL(Z.CIRCUIT_CFG, ''), ',', '') + '' AS XML
- )
- ) A(X)
- ) SPLIT
- ),
+ FROM (
+ SELECT CAST('' + REPLACE(ISNULL(Z.CIRCUIT_CFG, ''), ',', '') + '' AS XML)
+ ) A(X)
+ ) SPLIT
+ ),
Y AS (
- SELECT
- ZC.ROOF_ITEM_NO,
- ZC.M_ITEM_ID,
- ZC.M_SPEC,
- ZC.M_AMT,
- (ZC.M_1 + ZC.M_2 + ZC.M_3) AS M_AMT2,
- ZC.P_ITEM_ID,
- TE.SPECIFICATION AS P_SPEC,
- ZC.P_AMT,
- (
- SELECT
- SPECIFICATION
- FROM
- T_PART_ROOF_ITEM_ESTIMATE TRI
- INNER JOIN T_PART_ROOF_ESTIMATE TR ON TRI.ROOF_SURFACE_ID = TR.ROOF_SURFACE_ID
- AND TRI.OBJECT_NO = TR.OBJECT_NO
- AND TRI.PLAN_NO = TR.PLAN_NO
- WHERE
- TRI.OBJECT_NO = ZC.OBJECT_NO
- AND TRI.PLAN_NO = ZC.PLAN_NO
- AND TRI.ROOF_ITEM_NO = (ZC.ROOF_ITEM_NO + 1)
- ) AS M_SPEC2
- FROM
- Z_CFG ZC
- INNER JOIN T_PART_ESTIMATE TE ON ZC.OBJECT_NO = TE.OBJECT_NO
- AND ZC.PLAN_NO = TE.PLAN_NO
- AND 0 < CAST(TE.SPECIFICATION AS FLOAT)
+ SELECT
+ ZC.ROOF_ITEM_NO,
+ ZC.M_ITEM_ID,
+ ZC.M_SPEC,
+ ZC.M_AMT,
+ (ZC.M_1 + ZC.M_2 + ZC.M_3) AS M_AMT2,
+ ZC.P_ITEM_ID,
+ ZC.P_AMT,
+ ZC.PC_ITEM_ID,
+ ZC.QCAST_CUST_PRD_ID,
+ CASE
+ WHEN ZC.P_SPEC != '0' THEN P_SPEC
+ WHEN ZC.CUST_SPEC != '0' THEN CUST_SPEC
+ WHEN ZC.PC_SPEC != '0' THEN PC_SPEC
+ ELSE '0'
+ END
+ AS P_SPEC,
+ (SELECT SPECIFICATION
+ FROM T_PART_ROOF_ITEM_ESTIMATE
+ WHERE OBJECT_NO = ZC.OBJECT_NO
+ AND PLAN_NO = ZC.PLAN_NO
+ AND ROOF_ITEM_NO = (ZC.ROOF_ITEM_NO + 1)) AS M_SPEC2
+ FROM Z_CFG ZC
+ INNER JOIN T_PART_ESTIMATE TE
+ ON ZC.OBJECT_NO = TE.OBJECT_NO
+ AND ZC.PLAN_NO = TE.PLAN_NO
AND TE.ITEM_ID IN (ZC.P_ITEM_ID, ZC.PC_ITEM_ID, ZC.QCAST_CUST_PRD_ID)
),
X AS (
- SELECT
+ SELECT
Y.M_ITEM_ID,
Y.M_SPEC,
(Y.M_AMT2 - Y.M_AMT) AS M_CNT,
- ROUND((Y.M_AMT * CAST(ISNULL(Y.M_SPEC, 0) AS FLOAT) / 1000), 4) AS M_VOL,
- ROUND(
- (Y.M_AMT2 * CAST(ISNULL(Y.M_SPEC, 0) AS FLOAT) / 1000),4) AS M_VOL2,
- ROUND(((Y.M_AMT2 - Y.M_AMT) * CAST(ISNULL(Y.M_SPEC, 0) AS FLOAT) / 1000),4) AS R_VOL,
+ ROUND((Y.M_AMT * CAST(ISNULL(Y.M_SPEC, 0) AS FLOAT) / 1000), 4) AS M_VOL,
+ ROUND((Y.M_AMT2 * CAST(ISNULL(Y.M_SPEC, 0) AS FLOAT) / 1000), 4) AS M_VOL2,
+ ROUND(((Y.M_AMT2 - Y.M_AMT) * CAST(ISNULL(Y.M_SPEC, 0) AS FLOAT) / 1000), 4) AS R_VOL,
CASE
- WHEN Y.M_AMT < Y.M_AMT2 THEN ROUND((Y.M_AMT * CAST(ISNULL(Y.M_SPEC, 0) AS FLOAT) / 1000), 4)
- ELSE ROUND((Y.M_AMT2 * CAST(ISNULL(Y.M_SPEC, 0) AS FLOAT) / 1000), 4 )
+ WHEN Y.M_AMT < Y.M_AMT2
+ THEN ROUND((Y.M_AMT * CAST(ISNULL(Y.M_SPEC, 0) AS FLOAT) / 1000), 4)
+ ELSE
+ ROUND((Y.M_AMT2 * CAST(ISNULL(Y.M_SPEC, 0) AS FLOAT) / 1000), 4)
END AS M_VOL_KW,
ROUND((Y.P_AMT * CAST(ISNULL(Y.P_SPEC, 0) AS FLOAT) / 1000), 4) AS PC_VOL_KW,
CASE
- WHEN 0 < (Y.M_AMT2 - Y.M_AMT) THEN ROUND(((Y.M_AMT2 - Y.M_AMT) * CAST(ISNULL(Y.M_SPEC2, 0) AS FLOAT) / 1000),4)
+ WHEN 0 < (Y.M_AMT2 - Y.M_AMT)
+ THEN ROUND(((Y.M_AMT2 - Y.M_AMT) * CAST(ISNULL(Y.M_SPEC2, 0) AS FLOAT) / 1000), 4)
ELSE 0
END AS M_VOL_KW2
- FROM
- Y )
+ FROM Y
+ )
SELECT
CAST(
SUM(