You've already forked FrameTour-BE
修一下sql
This commit is contained in:
@@ -30,22 +30,43 @@
|
|||||||
</select>
|
</select>
|
||||||
|
|
||||||
<select id="getDailySummaryByBrokerId" resultType="com.ycwl.basic.model.pc.broker.resp.DailySummaryRespVO">
|
<select id="getDailySummaryByBrokerId" resultType="com.ycwl.basic.model.pc.broker.resp.DailySummaryRespVO">
|
||||||
SELECT date_series.date AS date,
|
WITH RECURSIVE
|
||||||
COALESCE(COUNT(s.id), 0) AS scanCount,
|
date_series AS (SELECT DATE(#{startTime}) AS date
|
||||||
COALESCE(COUNT(br.id), 0) AS orderCount,
|
UNION ALL
|
||||||
COALESCE(SUM(br.order_price), 0) AS totalOrderPrice,
|
SELECT DATE_ADD(date, INTERVAL 1 DAY)
|
||||||
COALESCE(SUM(br.broker_price), 0) AS totalBrokerPrice
|
FROM date_series
|
||||||
FROM (
|
WHERE date < DATE(#{endTime})),
|
||||||
SELECT DATE_ADD(#{startTime}, INTERVAL (units.i + tens.i * 10 + hundreds.i * 100) DAY) AS date
|
scan_stats AS (SELECT DATE(create_time) AS date,
|
||||||
FROM (SELECT 0 AS i UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6 UNION ALL SELECT 7 UNION ALL SELECT 8 UNION ALL SELECT 9) units
|
COUNT(DISTINCT id) AS scanCount
|
||||||
CROSS JOIN (SELECT 0 AS i UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6 UNION ALL SELECT 7 UNION ALL SELECT 8 UNION ALL SELECT 9) tens
|
FROM t_stats_record
|
||||||
CROSS JOIN (SELECT 0 AS i UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6 UNION ALL SELECT 7 UNION ALL SELECT 8 UNION ALL SELECT 9) hundreds
|
WHERE action = 'CODE_SCAN'
|
||||||
WHERE DATE_ADD(#{startTime}, INTERVAL (units.i + tens.i * 10 + hundreds.i * 100) DAY) <= #{endTime}
|
AND identifier = #{brokerId}
|
||||||
) date_series
|
AND DATE(create_time) BETWEEN
|
||||||
LEFT JOIN broker_record br ON DATE(br.create_time) = date_series.date AND br.broker_id = #{brokerId}
|
DATE(#{startTime}) AND DATE(#{endTime})
|
||||||
LEFT JOIN t_stats_record s ON s.action = 'CODE_SCAN' and DATE(s.create_time) = date_series.date and s.identifier = #{brokerId}
|
GROUP BY DATE(create_time)),
|
||||||
GROUP BY date_series.date
|
order_stats AS (SELECT DATE(create_time) AS date,
|
||||||
ORDER BY date_series.date
|
COUNT(DISTINCT id) AS orderCount,
|
||||||
|
COALESCE(SUM(order_price), 0) AS
|
||||||
|
totalOrderPrice,
|
||||||
|
COALESCE(SUM(broker_price), 0) AS
|
||||||
|
totalBrokerPrice
|
||||||
|
FROM broker_record
|
||||||
|
WHERE broker_id = #{brokerId}
|
||||||
|
AND DATE(create_time) BETWEEN
|
||||||
|
DATE(#{startTime}) AND DATE(#{endTime})
|
||||||
|
GROUP BY DATE(create_time))
|
||||||
|
SELECT ds.date,
|
||||||
|
COALESCE(ss.scanCount, 0) AS scanCount,
|
||||||
|
COALESCE(os.orderCount, 0) AS orderCount,
|
||||||
|
COALESCE(os.totalOrderPrice, 0) AS
|
||||||
|
totalOrderPrice,
|
||||||
|
COALESCE(os.totalBrokerPrice, 0) AS
|
||||||
|
totalBrokerPrice
|
||||||
|
FROM date_series ds
|
||||||
|
LEFT JOIN scan_stats ss ON ds.date = ss.date
|
||||||
|
LEFT JOIN order_stats os ON ds.date = os.date
|
||||||
|
ORDER BY ds.date
|
||||||
|
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
<insert id="add">
|
<insert id="add">
|
||||||
|
Reference in New Issue
Block a user