발전시뮬레이션 모듈 GROUP BY

This commit is contained in:
DESKTOP-6ARNG1Q\dlsgk 2025-01-16 09:39:32 +09:00
parent 2930910b52
commit d551036208
2 changed files with 36 additions and 29 deletions

View File

@ -68,34 +68,41 @@
<select id="selectRoofItemList" parameterType="com.interplug.qcast.biz.pwrGnrSimulation.dto.PwrGnrSimRequest"
resultType="com.interplug.qcast.biz.pwrGnrSimulation.dto.PwrGnrSimRoofResponse">
/* sqlid : com.interplug.qcast.api.pwrGnrSimulation.selectRoofItemList (견적서 지붕재 아이템 정보 조회) */
SELECT
A.ROOF_SURFACE_ID
, B.ITEM_ID
, B.AMOUNT
, B.ITEM_NO
, ISNULL((B.AMOUNT * TRY_CAST(B.SPECIFICATION AS FLOAT)), 0) AS TOT_SPECIFICATION /* 용량 */
, C.ITEM_GROUP
/* 추후 지붕재테이블로 봐야함. */
, C.TEMP_LOSS
, C.TEMP_COEFF
, C.CNV_EFF
, C.AMP
, B.SPECIFICATION
, A.ROOF_SURFACE
, A.CLASS_TYPE
, A.AZIMUTH
, (CASE WHEN A.CLASS_TYPE = 0 THEN A.SLOPE ELSE A.ANGLE END) AS SLOPE_ANGLE
, (CASE WHEN A.CLASS_TYPE = 0 THEN CAST(CAST(A.SLOPE AS INT)AS VARCHAR) + '寸' ELSE CAST(CAST(A.ANGLE AS INT)AS VARCHAR) + N'º' END) AS SLOPE_ANGLE_TXT
FROM T_PART_ROOF_ESTIMATE A WITH (NOLOCK)
INNER JOIN T_PART_ROOF_ITEM_ESTIMATE B WITH (NOLOCK)
ON A.OBJECT_NO = B.OBJECT_NO
AND A.PLAN_NO = B.PLAN_NO
AND A.ROOF_SURFACE_ID = B.ROOF_SURFACE_ID
INNER JOIN M_ITEM C WITH (NOLOCK)
ON B.ITEM_ID = C.ITEM_ID
WHERE A.OBJECT_NO = #{objectNo}
AND A.PLAN_NO = #{planNo}
AND C.ITEM_GROUP = #{itemGroup}
ORDER BY B.SPECIFICATION DESC
SELECT T.*
FROM (
SELECT
A.ROOF_SURFACE_ID
, B.ITEM_ID
, SUM(B.AMOUNT) AS AMOUNT
, B.ITEM_NO
, ISNULL((SUM(B.AMOUNT) * TRY_CAST(MAX(B.SPECIFICATION) AS FLOAT)),0) AS TOT_SPECIFICATION /* 용량 */
, MAX(C.ITEM_GROUP) AS ITEM_GROUP /* 추후 지붕재테이블로 봐야함. */
, MAX(C.TEMP_LOSS) AS TEMP_LOSS
, MAX(C.TEMP_COEFF ) AS TEMP_COEFF
, MAX(C.CNV_EFF) AS CNV_EFF
, MAX(C.AMP) AS AMP
, MAX(B.SPECIFICATION) AS SPECIFICATION
, A.ROOF_SURFACE AS ROOF_SURFACE
, A.CLASS_TYPE AS CLASS_TYPE
, A.AZIMUTH AS AZIMUTH
, (CASE
WHEN A.CLASS_TYPE = 0 THEN A.SLOPE
ELSE A.ANGLE END) AS SLOPE_ANGLE
, (CASE
WHEN A.CLASS_TYPE = 0 THEN CAST(CAST(A.SLOPE AS INT)AS VARCHAR) + '寸'
ELSE CAST(CAST(A.ANGLE AS INT)AS VARCHAR) + N'º' END) AS SLOPE_ANGLE_TXT
FROM T_PART_ROOF_ESTIMATE A WITH (NOLOCK)
INNER JOIN T_PART_ROOF_ITEM_ESTIMATE B WITH (NOLOCK)
ON A.OBJECT_NO = B.OBJECT_NO
AND A.PLAN_NO = B.PLAN_NO
AND A.ROOF_SURFACE_ID = B.ROOF_SURFACE_ID
INNER JOIN M_ITEM C WITH (NOLOCK)
ON B.ITEM_ID = C.ITEM_ID
WHERE A.OBJECT_NO = #{objectNo}
AND A.PLAN_NO = #{planNo}
AND C.ITEM_GROUP = #{itemGroup}
GROUP BY A.ROOF_SURFACE_ID, A.ROOF_SURFACE, A.CLASS_TYPE, A.AZIMUTH, A.ANGLE, A.SLOPE, B.ITEM_ID, B.ITEM_NO
) T
ORDER BY T.SPECIFICATION DESC
</select>
</mapper>