显示数量和按批次编号的数量明细

时间:2019-07-16 15:15:50

标签: sql-server

我已经在T-SQL中编写了一个查询,该查询提取了StockNo,StockQty,CostPrice,BatchNo,BatchQty和StockValue。类似于库存审核报告。 TableB上存在BatchNo和BatchQty,而StockNo,StockQty,CostPrice和StockValue来自TableA。 BatchQty是批次物料的库存数量明细。因此,是的,查询返回StockNo及其相关的批次数量(如果适用)。我正在尝试编写查询,以使其显示StockQty并在其旁边显示BatchQty细分,并再次复制或引入StockValue。

我正在使用SQL 2016。

我尝试了不同的联接类型,临时表以及联合。我还研究了不同的SQL论坛,以查看是否有可能使用的解决方案。

SELECT 
TRANS_ID
STOCKNO,
BATCHMANAGED,
BATCHNO,
STOCKQTY,
BATCHQTY,
COSTPRICE,
STOCKVALUE,
FROM TABLE_A T0
FULL JOIN TABLE_B T1 ON T0.STOCKNO = T1.STOCKNO AND T0.TRANS_ID = T1_BASE_ID

我必须全力以赴,因为我需要批次和非批次的库存物料。我尝试进行的其他任何加入,都省略了某些库存项目,并且库存总值没有回到试算表余额。

下面是我当前得到的结果,它提取两次StockQty和StockValue,在某些情况下取决于BatchNo和BatchQty,提取两次以上:

StockNo BatchManaged BatchNo StockQty BatchQty  CostPrice StockValue
Item1   Y        BN0001 20  10  10.00     200
Item1   Y        BN0002 20  10  10.00     200
Item2   Y        BN0003 40  24  30.00     1200
Item2   Y        BN0004 20  16  30.00     1200
Item3   N               50      20.00     1000

                    Total             3800

这是我试图实现的输出,其中没有为每个批次编号显示StockQty和StockValue,它们只需要显示一次即可:

StockNo BatchManaged BatchNo StockQty BatchQty  CostPrice StockValue
Item1   Y        BN0001 20  10  10.00     200
Item1   Y        BN0002     10  10.00   
Item2   Y        BN0003 40  24  30.00     1200
Item2   Y        BN0004     16  30.00   
Item3   N               50  20            1000

                          Total   2400

0 个答案:

没有答案