Ver Mensaje Individual
  #5 (permalink)  
Antiguo 10/06/2014, 08:34
Avatar de jlct
jlct
 
Fecha de Ingreso: abril-2012
Ubicación: Venezuela
Mensajes: 148
Antigüedad: 12 años, 7 meses
Puntos: 19
Respuesta: ERROR ORA-00905: falta una palabra clave

La Consulta como esta actualmente es así:

Código SQL:
Ver original
  1. SELECT C_Invoice.C_Invoice_ID,NULL,C_Invoice.DocumentNo,C_Invoice.IsActive,XX_NRO_COMPROBANTE,XX_NRO_COMPROBANTEISLR
  2. FROM C_Invoice
  3. WHERE C_Invoice.DocumentNo IS NOT NULL  
  4. AND C_Invoice.IsSoTrx='N' AND C_Invoice.AD_Client_ID IN (0,1000000)
  5. AND C_Invoice.DocStatus IN ('VO','RE') AND (CASE '@XX_TipoRetencion@' WHEN 'IV' THEN XX_NRO_COMPROBANTE IS NOT NULL AND XX_NRO_COMPROBANTE <> ' '
  6. WHEN 'IS' THEN XX_NRO_COMPROBANTEISLR IS NOT NULL AND XX_NRO_COMPROBANTEISLR <> ' ' END)
  7. ORDER BY C_Invoice.DocumentNo DESC

Donde @XX_TipoRetencion@ es mi variable el cual puede tener como valor IV o IS

El case esta construido de esa manera ya que la tabla posee las columnas XX_Nro_Comprobante y XX_Nro_ComprobanteISLR pero no necesariamente ambos tienen valores, por eso el motivo de usar el CASE para mostrar las columnas por las que se quiere filtrar.

Espero me haya dado a entender.

Saludos