有五个表
Items
(ItemNo,productName)ProductBatch
(productBatchId,ItemNo,batchName,purchaseRate)DamageStock
(AdjustmentId,date,description)DamageStockItem
(damageStockDetailsId,AdjustmentId,productBatchId)StockPosting
(serialNumber,productBatchId,outwardQuantity,voucherType)。我的目标是通过此查询从上表中检索每个损坏库存项目的所有信息:
select
P1.ItemNo, B1.productBatchId, S1.serialNumber,
P1.productName, S1.outwardQuantity, DS.damageStockDetailsId
FROM
Items AS P1
INNER JOIN
ProductBatch AS B1 ON P1.ItemNo = B1.ItemNo
INNER JOIN
StockPosting AS S1 ON B1.productBatchId = S1.productBatchId
INNER JOIN
DamageStockItem as DS on DS.productBatchId = B1.productBatchId
INNER JOIN
DamageStock AS MASTER1 ON MASTER1 .AdjustmentId = DS.ItemAdjustmentId
WHERE
S1.voucherType = 'Damage Stock'
AND DS.ItemAdjustmentId = '10001'
但它显示damageStockDetailsId
的重复值,这是DamageStockItem
表的主键,我不知道这些表之间的关系是否存在任何问题,或者我也解决了这个问题当我在StockPosting表和DamageStock之间建立关系时出现问题,我将StockPosting表的主键作为外键放在DamageStockItem中,并且没有显示任何重复值。我想知道这种关系是正确的还是没有。我需要你关于这个问题的想法。
答案 0 :(得分:0)
你的表DamageLogItem(或DamageStockDetails,无论它叫什么),你可以在每个AdjustmentId上有几个damageStockDetailsId。
由于那些连接到AdjustmentId,你也应输出它,以查看(看似相同)damageStockDetailsIds所属的位置。