工作中开发的sql总结

sql示例1:

SELECT a.AccountDate as 业务日期,
       a.tempfeeno as 业务号码,
       a.otherno    as 合同号码,
       c.riskcode as 保险产品,
       (select (case when mainpolno <> polno then mainpolno else polno end) from  ifrs17.ty_lcpol  where contno = a.otherno and riskcode = c.riskcode limit 1)  as 保单险种号码,
       a.managecom as 机构代码,
       a.managecom as 异地机构,
       a.salechnl  as 渠道代码,
       a.agentcom  as 代理机构,
       a.agentgroup as 代理人组,
       a.agentcode as 代理人编码,
       sum(c.sumactupaymoney) as 金额,
       (CASE WHEN IFNULL(sum(c.sumactupaymoney) , 0 ) > 0 THEN '正'ELSE '负' END) AS 金额符号,
       'CNY' as 币种,
       '1' as 个团标记,
      	case when (SELECT count(1) FROM ifrs17.ty_LDCODE ldc WHERE ldc.CODETYPE='BZXB' and ldc.code=d.riskcode)=0 
      		then '首期' 
      		when (SELECT count(1) FROM ifrs17.ty_LDCODE ldc WHERE ldc.CODETYPE='BZXB' and ldc.code=d.riskcode)>0 
      				and (select lcc.renewcount from ifrs17.ty_lccont lcc where lcc.contno=a.otherno)>0 AND (select lcc.renewcount from ifrs17.ty_lccont lcc where lcc.contno=a.otherno)<(SELECT othersign FROM ifrs17.ty_LDCODE ldc WHERE ldc.CODETYPE='BZXB' and ldc.code=c.riskcode) 
      		then '续期' 
      		else '首期' 
      	end as 首续期标志,
       IFNULL(TRUNCATE((SELECT TIMESTAMPDIFF( MONTH, e.signdate, e.cvalidate )/12+1),0),0) AS 保单年度,
       b.paymode as 交费方式,
       IFNULL((SELECT costcenter FROM ifrs17.ty_laagent WHERE agentcode = e.agentcode LIMIT 1 ),'0')  as 成本中心,
       IFNULL((SELECT AES_VALUE FROM aes.aes_bus_aes_mapping WHERE CODE_ID = 'mxdnbwl' AND BUS_VALUE = a.managecom LIMIT 1),'0') as 明细段,
       (select code1 from  ifrs17.ty_ldcode1 where codetype='FundSeg' AND code=(select  risktype3  from  ifrs17.ty_lmriskapp where riskcode =c.riskcode limit 1 ) ) as 资金段,
       (CASE  WHEN (SELECT AES_VALUE2  FROM aes.aes_bus_aes_mapping  WHERE CODE_ID = 'txqdandzzglqd'  AND BUS_VALUE = e.salechnl   AND e.salechnl IN ('33', '55', '11', '12')  AND BUS_VALUE2 = (SELECT AngencyType  FROM ifrs17.ty_lacom    WHERE agentcom =  e.agentcom  LIMIT 1)) IS NOT NULL THEN
                  (SELECT AES_VALUE2  FROM aes.aes_bus_aes_mapping  WHERE CODE_ID = 'txqdandzzglqd'  AND BUS_VALUE = e.salechnl   AND e.salechnl IN ('33', '55', '11', '12')   AND BUS_VALUE2 =(SELECT AngencyType   FROM ifrs17.ty_lacom    WHERE agentcom = e.agentcom LIMIT 1))
              WHEN (SELECT AES_VALUE2  FROM aes.aes_bus_aes_mapping  WHERE CODE_ID = 'txqdandzzglqd'  AND BUS_VALUE = e.salechnl   AND e.salechnl IN ('66', '99', '22', '10', '14', '13') LIMIT 1) IS NOT NULL THEN
                  (SELECT AES_VALUE2  FROM aes.aes_bus_aes_mapping  WHERE CODE_ID = 'txqdandzzglqd'  AND BUS_VALUE = e.salechnl   AND e.salechnl IN ('66', '99', '22', '10', '14', '13') LIMIT 1)
              WHEN (SELECT AES_VALUE2  FROM aes.aes_bus_aes_mapping  WHERE CODE_ID = 'txqdandzzglqd'  AND BUS_VALUE = e.salechnl   AND e.salechnl IN ('09', '77', '88')   AND BUS_VALUE2 = (SELECT agentkind    FROM ifrs17.ty_laagent  WHERE agentcode =e.agentcode  LIMIT 1)) IS NOT NULL THEN
                  (SELECT AES_VALUE2  FROM aes.aes_bus_aes_mapping  WHERE CODE_ID = 'txqdandzzglqd'  AND BUS_VALUE = e.salechnl   AND e.salechnl IN ('09', '77', '88')   AND BUS_VALUE2 =(SELECT agentkind  FROM ifrs17.ty_laagent  WHERE agentcode =e.agentcode LIMIT 1))    ELSE  '0'   END) AS 管理渠道,

       '预收保费' as 业务项目类型,
       '新单收费' as 财务项目类型,
       '业务费用'  as   收付费项目,
       'S000123' as 系统来源编码,
       '核心业务系统' as 系统来源名称,
       'C000123' as 业务分类编码,
       'Core_K_I17_0001231' as 业务场景细分编码,
       '个险新契约预收保费及保费收入确认' as 业务分类名称,
       '个险新契约预收保费' as 业务场景细分名称
