Ver Mensaje Individual
  #1 (permalink)  
Antiguo 24/01/2017, 08:53
grinch252
 
Fecha de Ingreso: julio-2013
Ubicación: Colombia
Mensajes: 11
Antigüedad: 10 años, 10 meses
Puntos: 0
De acuerdo IF dentro de select o where SQL

Buen día, acudo a su ayuda para ver si solucionamos un problema con mi consulta, estoy usando EMS Interbase/ Firebird manager Dialecto SQL 3, gracias de antemano.

Finalidad de la consulta: traer registros con código, nombres y precios de actividades, luego que al precio de las actividades se les quite un porcentaje y se pueda imprimir en otra columna, pero que a la vez el descuento se haga a tipos de registro especificados es decir, ej: para los productos que sean manzanas o mangos se quita el 50% a su precio y para el resto de productos se quita el 20%.

Tengo la siguiente consulta, que hasta el momento me quita sea el 20% o el 50 % pero a todos los productos, seria esta:

Código:
SELECT tabla1.nombrecampo, tabla2.nombrecampo, tabla3.preciofruta-(tabla3.preciofruta*0.5) AS columnadto, tabla4.nombrecampo
FROM tabla1, tabla2, tabla3, tabla4...relaciones Inner Join
WHERE condiciones para filtrar otros datos
Como dije la consulta funciona bien hasta ahí pero no se donde poner una condición o de que manera se puede modificar la consulta para que haga lo mencionado, investigue un poco y encontré la opción CASE pero no funciona en mi BD, trate de hacer un IF pero al parecer no se puede dentro del SELECT ni abajo en el WHERE aunque la verdad no se si este bien implementado, fue lo siguiente:

Código:
SELECT  tabla1.nombrecampo, tabla2.nombrecampo,
 IF(tabla3.nombrefruta = 'MANZANAS' OR tabla3.nombrefruta = 'MANGOS') THEN
   BEGIN
   tabla3.preciofruta-(tabla3.preciofruta*0.5) AS columnadto
   END
 ELSE
 BEGIN
  tabla3.preciofruta-(tabla3.preciofruta*0.2) AS columnadto
 END
FROM tabla1, tabla2, tabla3, tabla4...relaciones Inner Join
WHERE condiciones para filtrar otros datos
Espero haber sido claro y reitero agradecimientos por la atención y ayuda dispensada.