Compare commits

..

No commits in common. "de3bee2e3996eae9b14a2f78535d89fca0fd49a7" and "7d5b646f9a1a86f633cf5b6683671a1c2f641234" have entirely different histories.

View File

@ -375,8 +375,14 @@
TI.ITEM_ID, TI.ITEM_ID,
TI.CIRCUIT_CFG, TI.CIRCUIT_CFG,
COUNT(*) AS P_AMT COUNT(*) AS P_AMT
FROM T_PART_CIRCUIT_ITEM_ESTIMATE TI FROM
GROUP BY TI.CIRCUIT_NO, TI.OBJECT_NO, TI.PLAN_NO, TI.ITEM_ID, TI.CIRCUIT_CFG T_PART_CIRCUIT_ITEM_ESTIMATE TI
GROUP BY
TI.CIRCUIT_NO,
TI.OBJECT_NO,
TI.PLAN_NO,
TI.ITEM_ID,
TI.CIRCUIT_CFG
), ),
Z AS ( Z AS (
SELECT SELECT
@ -390,20 +396,19 @@
TCI.ITEM_ID AS P_ITEM_ID, TCI.ITEM_ID AS P_ITEM_ID,
TRI.PC_ITEM_ID, TRI.PC_ITEM_ID,
TRI.QCAST_CUST_PRD_ID, TRI.QCAST_CUST_PRD_ID,
TCI.P_AMT TCI.P_AMT,
, (SELECT ISNULL(M.PNOW_W,0) FROM M_ITEM M WHERE M.ITEM_ID = TCI.ITEM_ID) AS P_SPEC TCI.CIRCUIT_CFG
, (SELECT ISNULL(M.PNOW_W,0) FROM M_ITEM M WHERE M.ITEM_ID = TRI.PC_ITEM_ID) AS PC_SPEC FROM
, (SELECT ISNULL(M.PNOW_W,0) FROM M_ITEM M WHERE M.ITEM_ID = TRI.QCAST_CUST_PRD_ID) AS CUST_SPEC T_PART_ROOF_ITEM_ESTIMATE TRI
,TCI.CIRCUIT_CFG INNER JOIN T_PART_ROOF_ESTIMATE TR ON TRI.ROOF_SURFACE_ID = TR.ROOF_SURFACE_ID
FROM T_PART_ROOF_ITEM_ESTIMATE TRI AND TRI.OBJECT_NO = TR.OBJECT_NO
INNER JOIN TCI AND TRI.PLAN_NO = TR.PLAN_NO
ON TRI.ROOF_ITEM_NO = TCI.CIRCUIT_NO INNER JOIN TCI ON TRI.ROOF_ITEM_NO = TCI.CIRCUIT_NO
AND TRI.OBJECT_NO = TCI.OBJECT_NO AND TRI.OBJECT_NO = TCI.OBJECT_NO
AND TRI.PLAN_NO = TCI.PLAN_NO AND TRI.PLAN_NO = TCI.PLAN_NO
WHERE WHERE
TRI.OBJECT_NO = #{objectNo} TRI.OBJECT_NO = #{objectNo}
AND AND TRI.PLAN_NO = #{planNo}
TRI.PLAN_NO = #{planNo}
), ),
Z_CFG AS ( Z_CFG AS (
SELECT SELECT
@ -411,14 +416,18 @@
CAST(ISNULL(SPLIT.M_1, 0) AS INT) AS M_1, CAST(ISNULL(SPLIT.M_1, 0) AS INT) AS M_1,
CAST(ISNULL(SPLIT.M_2, 0) AS INT) AS M_2, CAST(ISNULL(SPLIT.M_2, 0) AS INT) AS M_2,
CAST(ISNULL(SPLIT.M_3, 0) AS INT) AS M_3 CAST(ISNULL(SPLIT.M_3, 0) AS INT) AS M_3
FROM Z FROM
CROSS APPLY ( Z CROSS APPLY (
SELECT SELECT
X.value('(/x[1]/v[1])[1]', 'VARCHAR(50)') AS M_1, X.value('(/x[1]/v[1])[1]', 'VARCHAR(50)') AS M_1,
X.value('(/x[1]/v[2])[1]', 'VARCHAR(50)') AS M_2, X.value('(/x[1]/v[2])[1]', 'VARCHAR(50)') AS M_2,
X.value('(/x[1]/v[3])[1]', 'VARCHAR(50)') AS M_3 X.value('(/x[1]/v[3])[1]', 'VARCHAR(50)') AS M_3
FROM ( FROM
SELECT CAST('<x><v>' + REPLACE(ISNULL(Z.CIRCUIT_CFG, ''), ',', '</v><v>') + '</v></x>' AS XML) (
SELECT
CAST(
'<x><v>' + REPLACE(ISNULL(Z.CIRCUIT_CFG, ''), ',', '</v><v>') + '</v></x>' AS XML
)
) A(X) ) A(X)
) SPLIT ) SPLIT
), ),
@ -430,25 +439,26 @@
ZC.M_AMT, ZC.M_AMT,
(ZC.M_1 + ZC.M_2 + ZC.M_3) AS M_AMT2, (ZC.M_1 + ZC.M_2 + ZC.M_3) AS M_AMT2,
ZC.P_ITEM_ID, ZC.P_ITEM_ID,
TE.SPECIFICATION AS P_SPEC,
ZC.P_AMT, ZC.P_AMT,
ZC.PC_ITEM_ID, (
ZC.QCAST_CUST_PRD_ID, SELECT
CASE SPECIFICATION
WHEN ZC.P_SPEC != '0' THEN P_SPEC FROM
WHEN ZC.CUST_SPEC != '0' THEN CUST_SPEC T_PART_ROOF_ITEM_ESTIMATE TRI
WHEN ZC.PC_SPEC != '0' THEN PC_SPEC INNER JOIN T_PART_ROOF_ESTIMATE TR ON TRI.ROOF_SURFACE_ID = TR.ROOF_SURFACE_ID
ELSE '0' AND TRI.OBJECT_NO = TR.OBJECT_NO
END AND TRI.PLAN_NO = TR.PLAN_NO
AS P_SPEC, WHERE
(SELECT SPECIFICATION TRI.OBJECT_NO = ZC.OBJECT_NO
FROM T_PART_ROOF_ITEM_ESTIMATE AND TRI.PLAN_NO = ZC.PLAN_NO
WHERE OBJECT_NO = ZC.OBJECT_NO AND TRI.ROOF_ITEM_NO = (ZC.ROOF_ITEM_NO + 1)
AND PLAN_NO = ZC.PLAN_NO ) AS M_SPEC2
AND ROOF_ITEM_NO = (ZC.ROOF_ITEM_NO + 1)) AS M_SPEC2 FROM
FROM Z_CFG ZC Z_CFG ZC
INNER JOIN T_PART_ESTIMATE TE INNER JOIN T_PART_ESTIMATE TE ON ZC.OBJECT_NO = TE.OBJECT_NO
ON ZC.OBJECT_NO = TE.OBJECT_NO
AND ZC.PLAN_NO = TE.PLAN_NO AND ZC.PLAN_NO = TE.PLAN_NO
AND 0 < CAST(TE.SPECIFICATION AS FLOAT)
AND TE.ITEM_ID IN (ZC.P_ITEM_ID, ZC.PC_ITEM_ID, ZC.QCAST_CUST_PRD_ID) AND TE.ITEM_ID IN (ZC.P_ITEM_ID, ZC.PC_ITEM_ID, ZC.QCAST_CUST_PRD_ID)
), ),
X AS ( X AS (
@ -457,22 +467,20 @@
Y.M_SPEC, Y.M_SPEC,
(Y.M_AMT2 - Y.M_AMT) AS M_CNT, (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_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(
ROUND(((Y.M_AMT2 - Y.M_AMT) * CAST(ISNULL(Y.M_SPEC, 0) AS FLOAT) / 1000), 4) AS R_VOL, (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 CASE
WHEN Y.M_AMT < Y.M_AMT2 WHEN Y.M_AMT < Y.M_AMT2 THEN ROUND((Y.M_AMT * CAST(ISNULL(Y.M_SPEC, 0) AS FLOAT) / 1000), 4)
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 )
ELSE
ROUND((Y.M_AMT2 * CAST(ISNULL(Y.M_SPEC, 0) AS FLOAT) / 1000), 4)
END AS M_VOL_KW, END AS M_VOL_KW,
ROUND((Y.P_AMT * CAST(ISNULL(Y.P_SPEC, 0) AS FLOAT) / 1000), 4) AS PC_VOL_KW, ROUND((Y.P_AMT * CAST(ISNULL(Y.P_SPEC, 0) AS FLOAT) / 1000), 4) AS PC_VOL_KW,
CASE CASE
WHEN 0 < (Y.M_AMT2 - Y.M_AMT) 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)
THEN ROUND(((Y.M_AMT2 - Y.M_AMT) * CAST(ISNULL(Y.M_SPEC2, 0) AS FLOAT) / 1000), 4)
ELSE 0 ELSE 0
END AS M_VOL_KW2 END AS M_VOL_KW2
FROM Y FROM
) Y )
SELECT SELECT
CAST( CAST(
SUM( SUM(