Ver Mensaje Individual
  #9 (permalink)  
Antiguo 10/06/2014, 13:02
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

Gracias por responder, despues de tanto indagar y leer busque otra alternativa para poder obtener el resultado deseado, pero antes voy a tratar de explicar lo que quise obtener con la consulta anterior.

Este es el query anterior:

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'
  5.      AND C_Invoice.AD_Client_ID IN (0, 1000000)
  6.      AND C_Invoice.DocStatus IN ('VO', 'RE')
  7.      AND (CASE '@XX_TipoRetencion@'
  8.               WHEN 'IV'
  9.                   THEN     XX_NRO_COMPROBANTE IS NOT NULL
  10.                        AND XX_NRO_COMPROBANTE <> ' '
  11.               WHEN 'IS'
  12.                   THEN     XX_NRO_COMPROBANTEISLR IS NOT NULL
  13.                        AND XX_NRO_COMPROBANTEISLR <> ' '
  14.           END
  15.          )
  16. ORDER BY C_Invoice.DocumentNo DESC

Con esto lo que quería que hiciera es que cuando el valor de mi variable @XX_TipoRetencion@ fuese IV en la clausula WHERE tomara como condición lo siguiente XX_NRO_COMPROBANTE IS NOT NULL AND XX_NRO_COMPROBANTE <> ' ' en caso contrario tomara este XX_NRO_COMPROBANTEISLR IS NOT NULL AND XX_NRO_COMPROBANTEISLR <> ' ', como no lo pude obtener así como en el PostgreSQL realice otro método donde si me funcionó.

El query es el siguiente:

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'
  5.      AND C_Invoice.AD_Client_ID IN (0, 1000000)
  6.      AND C_Invoice.DocStatus IN ('VO', 'RE')
  7.      AND (
  8.             ('@XX_TipoRetencion@'='IV' AND XX_NRO_COMPROBANTE IS NOT NULL AND XX_NRO_COMPROBANTE <> ' ')
  9.             OR
  10.             ('@XX_TipoRetencion@'='IS' AND XX_NRO_COMPROBANTEISLR IS NOT NULL AND XX_NRO_COMPROBANTEISLR <> ' ')
  11.          )
  12. ORDER BY C_Invoice.DocumentNo DESC

Estoy agradecido por la ayuda y el interes sobre este tema.

Saludos.