我已经在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