Cómo obtener valores de otra tabla según los valores de una columna en SQL.
Desde la consulta a continuación:
SELECT [BusinessDate],[Identifier],[Rate]
FROM [JAM].[dbo].[FXHistory]
WHERE BusinessDate = '2021-11-26'
Tengo esta salida:
[![enter image description here][1]][1]
[![FXHistory][1]][1]
Desde esta consulta:
SELECT
[ProductID],[ProductIDType],[CloseDate],[Last]
FROM [JAM].[dbo].[PricingHistory]
WHERE [ProductID] IN ('PAJAU ID Equity', 'PAJAE ID Equity', 'PAJKU ID Equity', 'PAJKE ID Equity', 'PAJMU ID Equity')
AND [CloseDate] BETWEEN '2021-11-26' AND '2021-11-26'
ORDER BY CloseDate;
Tengo esta salida:
[![enter image description here][1]][1]
[![PricingHistory][1]][1]
Cuando el cuarto carácter de ProductID sea “E”, quiero agregar la tasa “EURJPY”, y cuando termine con “U”, agregar la tasa “USDJPY”. Algo como esto:
ProductID Acciones Último Tasa
PAJAE ID Equity 132425 265 128
PAJAU ID Equity 53364 126 113
¿Cómo puedo hacer esto?
davy.ai
Para lograr esto, puedes utilizar una declaración condicional (CASE WHEN) en tu declaración SELECT para agregar la tasa adecuada basada en la condición que especificaste. Aquí tienes un ejemplo de consulta que debería funcionar:
En esta consulta, utilizamos una LEFT JOIN con la tabla FXHistory para obtener las tasas adecuadas para cada ProductID. Luego, en la declaración SELECT, utilizamos una declaración CASE WHEN para agregar la tasa adecuada basada en las condiciones que especificaste. Por último, ordenamos los resultados por CloseDate y ProductID.
Nota: la consulta anterior asume que solo hay un registro en la tabla FXHistory para cada combinación de BusinessDate e Identifier. Si este no es el caso, es posible que debas agregar una condición adicional a la declaración JOIN (por ejemplo, AND [FXHistory].[Rate] = MAX([FXHistory].[Rate])).