SQL中关联表并使用子表的COUNT和SUM函数作为扩展字段
生活随笔
收集整理的這篇文章主要介紹了
SQL中关联表并使用子表的COUNT和SUM函数作为扩展字段
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
場景
主表wms_receive_order,
表wms_receive_order_details是其詳情表。
詳情表的receive_id字段與主表 的id字段相關聯(lián)。
現(xiàn)在要查出主表的部分信息以及詳情表的某個字段的COUNT值以及SUM值作為擴展
實體類中的一些屬性。
實現(xiàn)
找到對應的mapper中的方法:
<select id="pageTray"? parameterType="com.ws.bus.sys.entity.WmsReceiveOrder" resultType="com.ws.bus.sys.vo.WmsOrderVo.WmsReceiveOrderVO">SELECTro.*,sc.code_name status_name,su.name creater_name,(SELECT?COUNT(*) FROM wms_receive_order_details? wrod where wrod.receive_id=ro.id and wrod.deleted_flag = 0) totalTray,(SELECT?SUM(num) FROM wms_receive_order_details? wrod where wrod.receive_id=ro.id and wrod.deleted_flag = 0 ) totalNumFROMwms_receive_order roLEFT JOIN sys_code sc ON sc.code_value= ro.statusAND sc.code_type= 'receiveOrderStatus'LEFT JOIN sys_user su ON su.id =ro.creator_idWHEREro.deleted_flag= '0'<if test="wmsReceiveOrder != null and wmsReceiveOrder.purchaseCode!=null and wmsReceiveOrder.purchaseCode!=''" >and ro.purchase_code=#{wmsReceiveOrder.purchaseCode} </if><if test="wmsReceiveOrder != null and wmsReceiveOrder.status!=null and wmsReceiveOrder.status!=''" >and ro.status=#{wmsReceiveOrder.status} </if><if test="wmsReceiveOrder != null and wmsReceiveOrder.supplierName!=null and wmsReceiveOrder.supplierName!=''" >and ro.supplier_name=#{wmsReceiveOrder.supplierName} </if></select>添加resultMap:
?
<resultMap type="com.ws.bus.sys.vo.WmsOrderVo.WmsReceiveOrderVO" id="receiveOrderMap"><result column="status_name" property="statusName"/><result column="totalTray" property="totalTray"/><result column="totalNum" property="totalNum"/><result column="creater_name" property="createrName"/></resultMap>?
總結
以上是生活随笔為你收集整理的SQL中关联表并使用子表的COUNT和SUM函数作为扩展字段的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: MyBatisPlus中使用 @Tabl
- 下一篇: MyBatisPlus中通用CRUD的u