Мне нужно объединить 2 таблицы, где первичным ключом является ссылка.
UAP = Единство производства
В первой таблице указан уровень потребления UAP за неделю
AUTO.D805DATPOR.TRP060H
Вторая таблица имеет доступный запас UAP, однако в каждой таблице UAP имеют разные имена, но они одинаковы.
AUTO.D805DATPOR.IC130M
Например, в первой таблице у меня есть UAP1, а во второй таблице это называется M1, так что в основном здесь есть ассоциация
Table1 Table2
UAP1 - M1
UAP2 - M2
UAP3 - M3
UAP4 - M4
UAP5 - M5
UAP6 - M6
UAPP - Protos
EXT - EXTR
вот запрос пока
SELECT
Reference,
UAP,
CAST(W01 AS Float) AS W01,
CAST(W02 AS Float) AS W02,
CAST(W01 / 5 AS Float) AS DailyW01,
CAST(W02 / 5 AS Float) AS DailyW02,
CAST(Stock as Float) AS Stock
FROM OPENQUERY(MACPAC,
'SELECT
A.RH6001 as Reference,
A.RH6002 as UAP,
A.RH6030 as W01,
A.RH6031 as W02,
S.LLBLT1 AS Stock
FROM AUTO.D805DATPOR.TRP060H AS A
LEFT JOIN AUTO.D805DATPOR.IC130M AS S
ON A.RH6001 = S.LLPPN
WHERE (A.RH6001 Not Like ''FS%'')
AND S.LLBLT1 <> 0')
Мне нужно только как-то сгруппировать записи по ссылке и показать правильный запас по UAP, к которому он принадлежит. Это было бы легко, если бы имена были одинаковыми, но они разные.
Есть ли способ справиться с этим, не делая много предложений IF?
Вот разделенные запросы
SELECT * FROM OPENQUERY(MACPAC,
'SELECT
IC130M.LLPPN AS Referencia,
IC130M.LLSTLC AS UAP,
IC130M.LLBLT1 AS Stock
FROM AUTO.D805DATPOR.IC130M IC130M
WHERE IC130M.LLSTLC IN (''M1'',''M2'',''M3'',''M4'',''M5'',''M6'',''EXTR'',''PROTOS'')
AND IC130M.LLBLT1 <> 0
ORDER BY IC130M.LLSTLC ASC, IC130M.LLBLT1 DESC')
это возвращает
а вот таблица потребления за неделю
SELECT * FROM OPENQUERY(MACPAC,
'SELECT TRP060H.RH6001 as Referencia,
TRP060H.RH6002 as UAP,
TRP060H.RH6030 as W01,
TRP060H.RH6031 as W02
FROM AUTO.D805DATPOR.TRP060H TRP060H
WHERE (TRP060H.RH6001 Not Like ''FS%'') ')