lz_N_one 2020-10-26 09:37 采纳率: 0%
浏览 37

数据库语句问题,困扰好几天了,希望大佬能帮忙看看,脑子转不过来弯了

有两张表,表a 员工表,表b 员工数据明细表,
现有问题 表a 中存在对应关系,员工编号字段和代办员工字段,表b中主键为员工号,
怎么依照表a中存在的员工编号与代办员工编号的关系将表B中的数据按照表a中的关系相加

MERGE INTO (SELECT * FROM CIF_DAT_MAN_ACCT_DEPS_HIS T WHERE T.TAR_DATE = '20200910' AND T.SUM_ORG_NO='111001') T1  
  USING (SELECT A1.ATTORNEY MANAGER_NO,
                NVL(NVL(A1.BAL, 0) + NVL(A2.BAL, 0), 0) BAL,
                A1.SUM_ORG_NO,
                A1.TAR_DATE
           FROM (SELECT ATTORNEY,
                        SUM_ORG_NO,
                        TAR_DATE,
                        BAL
                   FROM (SELECT T2.EMP_NO,
                                T2.ATTORNEY,
                                T1.BAL,
                                T1.SUM_ORG_NO,
                                T1.TAR_DATE
                           FROM SYS_EMPLOYEE_HIS T2
                           LEFT JOIN CIF_DAT_MAN_ACCT_DEPS_HIS T1
                             ON T1.MANAGER_NO = T2.EMP_NO
                            AND T1.SUM_ORG_NO = T2.SUM_ORG_NO
                            AND T2.START_DATE <= '20200910'
                            AND T2.END_DATE > '20200910'
                            AND T2.ATTORNEY IS NOT NULL
                          WHERE T1.TAR_DATE = '20200910'
                            AND T1.SUM_ORG_NO='111001')
                            WHERE SUM_ORG_NO='111001') A1   
           LEFT JOIN CIF_DAT_MAN_ACCT_DEPS_HIS A2
             ON A1.ATTORNEY = A2.MANAGER_NO
            AND A1.SUM_ORG_NO = A2.SUM_ORG_NO
            AND A1.TAR_DATE = A2.TAR_DATE
            AND A1.SUM_ORG_NO = '111001' ) T2   
  ON (T1.MANAGER_NO = T2.MANAGER_NO AND T1.TAR_DATE = T2.TAR_DATE AND T1.SUM_ORG_NO=T2.SUM_ORG_NO) 
  WHEN MATCHED THEN
    UPDATE SET T1.BAL = T2.BAL
  WHEN NOT MATCHED THEN
    INSERT (
      MANAGER_NO, 
      TAR_DATE, 
      BAL, 
      LEGAL_ORG_NO, 
      SUM_ORG_NO
    )
    VALUES (
     T2.MANAGER_NO,
     T2.TAR_DATE,
     T2.BAL,
     T2.SUM_ORG_NO,
     T2.SUM_ORG_NO
    );
```![图片说明](https://img-ask.csdn.net/upload/202010/27/1603780330_651606.png)
  • 写回答

1条回答 默认 最新

  • 到底有多少个小谢 2020-10-26 10:29
    关注

    你要是实在想不出怎么一句sql解决,可以先把a、b表数据以最简单的方式查询出来,在后端用代码将a与b,员工与代表联系起来并计算
    也许这种方式比在一句sql里面绕来绕去效率更好

    评论

报告相同问题?

悬赏问题

  • ¥15 2024-五一综合模拟赛
  • ¥15 下图接收小电路,谁知道原理
  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度
  • ¥30 关于#r语言#的问题:如何对R语言中mfgarch包中构建的garch-midas模型进行样本内长期波动率预测和样本外长期波动率预测
  • ¥15 ETLCloud 处理json多层级问题
  • ¥15 matlab中使用gurobi时报错
  • ¥15 这个主板怎么能扩出一两个sata口
  • ¥15 不是,这到底错哪儿了😭