又一条sql

SELECT 
  jpaemploye0_.ID AS col_0_0_,
  (SELECT 
    SUM(jpaemploye1_.PAYM_AMT) 
  FROM
    EO_EMP_ADV_ITEM jpaemploye1_,
    EO_EMP_ADV jpaemploye2_ 
  WHERE jpaemploye1_.EMP_ADV_ID = jpaemploye2_.ID 
    AND jpaemploye1_.EMP_ADV_ID = jpaemploye0_.ID) AS col_1_0_,
  (SELECT 
    MAX(jpaemploye3_.CURRENCY_NAME) 
  FROM
    EO_EMP_ADV_ITEM jpaemploye3_,
    EO_EMP_ADV jpaemploye4_ 
  WHERE jpaemploye3_.EMP_ADV_ID = jpaemploye4_.ID 
    AND jpaemploye3_.EMP_ADV_ID = jpaemploye0_.ID) AS col_2_0_,
  (SELECT 
    MAX(jpapayment5_.PAYM_BILL_ID) 
  FROM
    EO_PAYM_BILL_WRITE_OFF jpapayment5_ 
  WHERE jpapayment5_.WRITTEN_OFF_BILL_ID = jpaemploye0_.ID 
    AND jpapayment5_.WRITTEN_OFF_BILL_TYPE = 'E_ADV' 
    AND jpapayment5_.PAYM_BILL_TYPE = 'E_REIM') AS col_3_0_,
  (SELECT 
    MAX(jpaemploye6_.COMPANY_NAME) 
  FROM
    EO_EMP_ADV jpaemploye6_) AS col_4_0_,
  (SELECT 
    MAX(jpaemploye7_.STAT_TYPE_NAME) 
  FROM
    EO_EMP_ADV_STAT jpaemploye7_,
    EO_EMP_ADV jpaemploye8_ 
  WHERE jpaemploye7_.EMP_ADV_ID = jpaemploye8_.ID 
    AND jpaemploye7_.EMP_ADV_ID = jpaemploye0_.ID 
    AND (jpaemploye7_.TO_DATE IS NULL)) AS col_5_0_,
  jpaemploye0_.APP_DATE AS col_6_0_,
  jpaemploye0_.APP_USER_NAME AS col_7_0_,
  jpaemploye0_.PAYEE_USER_NAME AS col_8_0_,
  (SELECT 
    MAX(jpauimsynu9_.USER_REAL_NAME) 
  FROM
    UIM_SYN_USER jpauimsynu9_ 
  WHERE jpauimsynu9_.USER_NO = jpaemploye0_.APP_USER_NAME) AS col_9_0_,
  jpaemploye0_.COMPANY_NAME AS col_10_0_,
  (SELECT 
    MAX(jpaemploye10_.CURRENCY_CODE) 
  FROM
    EO_EMP_ADV_ITEM jpaemploye10_,
    EO_EMP_ADV jpaemploye11_ 
  WHERE jpaemploye10_.EMP_ADV_ID = jpaemploye11_.ID 
    AND jpaemploye10_.EMP_ADV_ID = jpaemploye0_.ID) AS col_11_0_ 
FROM
  EO_EMP_ADV jpaemploye0_ 
WHERE jpaemploye0_.COMPANY_CODE = '3001' 
  AND jpaemploye0_.PAYEE_USER_CODE = '0007875' 
  AND jpaemploye0_.SUB_TYPE = '3' 
  AND jpaemploye0_.APP_USER_NAME = '0007875' 
  AND (
    EXISTS 
    (SELECT 
      1 
    FROM
      EO_PAYM_BILL_WRITE_OFF jpapayment12_ 
    WHERE jpapayment12_.WRITTEN_OFF_BILL_ID = jpaemploye0_.ID 
      AND jpapayment12_.WRITTEN_OFF_BILL_TYPE = 'E_ADV' 
      AND jpapayment12_.PAYM_BILL_TYPE = 'E_REIM' 
      AND jpapayment12_.PAYM_BILL_ID = jpaemploye0_.id) 
    OR NOT (
      EXISTS 
      (SELECT 
        1 
      FROM
        EO_PAYM_BILL_WRITE_OFF jpapayment13_ 
      WHERE jpapayment13_.WRITTEN_OFF_BILL_ID = jpaemploye0_.ID 
        AND jpapayment13_.WRITTEN_OFF_BILL_TYPE = 'E_ADV')
    )
  ) 
  AND 
  (SELECT 
    MAX(jpaemploye14_.STAT_TYPE) 
  FROM
    EO_EMP_ADV_STAT jpaemploye14_ 
  WHERE jpaemploye14_.EMP_ADV_ID = jpaemploye0_.ID 
    AND (jpaemploye14_.TO_DATE IS NULL)) = 'PAID' 

 

 

 

 EO_EMP_ADV               jpaemploye0_   借支单

 EO_EMP_ADV_ITEM          jpaemploye1_  明细

 EO_EMP_ADV               jpaemploye2_   

 EO_EMP_ADV_ITEM          jpaemploye3_

 EO_EMP_ADV               jpaemploye4_

 EO_PAYM_BILL_WRITE_OFF    jpapayment5_   借支报销关联关系表

 EO_EMP_ADV               jpaemploye6_

 EO_EMP_ADV_STAT          jpaemploye7_    状态

 EO_EMP_ADV               jpaemploye8_

 UIM_SYN_USER              jpauimsynu9_    用户信息

 EO_EMP_ADV_ITEM          jpaemploye10_

 EO_EMP_ADV               jpaemploye11_

 EO_EMP_ADV               jpaemploye0_

 EO_PAYM_BILL_WRITE_OFF    jpapayment12_  

 EO_PAYM_BILL_WRITE_OFF    jpapayment13_

 EO_EMP_ADV_STAT          jpaemploye14_

 

查询结果

1列    借支单ID

2列 通过借支单的ID查询的所有关联明细表中的所有付款金额总数

 SUM(PAYM_AMT)

3列 通过借支单的ID查询所有关联的明细表中币种名称的最大值

        MAX(CURRENCY_NAME)

4列 通过借支单的ID查询借支报销关联关系表中满足

        WRITTEN_OFF_BILL_TYPE = 'E_ADV'

PAYM_BILL_TYPE = 'E_REIM'

条件的对应字段的最大的字段。

   PAYM_BILL_IDMAX(jpapayment5_.PAYM_BILL_ID)

5列 查询借支单主表中申请公司名称的最大值

MAX(PAYM_BILL_ID)

6列 通过借支单的ID查询查询关联状态表中满足 处理结束日期 = null 的字段(最新 字段)数据集合中 状态类型名称 的最大值。

 MAX(STAT_TYPE_NAME)

7列 借支单的申请时间

8列 借支单的申请人

9列 借支单的收款人

10列 查询用户信息表中对应借支单的申请人等于用户信息表的用户编号

(USER_NO =APP_USER_NAME)的用户名称最大值 MAX(USER_REAL_NAME)

11列 借支单主表的公司名称

12列 通过借支单主表查询关联的所有借支单明细表中的币种名称的最大值。

MAX(.CURRENCY_CODE)

 

 

条件  

1   借支单主表的申请公司编码= 3001

2   借支单主表的收款员工编码 = 0007875

3   借支单主表的从属类型 =  无PO固定资产

4   第四个AND总为true

5   借支单对应所有明细表的状态类型最大值 = PAID

  MAX(STAT_TYPE)

转载于:https://my.oschina.net/marjeylee/blog/834633

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值