У меня есть таблица AllocatedStock, содержащая номер дела (известный как TPND) и количество. Мне нужно выбрать список запаса товара, но представить его с номером товара (известный как TPNB), а не с номером дела. У меня также есть таблица ProductLookup, которая содержит все TPNB и TPND.
AllocatedStock
Идентификатор AllocatedStockID
TPND int
Количество int
ProductLookup
Идентификатор ProductLookupID
TPND int
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, - это получить TPNB для TPND, который у меня есть в таблице AllocatedStock. Есть ли способ получить объединение, чтобы выбрать только 1-й матч? Проблема, с которой я столкнулся в настоящее время, заключается в том, что для TPND, в которых есть повторяющаяся строка в таблице ProductLookup, я получаю двойное значение количества.
Буду благодарен за любую помощь,
Спасибо
Rob.