SQL监控产品数量的增减
我正在用VB.net编写一个简单的应用程序,我被一条SQL语句卡住了。假设我有以下表格和一些示例数据 产品表带有SQL监控产品数量的增减,sql,sql-server,Sql,Sql Server,我正在用VB.net编写一个简单的应用程序,我被一条SQL语句卡住了。假设我有以下表格和一些示例数据 产品表带有属性,产品ID产品名称,类别ID,单价,现有数量 ProductId Name UnitPrice QTYonaHand 001 XYZ 3 25 。我想跟踪我拥有的物品数量的增减。这些是使产品现有数量增加或减少的一些交易 BillDetails表带有属性BillNo,Productid,数量,价格-表示从供应商处购买,并将增加数量 Bi
属性
,产品ID
产品名称,类别ID
,单价
,现有数量
ProductId Name UnitPrice QTYonaHand
001 XYZ 3 25
。我想跟踪我拥有的物品数量的增减。这些是使产品现有数量增加或减少的一些交易
BillDetails表带有属性BillNo
,Productid
,数量
,价格
-表示从供应商处购买,并将增加数量
BillNo ProductId Qty Price
01 001 36 3
InvoiceDetails表带有属性InvoiceId
,Productid
,数量
,价格
-表示对客户的销售,并将减少数量
InvoiceNo ProductId Qty Price
10 001 6 4
12 001 5 4.5
我的目标是编写一个返回表的SQL语句
产品详细信息
例如,产品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
提前谢谢 这已经成功了
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
但是我如何才能添加一个运行余额计算列请显示I)输入表的样本数据,ii)您到目前为止尝试了什么。您如何知道账单和发票的日期?它们不在输入中,但在输出中。InvoiceDetails表与具有“InvoiceNo”、“InvoiceDate”、“CustomerId”等属性的发票表有关系。我将在那里获取InvoiceDate。同样,BillDetails表与BillsTable有关系,BillsTable具有“BillNo”、“BillDate”、“VendorId”等属性