【发布时间】:2010-02-19 10:18:51
【问题描述】:
我有一个 AllocatedStock 表,其中包含一个案例编号(称为 TPND)和一个数量。我需要选择一个产品库存列表,但使用产品编号(称为 TPNB)而不是案例编号。我还有一个 ProductLookup 表,其中包含所有 TPNB 和 TPND。
分配库存
AllocatedStockID 身份
TPND 整数
数量说明
产品查找
ProductLookupID 身份
TPND 整数
TPNB int
有多种产品类型 (TPNB) 可以在不止一个案例类型 (TPND) 中提供。这需要的结果是持有的每种产品类型的总数,我使用了 sum() 函数,如下所示:
select TPNB, sum(AllocatedQty) as 'QTY'
from integration.ProductLookup as PL
inner join dbo.AllocatedStock as AStock
on PL.TPND = AStock.TPND
group by TPNB
不幸的是,ProductLookup 表包含一些重复的行(无法清除的历史错误数据),其中一行包含与另一行相同的 TPND 和 TPNB。我唯一需要加入 ProductLookup 表的就是获取我在 AllocatedStock 表中的 TPND 的 TPNB。有没有办法让加入只选择第一场比赛?我目前遇到的问题是,对于在 ProductLookup 表中有重复行的 TPND,我会返回两倍的数量值。
如果有任何帮助,将不胜感激,
谢谢
罗伯。
【问题讨论】:
标签: sql sql-server-2005 tsql