|
|
<?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="com.example.demo.mapper.OneMapper">
<!-- 第一个查询:getOne --> <select id="getOne" resultType="com.example.demo.domain.work.One"> SELECT COALESCE((SELECT SUM(recharge_coin + free_coin + task_coin) FROM detail_y WHERE DATE(create_time) = CURDATE() <if test="areas != null"> AND area IN <foreach collection="areas" item="areas" open="(" separator="," close=")"> #{areas} </foreach> </if>), 0) AS differr,
COALESCE((SELECT SUM(free_6 + free_12 + core_jb + buy_jb) FROM user_gold left join user on user.jwcode = user_gold.jwcode <where> <if test="areas != null"> area IN <foreach collection="areas" item="areas" open="(" separator="," close=")"> #{areas} </foreach> </if> </where>), 0) AS sumgold,
COALESCE((SELECT SUM(buy_jb) FROM user_gold left join user on user.jwcode = user_gold.jwcode <where> <if test="areas != null"> area IN <foreach collection="areas" item="areas" open="(" separator="," close=")"> #{areas} </foreach> </if> </where>), 0) AS rechargegold,
COALESCE((SELECT SUM(free_6) FROM user_gold left join user on user.jwcode = user_gold.jwcode <where> <if test="areas != null"> area IN <foreach collection="areas" item="areas" open="(" separator="," close=")"> #{areas} </foreach> </if> </where>), 0) AS sfreegold,
COALESCE((SELECT SUM(free_12) FROM user_gold left join user on user.jwcode = user_gold.jwcode <where> <if test="areas != null"> area IN <foreach collection="areas" item="areas" open="(" separator="," close=")"> #{areas} </foreach> </if> </where>), 0) AS dfreegold,
COALESCE((SELECT SUM(core_jb) FROM user_gold left join user on user.jwcode = user_gold.jwcode <where> <if test="areas != null"> area IN <foreach collection="areas" item="areas" open="(" separator="," close=")"> #{areas} </foreach> </if> </where>), 0) AS taskgold,
COALESCE((SELECT SUM(free_6) + SUM(free_12) FROM user_gold left join user on user.jwcode = user_gold.jwcode <where> <if test="areas != null"> area IN <foreach collection="areas" item="areas" open="(" separator="," close=")"> #{areas} </foreach> </if> </where>), 0) AS freegold; </select>
<!-- 第二个查询:getTwo --> <select id="getTwo" resultType="com.example.demo.domain.work.Two"> SELECT COALESCE(SUM(CASE WHEN year_flag = 1 THEN total_coin ELSE 0 END), 0) AS totalgold, COALESCE(SUM(CASE WHEN year_flag = 1 THEN recharge_coin ELSE 0 END), 0) AS totalcoin, COALESCE(SUM(CASE WHEN yesterday_flag = 1 THEN total_coin ELSE 0 END), 0) AS yesterdaytotal, COALESCE(SUM(CASE WHEN yesterday_flag = 1 THEN recharge_coin ELSE 0 END), 0) AS yesterdayrecharge, COALESCE(SUM(CASE WHEN year_flag = 1 THEN recharge_coin ELSE 0 END), 0) AS rechargegold, COALESCE(SUM(CASE WHEN year_flag = 1 THEN free_coin ELSE 0 END), 0) AS freegold, COALESCE(SUM(CASE WHEN year_flag = 1 THEN task_coin ELSE 0 END), 0) AS taskgold FROM ( SELECT recharge_coin, free_coin, task_coin, recharge_coin + free_coin + task_coin AS total_coin, YEAR(create_time) = YEAR(CURDATE()) AS year_flag, DATE(create_time) = DATE_SUB(CURDATE(), INTERVAL 1 DAY) AS yesterday_flag FROM detail_y WHERE update_type = 0 <if test="areas != null"> AND area IN <foreach collection="areas" item="areas" open="(" separator="," close=")"> #{area} </foreach> </if> ) AS subquery </select>
<!-- 第三个查询:getThree --> <select id="getThree" resultType="com.example.demo.domain.work.Three"> SELECT COALESCE((SELECT SUM(recharge_coin + free_coin + task_coin) FROM detail_y WHERE YEAR(create_time) = YEAR(CURDATE()) AND update_type = 1 <if test="areas != null"> AND area IN <foreach collection="areas" item="areas" open="(" separator="," close=")"> #{areas} </foreach> </if>), 0) AS consumeGold,
COALESCE((SELECT SUM(recharge_coin + free_coin + task_coin) FROM detail_y WHERE YEAR(create_time) = YEAR(CURDATE()) AND update_type = 2 <if test="areas != null"> AND area IN <foreach collection="areas" item="areas" open="(" separator="," close=")"> #{areas} </foreach> </if>), 0) AS refundcoin,
COALESCE((SELECT SUM(recharge_coin + free_coin + task_coin) FROM detail_y WHERE DATE(create_time) = DATE_SUB(CURDATE(), INTERVAL 1 DAY) AND update_type = 1 <if test="areas != null"> AND area IN <foreach collection="areas" item="areas" open="(" separator="," close=")"> #{areas} </foreach> </if>), 0) AS yesterdayGold,
COALESCE((SELECT SUM(recharge_coin) FROM detail_y WHERE DATE(create_time) = DATE_SUB(CURDATE(), INTERVAL 1 DAY) AND update_type = 2 <if test="areas != null"> AND area IN <foreach collection="areas" item="areas" open="(" separator="," close=")"> #{areas} </foreach> </if>), 0) AS yesterdayrefund, COALESCE((SELECT SUM(recharge_coin) FROM detail_y WHERE YEAR(create_time) = YEAR(CURDATE()) AND update_type = 1 <if test="areas != null"> AND area IN <foreach collection="areas" item="areas" open="(" separator="," close=")"> #{areas} </foreach> </if>), 0) AS rechargegold, COALESCE((SELECT SUM(task_coin) FROM detail_y WHERE YEAR(create_time) = YEAR(CURDATE()) AND update_type = 1 <if test="areas != null"> AND area IN <foreach collection="areas" item="areas" open="(" separator="," close=")"> #{areas} </foreach> </if>), 0) AS taskgold, COALESCE((SELECT SUM(free_coin) FROM detail_y WHERE YEAR(create_time) = YEAR(CURDATE()) AND update_type = 1 <if test="areas != null"> AND area IN <foreach collection="areas" item="areas" open="(" separator="," close=")"> #{areas} </foreach> </if>), 0) AS freegold </select> </mapper>
|