-- Indexed View: https://msdn.microsoft.com/en-us/library/ms191432(v=sql.110).aspx
CREATE VIEW [dbo].[view_OneMonthFluctuation] AS
with C1 as(
select 配舱单信息表.配舱确认单号,单证确认装箱日期,总箱量,订单号,OrderConfirmUserName
from 配舱单信息表 left join 配仓单明细表
on 配舱单信息表.配舱确认单号=配仓单明细表.配舱确认单号
where 单证确认装箱日期>=CONVERT(varchar(10),GETDATE()-30,120)
),
C2 as(
select 配舱确认单号,单证确认装箱日期,总箱量,[订单号] = stuff((select ',' + [订单号] from C1 t where 配舱确认单号 = C1.配舱确认单号 for xml path('')) , 1 , 1 , '')
from C1
group by 配舱确认单号,单证确认装箱日期,总箱量
--总表
),
C3 as(
select distinct 配舱确认单号,单证确认装箱日期,OrderConfirmUserName,总箱量
from C1
),
C4 as (
--从C3里取里面的一部的数据
select 单证确认装箱日期,sum(总箱量) as 生产一部
from C3
where OrderConfirmUserName ='束明飞'
group by 单证确认装箱日期
),
C5 as (
--从C3里取里面的二部的数据
select 单证确认装箱日期,sum(总箱量) as 生产二部
from C3
where OrderConfirmUserName ='汪抒涵' or OrderConfirmUserName ='陈仙逊'
group by 单证确认装箱日期
),
C6 as (
--从C3里取里面的二部的数据
select 单证确认装箱日期,sum(总箱量) as 其他
from C3
where OrderConfirmUserName ='系统管理员'
group by 单证确认装箱日期
),
C9 as(
select 单证确认装箱日期,sum(总箱量) as 排柜量
from C2
group by 单证确认装箱日期
)
--select * from C1
--select * from C4
--select C9.单证确认装箱日期,排柜量,生产二部
--from C9
--left join C6 on C9.单证确认装箱日期=C6.单证确认装箱日期
select C9.单证确认装箱日期,排柜量,生产一部,生产二部,其他
from C9
left join C4 on C9.单证确认装箱日期=C4.单证确认装箱日期
left join C5 on C9.单证确认装箱日期=C5.单证确认装箱日期
left join C6 on C9.单证确认装箱日期=C6.单证确认装箱日期