由于BO今天忽然不能访问,用户急需一个去年一年针对某个Item Group的料号的销售统计,只能动手写了。这次不是用Easy Query,而是直接写Oracle的SQL语句导出数据,当然了使用的是Oracle的免费开源的SQL Developer。
不过我说的重点是,针对一个销售订单行,分次出货的时候,怎么设定筛选条件?本来打算用Sequence,可是Partial Shippment每次出货的时间都不一样,可能落到2个年份,但是Sequence为0的那一行,是最后的出货日期。
经反复试验,我这里选择的是Order Line Type is Order line(tdsls.oltp.total),我使用的版本是FP3,随机找了一些数据,经测验数据正确。如果你有不同的方法,请通知我,谢谢。
<br/>-- 1 = tdsls.oltp.total<br/>-- 2 = tdsls.oltp.detail<br/>-- 3 = tdsls.oltp.backorder<br/>
最后附上代码,方便以后再次运行。以下代码中包括了注释掉的几句话,你可以简单的注释一下,导出销售详细和按料号、客户的销售汇总。直接运行下面的SQL可获得2011年的按客户的销售统计报表。
<br/>--Select A.T$orno,A.T$item,A.T$dldt,A.T$qidl,A.T$damt,A.T$ofbp,C.T$nama -- details<br/>--Select A.T$item,SUM(A.T$qidl),SUM(A.T$damt),A.T$ofbp,C.T$nama -- Group by item,bp<br/>Select A.T$ofbp,C.T$nama,SUM(A.T$qidl),SUM(A.T$damt)<br/>From Baan.Ttdsls401801 A,<br/>Baan.Ttcibd001801 B,<br/>Baan.Ttccom100801 C<br/>WHERE<br/>A.T$ofbp = C.T$bpid<br/>And A.T$item = B.T$item<br/>And B.T$citg = '031'<br/>And A.T$clyn=2<br/>-- Sequence is 0 is NOT correct!<br/>--And A.T$sqnb<>0<br/>-- Order Line Type is Order line(tdsls.oltp.total)<br/>-- 1 = tdsls.oltp.total<br/>-- 2 = tdsls.oltp.detail<br/>-- 3 = tdsls.oltp.backorder<br/>And A.T$oltp<>1<br/>And A.T$qidl<>0<br/>And A.T$dldt Between To_Date('2011-01-01 00:00:00','Yyyy-Mm-Dd Hh24:Mi:Ss') And To_Date('2012-01-01 00:00:00','Yyyy-Mm-Dd Hh24:Mi:Ss')<br/>--Order By A.T$item,A.T$dldt; --details<br/>--Group By A.T$item,A.T$ofbp,C.T$nama --Group by item,bp<br/>--Order by A.T$item,A.T$ofbp,C.T$nama --Group by item,bp<br/><br/>Group By A.T$ofbp,C.T$nama --Group by bp<br/>Order by A.T$ofbp,C.T$nama --Group by bp<br/>