Problemas con "Where Case When..."
Pido de su valiosa colaboración, para que me ayuden a resolver este problema en SQL.
Actualmente estoy haciendo una consulta que me regresa los pagos recibidos con su respectiva tasa de cambio, con el que el pago fue realizado.
Para ello lo hago de la siguiente forma:
Este primer select me permite sacar las tasas de cambio sin ningún problema.
Código:
SELECT E.sell_rate FROM CURRENCY_EXCHANGE E, Cash_Receipt P WHERE Convert(varchar(10),CONVERT(date,P.Create_Date,106),103) = CASE WHEN Convert(varchar(10),CONVERT(date,E.effective_date,106),103) = Convert(varchar(10),CONVERT(date,P.Create_Date,106),103) THEN Convert(varchar(10),CONVERT(date,E.effective_date,106),103) ELSE Convert(varchar(10),CONVERT(date,P.Create_Date,106),103) END
El problema se origina, cuando hago este select y lo anido para sacar otra informacion de otras tablas-
Código:
Select C.Id, Convert(varchar(10), CONVERT(date, P.Create_Date,106),103) Create_Date, --- Incluyo la Tasa de Cambio--------------------------------------------------------------------------------------------------- ( SELECT E.sell_rate FROM CURRENCY_EXCHANGE E WHERE Convert(varchar(10),CONVERT(date,P.Create_Date,106),103) = CASE WHEN Convert(varchar(10),CONVERT(date,E.effective_date,106),103) = Convert(varchar(10),CONVERT(date,P.Create_Date,106),103) THEN Convert(varchar(10),CONVERT(date,E.effective_date,106),103) ELSE Convert(varchar(10),CONVERT(date,P.Create_Date,106),103) END ) as Tasa --------------------------------------------------------------------------------------------------------------------------------- from Customer C, Cash_Receipt P, cash_receipt_line Det, Receivable R where C.ID = P.CUSTOMER_ID And P.Check_id = Det. Check_Id And P.Customer_Id = Det.Customer_Id And R.Invoice_Id = Det.Invoice_Id And P.Status = 'A' Group by C.Id, P.Create_Date
En la primer consulta me regresa las tasas, pero cuando hago el anidado, no me regresa ningún registro.
¿Qué estaré haciendo mal?