找文章 / 找答案
精选问答 更多内容

[数据处理] 一些数据的计算问题

血斗神星青铜一 显示全部楼层 发表于 2024-4-2 14:32:20 |阅读模式 打印 上一主题 下一主题
1
未解决

【数据处理】 一些数据的计算问题

2554 9
我在制作一个工资的绩效表 有三个类型的计件数据和两种绩效计算方式 计算方式一是 A类20块 B类15块 C类10块 每个月有保底20件的任务 先扣A类的 A类扣完如果不够就扣B类的 以此类推扣够20件为止,计算方式二 是先扣B再扣C最后扣A 我现在可以通过表格拉出来所有的每类每人的件数,这个计算列我该怎么写?通过sql语句能完成这个任务么?
回复

使用道具 举报

精彩评论9

yhdata_lyaa 显示全部楼层 发表于 2024-4-2 14:55:36
现在有哪些数据列,可以截图示例下,应该展示什么样的结果吗
回复

使用道具 举报

血斗神星青铜一 显示全部楼层 发表于 2024-4-2 15:12:36
yhdata_lyaa 发表于 2024-4-2 14:55
现在有哪些数据列,可以截图示例下,应该展示什么样的结果吗

屏幕截图 2024-04-02 150850.png 这是原始数据 有两个绩效类型 分别是宁波整箱操作和宁波整箱单证  宁波整箱操作要求按照一票到底自拉自报-一票到底代拉代报-仅代拉代报-合作自拉自报-合作代拉代报的顺序扣20票 宁波整箱单证要求按照 合作自拉自报-合作代拉代报-仅代拉代报 的顺序扣20票
回复

使用道具 举报

血斗神星青铜一 显示全部楼层 发表于 2024-4-2 15:13:23
yhdata_lyaa 发表于 2024-4-2 14:55
现在有哪些数据列,可以截图示例下,应该展示什么样的结果吗

最后的结果就是求绩效值的总和
回复

使用道具 举报

美滋滋白银二 显示全部楼层 发表于 2024-4-2 15:26:01
我已经听晕在厕所 。。。。
回复

使用道具 举报

yhdata_lyaa 显示全部楼层 发表于 2024-4-2 15:53:12
A类20块 B类15块 C类10块  在一个字段的吗,行不通呢
回复

使用道具 举报

血斗神星青铜一 显示全部楼层 发表于 2024-4-2 16:56:11
yhdata_lyaa 发表于 2024-4-2 15:53
A类20块 B类15块 C类10块  在一个字段的吗,行不通呢

那帮我解决个sql问题吧   
    CASE
        WHEN `类` = '一票到底自拉自报' AND SUM(`值`) > 20 THEN (SUM(`值`)-20)
        WHEN `类` = '一票到底自拉自报' AND SUM(`值`) <= 20 THEN 0
                                WHEN `类` = '一票到底代拉代报' THEN
            CASE
                WHEN (SELECT SUM(`值`) FROM zh_nbty.`单证` WHERE `类` = '一票到底自拉自报')) + SUM(`值`) > 20 THEN
                    (SELECT SUM(`值`) FROM zh_nbty.`单证` WHERE `类` = '一票到底自拉自报') + SUM(`值`) - 20
                ELSE
                    0
            END
        ELSE  SUM(`值`)
    END AS 值


我想用sql语句完成上面的那个筛选 不过有个地方一直搞不定  WHERE `类` = '一票到底自拉自报' 这把所有的月份的数据都加进去了 我想只和当月的那个值相加怎么弄?
回复

使用道具 举报

yhdata_yzm 显示全部楼层 发表于 2024-4-2 17:48:35
血斗神星 发表于 2024-4-2 16:56
那帮我解决个sql问题吧   
    CASE
        WHEN `类` = '一票到底自拉自报' AND SUM(`值`) > 20 THEN  ...

加上过滤不就行了吗
回复

使用道具 举报

血斗神星青铜一 显示全部楼层 发表于 2024-4-7 08:50:04
我在sql里面写了一段sql解决了这个问题,思路是按条件筛选前二十调并求和:SELECT
    年月,
    '宁波整箱绩效组' AS 绩效组,
    '宁波整箱操作' AS 绩效类型,
    人,
    '宁波' AS 项,
    '宁波整箱票数' AS 目,
    '每月扣减数字' AS 类,
    NULL AS 别,
    -1.00 AS 绩效系数,
    NULL AS 固定补贴,
    SUM(绩效系数) AS 值
FROM (
    SELECT
        年月,
        人,
        绩效系数,
        CASE
            WHEN 类 = '一票到底自拉自报' THEN 1
            WHEN 类 = '一票到底代拉代报' THEN 2
            WHEN 类 = '仅代拉代报' THEN 3
            WHEN 类 = '合作自拉自报' THEN 4
            WHEN 类 = '合作代拉代报' THEN 5
            ELSE 6
        END AS 排序值,
        @row_number := IF(@prev_year_month_person = CONCAT(年月, '_', 人), @row_number + 1, 1) AS row_num,
        @prev_year_month_person := CONCAT(年月, '_', 人)
    FROM
        zh_nbty.单证,
        (SELECT @row_number := 0, @prev_year_month_person := NULL) AS vars
    WHERE
        绩效类型 = '宁波整箱操作'
    ORDER BY
        年月, 人, 排序值
) AS sorted_data
WHERE
    row_num <= 20
GROUP BY
    年月, 人
回复

使用道具 举报

yhdata-lk22028新手上路 显示全部楼层 发表于 2024-4-29 09:10:19
回复

使用道具 举报

高级模式
您需要登录后才可以回帖 登录 | 免费注册

  • 官方微信

    欢迎关注永洪服务号!收费为0,价值无限

    扫码关注
  • 新浪微博

    让每位用户轻松挖掘数据价值!

    访问新浪微博
  • 智能客服
50W

会员等你来哦

Copyright   ©2012-2024  北京永洪商智科技有限公司  (京ICP备12050607) 京公网安备110110802011451号 |《永洪社区协议》
返回顶部