某一天的数据
日期ACCT_DT大于等于start_dt,小于end_dt
ACCT_DT between start_dt AND end_dt-1
start_dt<=to_Date('20200801','yyyyMMdd') and end_dt>to_Date('20200801','yyyyMMdd')
拉链表某段时间的最新数据 如2020/08/01到2019/08/31
要取开始日期在 8/01到8/31 之间,且结束日期要大于 8/31
结果为,其他的几条数据失效了
最终结果
取一段时间每天的拉链数据
一段时间,要group by出来每天,然后拿每天的日期去ACCT_DT between start_dt AND end_dt-1这样才能拉链到当天的数据
with s as(
select
a.ACCT_DT,
b.Setl_Transfer_Cd Setl_Transfer_Cd_fa , --'发件转运中心编码' 先对发件进行汇总
b.Setl_Transfer_Nm Setl_Transfer_Nm_fa , --'发件转运中心名称'
a.Signoff_Setl_Cd Signoff_Setl_Cd , --'签收转运中心编码'
--a.Signoff_Setl_Nm Signoff_Setl_Nm, --'签收转运中心名称'
sum(Quantity) Quantity, --件量
sum(Dlv_Out_Amt) Dlv_Out_Amt,
sum(Add_Dlv_Amt) Add_Dlv_Amt,
sum(Over_Weight_Out_Amt) Over_Weight_Out_Amt,
sum(Alone_Out_Amt) Alone_Out_Amt,
sum(Bottom_Sppt_Out_Amt) Bottom_Sppt_Out_Amt,
sum(Second_Third_Out_Amt) Second_Third_Out_Amt,
sum(Other_Out_Amt) Other_Out_Amt,
sum(Total_Amt) Total_Amt
from
(select
CAST(Bill_Audi_Dttm AS DATE FORMAT 'YYYYMMDD') ACCT_DT, -- ACCT_DT 切成年月日
trim(Send_Setl_Cd) Send_Setl_Cd , --'发件结算网点'
--Send_Setl_Nm, --'发件结算网点名称'
trim(Signoff_Setl_Cd) Signoff_Setl_Cd, --'签收结算网点'
--Signoff_Setl_Nm , --'签收结算网点名称'
sum(Quantity) Quantity, --件量
sum(Dlv_Out_Amt) Dlv_Out_Amt, --'物料派费'
sum(Add_Dlv_Amt) Add_Dlv_Amt, --'差额派费'
sum(Over_Weight_Out_Amt) Over_Weight_Out_Amt, --'超重费(出港)'
sum(Alone_Out_Amt) Alone_Out_Amt, --'单带派费(出港)'
sum(Bottom_Sppt_Out_Amt) Bottom_Sppt_Out_Amt, --'末端扶持(出港)'
sum(Second_Third_Out_Amt) Second_Third_Out_Amt, --'二三级费用(出港)'
sum(Other_Out_Amt) Other_Out_Amt, --'其他费用(出港)'
sum(Total_Amt) Total_Amt --'总金额'
from Pv_PMART_stl.shipment_setl_deli_out_dtl
where CAST(Bill_Audi_Dttm AS DATE FORMAT 'YYYYMMDD') between to_Date('20200801','yyyyMMdd') and to_Date('20200831','yyyyMMdd') --账单审核时间 带有年月日 时分秒
and substring(Shipment_No,1,6)<>'YT1332' --非同城件
and Send_Setl_Cd is not null and Signoff_Setl_Cd is not null
group by 1,2,3) a
inner join
(
select
Setl_Transfer_Cd , --'结算转运中心编码'
Setl_Transfer_Nm , --'结算转运中心名称'
Branch_Cd , --'网点编码'
Branch_Nm, --'网点名称'
start_dt,
end_dt
from Pt_PMART_CEO.dmn_org WHERE Setl_Transfer_Cd IS NOT NULL
and Org_Type_Nm='BRANCH'
--and Setl_Transfer_Cd='871906' --昆明中转中心
) b on a.Send_Setl_Cd=b.Branch_Cd --发件网点关联
AND ACCT_DT between start_dt AND end_dt-1
group by 1,2,3,4
)
select
--s.a.acct_dt,
s.Setl_Transfer_Cd_fa , --'发件转运中心编码'
s.Setl_Transfer_Nm_fa , --'发件转运中心名称'
c.Setl_Transfer_Cd , --'签收转运中心编码' --再对签收汇总
c.Setl_Transfer_Nm , --'签收转运中心名称'
sum(Quantity), --件量
sum(Dlv_Out_Amt),
sum(Add_Dlv_Amt),
sum(Over_Weight_Out_Amt),
sum(Alone_Out_Amt),
sum(Bottom_Sppt_Out_Amt),
sum(Second_Third_Out_Amt),
sum(Other_Out_Amt),
sum(Total_Amt)
from s inner join
(
select
Setl_Transfer_Cd , --'结算转运中心编码'
Setl_Transfer_Nm , --'结算转运中心名称'
Branch_Cd , --'网点编码'
Branch_Nm, --'网点名称'
start_dt,
end_dt
from Pt_PMART_CEO.dmn_org WHERE Setl_Transfer_Cd IS NOT NULL
and Org_Type_Nm='BRANCH'
) c on s.Signoff_Setl_Cd=c.Branch_Cd --签收网点关联
and ACCT_DT between start_dt AND end_dt-1
group by 1,2,3,4