sql记录3

<select id="selectByWhere" parameterType="com.walmart.aloha.productmanage.entity.param.ParamWorkHours"
        resultType="com.walmart.aloha.productmanage.entity.result.ResultWorkHours">
    SELECT
    result.project_id,
    result.user_id,
    result.hourStatus as status,
    result.countHours,
    result.pm_user_id,
    result.pmName,
    result.sap_id,
    result.project_name,
    result.user_type,
    result.english_name,
    result.chinese_name,
    result.domain,
    result.role,
    result.minBeginDate ,
    result.maxEndDate
    FROM (
    SELECT
    work_hours.project_id,
    work_hours.user_id,
    work_hours.hourStatus,
    work_hours.countHours,
    work_hours.pm_user_id,
    work_hours.pmName,
    work_hours.sap_id,
    work_hours.project_name,
    user_info.user_type,
    user_info.english_name,
    user_info.chinese_name,
    user_info.domain,
    user_info.role,
    resour_allo.minBeginDate ,
    resour_allo.maxEndDate,
    ROW_NUMBER () OVER ( PARTITION BY work_hours.project_id, work_hours.user_id ORDER BY work_hours.project_id DESC
    ) theRow
    FROM
    (
    SELECT twh.project_id,
    twh.user_id,
    twh.hour_status AS hourStatus,tu.english_name as pmName ,tp.project_name ,tp.pm_user_id,tp.sap_id,
    sum(twh.workhours) over(PARTITION BY twh.project_id,twh.user_id ORDER BY
    twh.project_id DESC) as countHours ,ROW_NUMBER() OVER( PARTITION BY twh.project_id,twh.user_id ORDER BY
    twh.project_id DESC)RN FROM tbl_workhours as twh inner join tbl_project as tp On twh.project_id = tp.project_id
    left JOIN tbl_user as tu ON tp.pm_user_id = tu.user_id WHERE twh.valid = 0
    AND tp.valid = 0
    AND tu.valid = 0
    <if test="hourStatus != null and  hourStatus != '' ">
        AND twh.hour_status = #{hourStatus,jdbcType=VARCHAR}
    </if>
    <if test="pmUserId != null and  pmUserId != '' ">
        AND tp.pm_user_id = #{pmUserId,jdbcType=VARCHAR}
    </if>
    <if test="userId != null and  userId != '' ">
        AND twh.user_id = #{userId,jdbcType=VARCHAR}
    </if>
    ) as work_hours,
    (SELECT tra.project_id,tra.user_id,
    min(tra.min_ra_date) AS minBeginDate,
    max(tra.max_ra_date) AS maxEndDate
    ,ROW_NUMBER() OVER( PARTITION BY tra.project_id,tra.user_id ORDER BY tra.project_id DESC)RN
    FROM tbl_resource_allocation as tra,tbl_workhours as twh WHERE tra.valid = 0 AND twh.valid=0 AND twh.project_id
    = tra.project_id AND tra.user_id = twh.user_id
    <if test="hourStatus != null and  hourStatus != '' ">
        AND twh.hour_status = #{hourStatus,jdbcType=VARCHAR}
    </if>
    <if test="userId != null and  userId != '' ">
        AND twh.user_id = #{userId,jdbcType=VARCHAR}
    </if>
    <if test="beginDate != null and endDate != null">
        AND ( tra.min_ra_date
        BETWEEN #{beginDate,jdbcType=DATE} AND #{endDate,jdbcType=DATE}
        OR tra.max_ra_date BETWEEN #{beginDate,jdbcType=DATE} AND #{endDate,jdbcType=DATE})
    </if>
    GROUP BY tra.project_id,tra.user_id
    ) as resour_allo,
    (SELECT
    tu.user_id,
    tu.user_type,
    tu.english_name,
    tu.chinese_name,
    tu.domain,
    tu.STATUS,
    twh.project_id,
    tu.role,ROW_NUMBER() OVER( PARTITION BY twh.project_id,twh.user_id ORDER BY twh.project_id DESC)RN FROM
    tbl_workhours as twh INNER JOIN tbl_user as tu on twh.user_id = tu.user_id WHERE tu.valid = 0 AND twh.valid = 0
    <if test="hourStatus != null and  hourStatus != '' ">
        AND twh.hour_status = #{hourStatus,jdbcType=VARCHAR}
    </if>
    <if test="userId != null and  userId != '' ">
        AND twh.user_id = #{userId,jdbcType=VARCHAR}
    </if>
    ) as user_info
    WHERE work_hours.RN = 1
    AND resour_allo.RN = 1
    AND user_info.RN = 1
    AND work_hours.project_id = resour_allo.project_id
    AND work_hours.user_id = user_info.user_id
    AND work_hours.user_id = resour_allo.user_id
    AND work_hours.project_id = user_info.project_id
    )as result
    <if test="startRow != null and  endRow != null ">
        WHERE result.theRow between #{startRow} and #{endRow}
    </if>
</select>
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值