FROM  ifrs17.ty_ljtempfee a,ifrs17.ty_ljtempfeeclass b,ifrs17.ty_ljapayperson c, ifrs17.ty_lmriskapp d,ifrs17.ty_lccont e
where 1=1
  and a.tempfeeno = rpad(?, 40, ' ')
  AND a.otherno = e.contno
  and a.tempfeeno = b.tempfeeno
  AND a.tempfeetype in('1')
  AND a.paymoney <> 0
  AND a.tempfeeno = c.getnoticeno
  AND c.riskcode = d.riskcode
  AND (a.paymentFlag is null or a.paymentFlag = '1')
  AND a.OnlinePayFlag = '0'
  -- AND a.paymentFlag = '0'
  -- AND e.conttype = '1'
  -- AND e.giveflag <> '1'
group by a.AccountDate , a.tempfeeno,a.otherno,c.riskcode,a.managecom,a.salechnl,a.agentcom,a.agentgroup,a.agentcode

sql示例2:

SELECT b.confirmdate as  业务日期,
       a.tempfeeno as 业务号码,
       c.grpcontno as 集体合同号码,
       a.otherno as 合同号码,
       c.polno as 保单险种号码,
       a.managecom as 机构代码,
       a.managecom as 异地机构,
       (CASE WHEN c.grpcontno='00000000000000000000' THEN (SELECT salechnl FROM  ifrs17.ty_lccont WHERE contno=c.contno) ELSE   (SELECT salechnl FROM  ifrs17.ty_lcgrpcont WHERE grpcontno = c.grpcontno limit 1) END) as 渠道代码,

       (CASE WHEN c.grpcontno='00000000000000000000' THEN(SELECT agentcom FROM  ifrs17.ty_lccont WHERE contno=c.contno limit 1) ELSE  (SELECT agentcom FROM  ifrs17.ty_lcagentcominfo WHERE policyno=c.grpcontno limit 1) END)  as 代理机构,

       (CASE WHEN c.grpcontno='00000000000000000000' THEN(SELECT agentgroup FROM  ifrs17.ty_lccont WHERE contno=c.contno limit 1) ELSE  (SELECT agentgroup FROM  ifrs17.ty_lcagenttocont WHERE policyno=c.grpcontno limit 1) END) as  代理人组,

       (CASE WHEN c.grpcontno='00000000000000000000'  THEN(SELECT agentcode FROM  ifrs17.ty_lccont WHERE contno=c.contno limit 1) ELSE   (SELECT agentcode FROM  ifrs17.ty_lcagenttocont WHERE policyno=c.grpcontno limit 1) END) as 代理人编码,
       sum(c.sumactupaymoney) as 金额,
       (CASE  WHEN IFNULL(sum(c.sumactupaymoney), 0 ) > 0 THEN '正' ELSE '负' END) AS 金额符号,
       'CNY' as 币种,
       (CASE WHEN c.grpcontno='00000000000000000000' THEN '1' ELSE '2' END) as  个团标记,

       a.paymode as 交费方式,
       IFNULL(TRUNCATE((SELECT TIMESTAMPDIFF( MONTH,(select signdate from ifrs17.ty_lcgrpcont where grpcontno = c.grpcontno   limit 1), (select cvalidate from ifrs17.ty_lcgrpcont where grpcontno = c.grpcontno   limit 1))/12+1),0),0) AS 保单年度,

       IFNULL((SELECT costcenter FROM ifrs17.ty_laagent WHERE agentcode =(CASE WHEN c.grpcontno='00000000000000000000'  THEN(SELECT agentcode FROM  ifrs17.ty_lccont WHERE contno=c.contno limit 1) ELSE   (SELECT agentcode FROM  ifrs17.ty_lcagenttocont WHERE policyno=c.grpcontno limit 1) END)  LIMIT 1 ),'0')  as 成本中心,
       IFNULL((SELECT AES_VALUE    FROM aes.aes_bus_aes_mapping  WHERE CODE_ID = 'mxdnbwl'    AND BUS_VALUE = a.policycom  LIMIT 1),  '0') as 明细段,
       (select code1 from ifrs17.ty_ldcode1 where codetype='FundSeg' AND code=d.risktype3 ) as 资金段 ,
       (case when a.managecom = a.policycom then '非集中收费'  else '集中收费' end) as  集中收付费标志,
       '新契约收费' as 业务项目类型,
       '预收保费' as 财务项目类型,
       '内部往来' as 收付费项目,
       'S000312' as 系统来源编码,
       '核心业务系统' as 系统来源名称,
       'C0026123' as 业务分类编码,
       '短险共保分期收款业务' as 业务分类名称,
       'Core_K_I17_002312' as 业务场景细分编码,
       '短期险新契约收费' as 业务场景细分名称
FROM  ifrs17.ty_ljtempfee a,ifrs17.ty_wxcontno b,ifrs17.ty_ljapayperson c, ifrs17.ty_lmriskapp d
WHERE  1=1
  and a.tempfeeno = rpad(?, 40, ' ')
  and a.otherno = b.contno
  AND a.tempfeetype in('1')
  AND a.paymoney <> 0
  -- AND a.OnlinePayFlag = '1' 
  AND a.tempfeeno = c.getnoticeno
  AND b.IsDonated = 'N'
  AND c.riskcode = d.riskcode
  AND a.managecom <> a.policycom
  -- AND (a.PaymentFlag = '1' or a.PaymentFlag is null)
  -- AND d.RISKPERIOD in('M','S') -- 长短险标志
group by b.confirmdate, a.tempfeeno,c.grpcontno,a.otherno, c.polno, a.managecom,a.paymode,d.risktype3
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值