题解 | 物流公司想要分析快递小哥的薪资构成和绩效情况

物流公司想要分析快递小哥的薪资构成和绩效情况

https://www.nowcoder.com/practice/4be55ba954bf4f928a2d6ff840f23d1b

-- 逻辑拆解:时间条件-2024年7月,求——总收入,直接连接表分组聚合就可以(难点:避开笛卡尔积)
WITH total_income AS(
    SELECT 
        t1.courier_id,
        t1.courier_name,
        ROUND(t1.base_salary+SUM(t2.delivery_fee),2) total_income
    FROM couriers_info t1
    LEFT JOIN deliveries_info t2
    ON t1.courier_id = t2.courier_id
    AND t2.delivery_date BETWEEN '2024-07-01' AND '2024-07-31'
    GROUP BY t1.courier_id,t1.courier_name
),
total_expense AS(
    SELECT 
        t1.courier_id,
        t1.courier_name,
        ROUND(SUM(t2.expense_amount),2) total_expense
    FROM couriers_info t1
    LEFT JOIN expenses_info t2
    ON t1.courier_id = t2.courier_id
    AND t2.expense_date BETWEEN '2024-07-01' AND '2024-07-31'
    GROUP BY t1.courier_id,t1.courier_name   
)
SELECT 
    t1.courier_id,
    t1.courier_name,
    t1.total_income - t2.total_expense total_income
FROM total_income t1
LEFT JOIN total_expense t2
ON t1.courier_id = t2.courier_id
ORDER BY t1.courier_id


全部评论

相关推荐

评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务