2017-04-18 39 views
0

我正在VB.net中編寫一個簡單的應用程序,並且我被困在一個SQL語句中。比方說,我有一些樣本數據SQL監視增加和減少產品數量

產品表attributesProductIDProductNameCategoryIDUnitPrice在下表中,QuantityOnhand

ProductId Name UnitPrice QTYonaHand 
001  XYZ 3   25 

。我想跟蹤我擁有的物品數量的增加和減少。這些是使產品的QuantityOnhand增加或減少的一些交易。

BillDetails表具有屬性BillNoProductidQtyPrice - 從供應商表示購買,並會增加量

BillNo ProductId Qty  Price 
    01  001   36  3 

InvoiceDetails表具有屬性InvoiceIdProductidQtyPrice - 表示銷售客戶,並會減少數量。

InvoiceNo  ProductId  Qty Price 
    10    001   6  4 
    12    001   5  4.5 

我的目標是編寫返回表

產品詳情

對於示例產品XYZ

Type  Date   Ref  Qty  OnHand 
Bill  4/15/2017 01  36   36 
Invoice 4/16/2017 10  -6   30 
Invoice 4/17/2017 12  -5   25 

在此先感謝SQL語句!

+0

請告訴我)輸入表的樣本數據,II)你有什麼迄今爲止嘗試過。 –

+0

你怎麼知道賬單和發票的日期?它們不在您的輸入中,而是在您的輸出中。 – BeanFrog

+0

InvoiceDetails表與**發票表**有關係,這些表具有'發票號','發票日期','客戶ID'等屬性,我將在那裏獲得發票日期。 BillDetails表與Bill Bill,'BillDate','VendorId'具有關係** ** BillsTable **, –

回答

0

這做的伎倆

Select BILLDATE AS DATE, 'BILL' as Type, B.BILLno as Ref, BD.QTY as QTY from Bill B 
inner join BILLDETAILS BD 
on 
B.BILLno = BD.[BILLno] 
where BD.ProductId = 001 

UNION ALL 

Select [Invoice Date] AS DATE , 'Invoice' as Type, S.[invoice no] as Ref, D.QTY * -1 as QTY from SALESINVOICE S 
inner join SalesInvoiceDetails D 
on 
S.[Invoice No] = D.[Invoice NO] 
where d.ProductId = 001 
ORDER BY DATE ASC 

enter image description here

但我怎麼能添加一個運行平衡計算列