Ver Mensaje Individual
  #1 (permalink)  
Antiguo 21/06/2017, 19:05
head777
 
Fecha de Ingreso: octubre-2008
Mensajes: 101
Antigüedad: 16 años, 2 meses
Puntos: 1
Pregunta Problemas con el WHERE CASE WHEN

Buenas noches.

Pido de su valiosa colaboracion, 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 ningun 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 ningun registro.

Que estare haciendo mal?

Me podrian ayudar por favor.

Desde ya muchas gracias, y cualquier duda favor avisar para poder ampliar.