需求:通过jsp页面传回来的loseType的值,if进行条件判断,当为7的时候查询的是表suv中的
seven_lose_users这一列的值。。。
<!--流失用户--> <select id="getUserLoseListComplement" parameterType="java.util.Map" resultType="java.util.Map"> SELECT dd.calendar,suv.active_users, /*7天流失用户*/ <if test = 'loseType == "7"'> suv.seven_lose_users user_lose </if> /*14天流失用户*/ <if test = 'loseType == "14"'> suv.fourteen_lose_users user_lose </if> /*30天流失用户*/ <if test = 'loseType == "30"'> suv.thirty_lose_users user_lose </if> FROM ( ( ( stats_user_version suv INNER JOIN dimension_date dd ON suv.date_dimension_id = dd.id ) INNER JOIN dimension_app da ON suv.app_dimension_id = da.id ) INNER JOIN dimension_platform dp ON suv.platform_dimension_id = dp.id ) INNER JOIN dimension_channel dc ON suv.channel_dimension_id = dc.id WHERE dd.type = #{cycleType,jdbcType=VARCHAR} AND dd.calendar >= #{startDate, jdbcType=DATE} AND dd.calendar <= #{endDate, jdbcType=DATE} AND da.app_id = #{appId, jdbcType=VARCHAR} AND dp.platform_id = #{platformId, jdbcType=VARCHAR} AND dc.id = #{channelId, jdbcType=INTEGER} </select>