select 销售日期,产品代码
,sum(销售数量)
,(select sum(入库数量)
from 入库表
where 产品代码 = T.产品代码
and datediff(day,入库日期,T.销售日期) = 0
)
,(select sum(产品库存数量)
from 产品表
where 产品代码 = T.产品代码)
+
(select sum(入库数量)
from 入库表
where 产品代码 = T.产品代码
and datediff(day,入库日期,T.销售日期) >= 0
)
-
(select sum(销售数量)
from 销售表
where 产品代码 = T.产品代码
and datediff(day,销售日期,T.销售日期) >= 0
) from 销售表 T
group by 销售日期,产品代码
,sum(销售数量)
,(select sum(入库数量)
from 入库表
where 产品代码 = T.产品代码
and datediff(day,入库日期,T.销售日期) = 0
)
,(select sum(产品库存数量)
from 产品表
where 产品代码 = T.产品代码)
+
(select sum(入库数量)
from 入库表
where 产品代码 = T.产品代码
and datediff(day,入库日期,T.销售日期) >= 0
)
-
(select sum(销售数量)
from 销售表
where 产品代码 = T.产品代码
and datediff(day,销售日期,T.销售日期) >= 0
) from 销售表 T
group by 销售日期,产品代码
select (case when T.销售日期 is null then 入库表.入库日期 else T.销售日期 end)
,产品表.产品代码
,sum(T.销售数量)
,sum(入库表.入库数量)
,sum(产品库存数量)
+
(select sum(入库数量)
from 入库表
where 产品代码 = T.产品代码
and datediff(day,入库日期,T.销售日期) >= 0
)
-
(select sum(销售数量)
from 销售表
where 产品代码 = T.产品代码
and datediff(day,销售日期,T.销售日期) >= 0
)
from 销售表 T full outer join 入库表
on T.产品代码 = 入库表.产品代码
and datediff(day,T.销售日期,入库表.入库日期) = 0 right join 产品表 on 产品表.产品代码 = T.产品代码
group by (case when 销售表.销售日期 is null then 入库表.入库日期 else 销售表.销售日期 end),产品表.产品代码