謹此內容寫給正在實施和已經實施SAPBO朋友們的,如下語句不見得都適用你們,不過觸類旁通稍加變通便可使用,不囉嗦了但願對你們有所幫助:
安全
按MRP方案查詢生產計劃
SELECT T0.MsnCode AS '計劃單號', T1.ItemCode, T2.itemname AS '產品名稱',T1.Quantity as '生產數量', T2.onhand,T2.onorder as '已下單',T1.StartDate, T1.EndDate, T1.BaseDocNum as '訂單號',T1.BaseDue as '完工日期',T1.ParentCode as '產品名' FROM OMSN T0
INNER JOIN MSN3 T1 ON T0.AbsEntry = T1.AbsEntry
INNER JOIN OITM T2 ON T2.ITEMCODE=T1.ITEMCODE
WHERE (T0.MsnCode = N'[%0]' OR '[%0]' = '') AND (T1.ItemCode = N'[%1]' OR '[%1]' = '') AND (T1.StartDate = CONVERT(DATETIME, '[%2]', 112) OR '[%2]' = '') AND T2.TREETYPE='p'ide
按倉庫查詢成品類型庫存
SELECT T0.ItemCode, T1.ItemName, T0.WhsCode, T0.OnHand, t1.u_cptype FROM OITW T0 INNER JOIN OITM T1 ON T0.ItemCode = T1.ItemCode where T0.ItemCode like '15%%' and (t1.u_cptype = '[%0]' or '[%0]' ='') and t0.whscode = '[%1]'code
按過帳日期查詢未清、已結算銷售訂單交貨信息(利潤中心中的項目查詢)
select t1.docnum, t1.DocStatus,t1.cardcode,t1.cardname,t2.prcname as '項目名稱',t1.u_pact2no,t1.comments,t0.itemcode,t0.dscription,t1.docdate,t1.docduedate,t3.shipdate,t0.quantity,t0.delivrdqty,t0.opencreqty as '未清數量', t0.freetxt as '項目名稱' from rdr1 t0
inner join ordr t1 on t1.docnum=t0.docentry
LEFT JOIN DLN1 T3 ON (T0.DOCENTRY=T3.BASEENTRY AND T0.LINENUM=T3.BASELINE)
inner join oprc t2 on t2.prccode=t0.ocrcode3 and t2.dimcode='3'
where (t2.prcname=N'[%0]' or N'[%0]'='') and t1.docdate >= '[%1]' and t1.docdate <= '[%2]'blog
按交貨期統計銷售結算與未清訂單
SELECT T0.DocNum, T0.DocStatus, T0.CardCode, T0.CardName, T0.Comments, T0.DocDate, T0.DocDueDate as '交貨日期' FROM ORDR T0 WHERE T0.CANCELED = 'N' AND T0.DocDueDate >=[%0] AND T0.DocDueDate <=[%1]ip
按交貨日期查詢交貨明細
SELECT T0.DocNum, T0.DocDate, T0.CardCode, T0.CardName, T1.ItemCode, T1.Dscription, T1.Quantity, T0.Comments FROM ODLN T0 INNER JOIN DLN1 T1 ON T0.DocEntry = T1.DocEntry WHERE T0.DocDate >=[%0] and T0.DocDate <= [%1]get
按交貨時間查詢物料交貨明細(利用利潤中心中的項目)
select t1.docnum,t1.DocStatus,t1.cardcode,t1.cardname,t2.prcname as '項目名稱',t1.u_pact2no,t1.comments,t0.itemcode,t0.dscription,t1.docdate,t1.docduedate,t3.shipdate,t0.quantity,t0.delivrdqty,t0.opencreqty as '未清數量',t0.ocrcode3 as '項目代碼' from dln1 t0
inner join odln t1 on t1.docnum=t0.docentry
LEFT JOIN rdr1 T3 ON (T0.DOCENTRY=T3.BASEENTRY AND T0.LINENUM=T3.BASELINE)
inner join oprc t2 on t2.prccode=t0.ocrcode3 and t2.dimcode='3'
where (t2.prcname=N'[%0]' or N'[%0]'='') AND (t1.docduedate >='[%1]' and t1.docduedate <='[%2]')qt
按默認倉庫查詢成品類型庫存
SELECT T0.ItemCode, T1.ItemName, T0.WhsCode, T0.OnHand, t1.u_cptype FROM OITW T0 INNER JOIN OITM T1 ON T0.ItemCode = T1.ItemCode and t1.dfltwh=t0.whscode where T0.ItemCode like '15%%' and (t1.u_cptype = '[%0]' or '[%0]' ='')產品
按時間查詢未清、已結算銷售訂單(利用利潤中心中的項目)
select t1.docnum, t1.DocStatus,t1.cardcode,t1.cardname,t2.prcname as '項目名稱',t1.u_pact2no,t1.comments,t0.itemcode,t0.dscription,t1.docdate,t1.docduedate,t3.shipdate,t0.quantity,t0.delivrdqty,t0.opencreqty as '未清數量', t0.freetxt as '項目名稱' from rdr1 t0
inner join ordr t1 on t1.docnum=t0.docentry
LEFT JOIN DLN1 T3 ON (T0.DOCENTRY=T3.BASEENTRY AND T0.LINENUM=T3.BASELINE)
inner join oprc t2 on t2.prccode=t0.ocrcode3 and t2.dimcode='3'
where (t2.prcname=N'[%0]' or N'[%0]'='') and t1.docduedate >= '[%1]' and t1.docduedate <= '[%2]'it
材料領用計劃
SELECT T0.MsnCode AS '計劃單號', T1.ItemCode, T2.itemname AS '產品名稱',T1.Quantity as '生產數量', T2.onhand,T2.onorder as '已下單',T1.StartDate, T1.EndDate, T1.BaseDocNum as '訂單號',T1.BaseDue as '完工日期',T1.ParentCode as '產品名' FROM OMSN T0
INNER JOIN MSN3 T1 ON T0.AbsEntry = T1.AbsEntry
INNER JOIN OITM T2 ON T2.ITEMCODE=T1.ITEMCODE
WHERE (T0.MsnCode = N'[%0]' OR '[%0]' = '') AND (T1.ItemCode = N'[%1]' OR '[%1]' = '') AND (T1.StartDate = CONVERT(DATETIME, '[%2]', 112) OR '[%2]' = '') AND T2.TREETYPE='N'io
查詢定期交貨銷售訂單
select t0.docnum as rnum,t0.cardcode,t0.cardname,t0.comments,t0.docduedate as rduedate,t1.linenum,t2.docnum as nnum,t2.docduedate as nduedate
into #a1 from ordr t0
inner join rdr1 t1 on t1.docentry=t0.docnum
inner join odln t2 on t1.trgetentry=t2.docnum
where t0.DocStatus='C' and T0.DocDueDate >=[%2] and T0.DocDueDate <=[%1] and T2.DocDueDate<=T0.DocDueDate
select * into #a2 from #a1 t3
where not exists
(select 1 from #a1 where rnum=t3.rnum and cardcode=t3.cardcode and cardname=t3.cardname and comments=t3.comments and rduedate=t3.rduedate
and nduedate>t3.nduedate)
select * from #a2 t4
where not exists
(select 1 from #a2 where rnum=t4.rnum and cardcode=t4.cardcode and cardname=t4.cardname and comments=t4.comments and rduedate=t4.rduedate
and linenum>t4.linenum)
drop table #a1
drop table #a2
查詢交貨物料明細
SELECT T0.DocNum, T0.DocStatus, T0.DocDate, T0.CardCode, T0.CardName, T0.DocTotal, T0.GroupNum, T0.SlpCode AS '採購員', T1.ItemCode, T1.Dscription, T1.Quantity, T1.Price AS '未稅單價', T1.LineTotal AS '未稅行總計', T1.PriceAfVAT AS '含稅單價', T1.GTotal,T0.Comments FROM OPDN T0 INNER JOIN PDN1 T1 ON T0.DocEntry = T1.DocEntry WHERE T0.CANCELED<>'Y'
根據註釋內容查單據
SELECT T0.DocNum, T0.DocDate, T0.CardName, T0.Comments, T1.ItemCode, T1.Dscription, T1.Quantity, T1.WhsCode FROM ODLN T0 INNER JOIN DLN1 T1 ON T0.DocEntry = T1.DocEntry WHERE T0.Comments Like '%%[%0]%%' AND T0.CANCELED = 'N'
查詢生產訂單類型信息
SELECT T0.DocNum, T0.ItemCode, T0.Status, T0.Type, T0.PlannedQty, T0.CmpltQty, T0.PostDate, T0.DueDate, T0.OriginAbs, T0.Comments, T0.Warehouse, T0.WOR1Count, T0.Printed FROM [dbo].[OWOR] T0 WHERE T0.Status =[%0] and T0.Type =[%1]
查詢逾期交貨的銷售訂單
select t0.docnum as rnum,t0.cardcode,t0.cardname,t0.comments,t0.docduedate as rduedate,t1.linenum,t2.docnum as nnum,t2.docduedate as nduedate
into #a1 from ordr t0
inner join rdr1 t1 on t1.docentry=t0.docnum
inner join odln t2 on t1.trgetentry=t2.docnum
where t0.DocStatus='C' and T0.DocDueDate >=[%2] and T0.DocDueDate <=[%1] and T2.DocDueDate>=T0.DocDueDate
select * into #a2 from #a1 t3
where not exists
(select 1 from #a1 where rnum=t3.rnum and cardcode=t3.cardcode and cardname=t3.cardname and comments=t3.comments and rduedate=t3.rduedate
and nduedate>t3.nduedate)
select * from #a2 t4
where not exists
(select 1 from #a2 where rnum=t4.rnum and cardcode=t4.cardcode and cardname=t4.cardname and comments=t4.comments and rduedate=t4.rduedate
and linenum>t4.linenum)
drop table #a1
drop table #a2
低於安全庫存物料查詢
SELECT T0.ItemCode, T1.ItemName, T0.WhsCode, T0.OnHand, T0.IsCommited as '已承諾', T0.OnOrder ,T0.MinStock,T1.SWW, T1.LeadTime, T1.PurPackUn, T1.MinOrdrQty FROM OITW T0 INNER JOIN OITM T1 ON T0.ItemCode = T1.ItemCode and t1.dfltwh=t0.whscode where T0.OnHand < t0.minstock
請購及時率
select t1.docnum 採購訂單號,t2.itemname 採購物料,t0.quantity 請購數量,t0.shipdate 需貨日期,(DATEDIFF(day,t0.docdate ,t0.shipdate)) 請購天數, (DATEDIFF(day,t0.docdate ,t3.docdate)) 實際到貨天數,t3.quantity 實際到貨數量,(t3.quantity/t0.quantity)*100 達成率 from por1 t0 inner join opor t1 on t1.docentry=t0.docentry inner join oitm t2 on t2.itemcode=t0.itemcode inner join pdn1 t3 on t3.baseentry=t0.docentry and t3.baseline=t0.linenum where t0.docdate >=N'[%0]' AND t0.docdate <=N'[%1]'
生產訂單逾期查詢
SELECT T0.DocNum as '生產訂單號', T0.ItemCode, T0.Status, T0.PlannedQty as '計劃數量', T0.CmpltQty as '已完工數量', T0.PostDate as '下達日期', T0.DueDate as '計劃完工日期' FROM OWOR T0 WHERE T0.CmpltQty < T0.PlannedQty AND T0.DueDate <=Getdate() AND T0.Status <> 'c'
生產入庫信息
SELECT T0.DocNum, T0.ItemCode, T1.ITEMNAME,T0.Status, T0.Type, T0.PlannedQty, T0.CmpltQty, T0.PostDate, T0.DueDate, T0.Comments, T0.CloseDate, T0.U_project,T0.U_scddfl, T0.U_thdh, T0.U_hth FROM OWOR T0 INNER JOIN OITM T1 ON T0.ItemCode = T1.ItemCode where T0.Status <>'C' and T0.ItemCode like '15%%' and T0.Type <> 'D' AND T0.CmpltQty <> 0
統計區間段內所交生產訂單及時率
declare @f datetime
select @f = t0.closedate from owor t0 where t0.closedate = '[%0]'
declare @l datetime
select @l = t0.closedate from owor t0 where t0.closedate = '[%1]'
declare @total numeric
select @total = (select sum(c1)from (select count(distinct docnum) as c1 from OWOR WHERE CloseDate is not null and closedate>=@f and closedate<=@l )as tmp )
select @f 開始統計時間,@l 統計結束時間,count(distinct docnum) 按時交貨數,@total 總交貨數,count(distinct docnum)/@total*100 按時交貨率
from OWOR WHERE CloseDate is not null and datediff(d, CloseDate ,DueDate) >=-1
and closedate>=@f and closedate<=@l
外協物料出庫統計
SELECT t0.itemcode as itemcode,sum(t0.inqty) as qty,t3.u_ssupp as ssupp into #a1 from oinm t0 inner join oitw t2 on t2.itemcode=t0.itemcode and t2.whscode=t0.warehouse inner join owtr t3 on t3.docnum=t0.createdby where t0.transtype='67'and t0.warehouse='18' and t3.u_ssupp='[%0]' and t0.inqty!='0' group by t0.itemcode,t3.u_ssupp SELECT t0.itemcode as itemcode,sum(-t0.outqty) as qty,t4.comments as ssupp into #a2 from oinm t0 inner join oitw t2 on t2.itemcode=t0.itemcode and t2.whscode=t0.warehouse inner join ign1 t3 on t3.docentry=t0.createdby inner join owor t4 on t4.docnum=t3.baseref where t0.transtype='59'and t0.warehouse='18' and t4.comments='[%0]' and t0.outqty!='0' group by t0.itemcode,t4.comments select #a1.itemcode,#a1.qty,#a1.ssupp into #a3 from #a1 union (select #a2.itemcode,#a2.qty,#a2.ssupp from #a2) select t0.itemcode,t1.itemname,sum(t0.qty) as qty from #a3 t0 inner join oitm t1 on t1.itemcode=t0.itemcode group by t0.itemcode,t1.itemname drop table #a1 drop table #a2 drop table #a3
物料默認倉庫庫存信息 SELECT T0.ItemCode, T1.ItemName, T0.WhsCode, T0.OnHand, T0.IsCommited as '已承諾', T0.OnOrder ,T0.MinStock,T1.SWW, T1.LeadTime, T1.PurPackUn, T1.MinOrdrQty,t1.u_cptype,t1.u_bcptype FROM OITW T0 INNER JOIN OITM T1 ON T0.ItemCode = T1.ItemCode and t1.dfltwh=t0.whscode