You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

68 lines
2.9 KiB
XML

5 months ago
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="cn.iocoder.yudao.module.flow.dal.mysql.outbound.OutboundMapper">
<!--
一般情况下,尽可能使用 Mapper 进行 CRUD 增删改查即可。
无法满足的场景,例如说多表关联查询,才使用 XML 编写 SQL。
代码生成器暂时只生成 Mapper XML 文件本身,更多推荐 MybatisX 快速开发插件来生成查询。
文档可见https://www.iocoder.cn/MyBatis/x-plugins/
-->
<select id="getDatasGroupByGoodsId"
resultType="cn.iocoder.yudao.module.flow.controller.admin.outbound.vo.OutboundStatisticsDataRespVO">
SELECT
b.goods_id AS goodsId,
b.goods_name AS goodsName,
SUM(b.goods_num) AS goodsNum,
SUM(b.goods_weight) AS goodsWeight,
(
SELECT SUM(g.goods_num * g.goods_weight)
FROM flow_outbound a
LEFT JOIN flow_outbound_goods g ON g.out_bound_id = a.out_bound_id
WHERE
MONTH(a.out_bound_time) = MONTH(NOW())
AND g.goods_id = b.goods_id
) AS sumNum
FROM
flow_outbound a
LEFT JOIN
flow_outbound_goods b ON b.out_bound_id = a.out_bound_id
WHERE
MONTH(a.out_bound_time) = MONTH(NOW())
GROUP BY
b.goods_id, b.goods_name
</select>
<select id="getSixDatasByGoodsId"
resultType="cn.iocoder.yudao.module.flow.controller.admin.outbound.vo.OutboundStatisticsDataRespVO">
SELECT
DATE(a.out_bound_time) AS date,
SUM(b.goods_num) AS goodsNum,
SUM(b.goods_weight) AS goodsWeight,
SUM(b.goods_num * b.goods_weight) AS sumNum
FROM
flow_outbound a
LEFT JOIN
flow_outbound_goods b ON b.out_bound_id = a.out_bound_id
WHERE
a.out_bound_time >= CURDATE() - INTERVAL 6 DAY
AND a.out_bound_time &lt; CURDATE()
GROUP BY
DATE(a.out_bound_time)
ORDER BY
DATE(a.out_bound_time);
</select>
<select id="getTodayOutboundCount" resultType="java.math.BigDecimal">
SELECT SUM(sumNum) AS totalQuantity
FROM (
SELECT b.goods_id AS goodsId,
b.goods_name AS goodsName,
SUM(b.goods_num * b.goods_weight) AS sumNum
FROM flow_outbound a
LEFT JOIN flow_outbound_goods b ON b.out_bound_id = a.out_bound_id
WHERE MONTH(a.out_bound_time) = MONTH(NOW())
GROUP BY b.goods_id, b.goods_name
) AS subquery
</select>
</mapper>