本人工作单位是一家橡塑产品制造企业,05年2月单位领导要求我开发一个生产流程数据核对表,用来稽核流程数据的准确性,其报表基本原理如下:
后续工序今日正品数 + 后续工序今日废品数 = 本工序今日正品数 + 本工序今日留存数 - 本工序昨日留存数
了解了原理后马上开工,第一次考虑用临时表:
select distinct LEFT(productid, 4) + '00' as productid into #productid from yuancaiFlow_view
where productiondate = '2004-3-1'
and productid like '01____'
go
select a.productid,
b.productname,
isnull(hj.GoodQty, 0) as hj_good,
isnull(hjtoday.qty, 0) as hj_today,
isnull(hjyesterday.qty, 0) hj_yesterday,
isnull(hj.GoodQty, 0) - isnull(hjtoday.qty, 0) + isnull(hjyesterday.qty, 0) - isnull(sx.GoodQty, 0) - isnull(sx.BadQty, 0) as hj_difference,
isnull(sx.GoodQty, 0) as sx_good,
isnull(sx.BadQty, 0) as sx_bad,
isnull(sxtoday.qty, 0) as sx_today,
isnull(sxyesterday.qty, 0) sx_yesterday,
isnull(sx.GoodQty, 0) - isnull(sxtoday.qty, 0) + isnull(sxyesterday.qty, 0) - isnull(jt.GoodQty, 0) - isnull(jt.BadQty, 0) as sx_difference,
isnull(jt.GoodQty, 0) as jt_good,
isnull(jt.BadQty, 0) as jt_bad,
isnull(jttoday.qty, 0) as jt_today,
isnull(jtyesterday.qty, 0) jt_yesterday,
isnull(jt.GoodQty, 0) - isnull(jttoday.qty, 0) + isnull(jtyesterday.qty, 0) - isnull(ph.GoodQty, 0) - isnull(ph.BadQty, 0) as jt_difference,
isnull(ph.GoodQty, 0) as ph_good,
isnull(ph.BadQty, 0) as ph_bad,
isnull(phtoday.qty, 0) as ph_today,
isnull(phyesterday.qty, 0) ph_yesterday,
isnull(ph.GoodQty, 0) - isnull(phtoday.qty, 0) + isnull(phyesterday.qty, 0) - isnull(zj.GoodQty, 0) - isnull(zj.BadQty, 0) as ph_difference,
isnull(zj.GoodQty, 0) as zj_good,
isnull(zj.BadQty, 0) as zj_bad
from #productid as a,
finishedproduct as b,
yuancaiFlow_view as hj,
basflowsubsistence as hjtoday,
basflowsubsistence as hjyesterday,
yuancaiFlow_view as sx,
basflowsubsistence as sxtoday,
basflowsubsistence as sxyesterday,
yuancaiFlow_view as jt,
basflowsubsistence as jttoday,
basflowsubsistence as jtyesterday,
yuancaiFlow_view as ph,
basflowsubsistence as phtoday,
basflowsubsistence as phyesterday,
yuancaiFlow_view as zj
where a.productid = b.productid
--hj
and hj.productiondate = '2004-3-1'
and left(a.productid, 4) *= left(hj.productid, 4)
and hj.productid like '____06'
and left(a.productid, 4) + '06' *= hjtoday.productid
and hjtoday.checkdate = '2004-3-1'
and left(a.productid,