Muchas gracias
matanga y
gnzsoloyo por contestar.
Uso SYBASE 15.0 y el query es el siguiente y lo explico.
En la primer columna de los dos primeros querys es un campo calculado que cambia dependiendo el filtro z.campo_va
en el tercer query cambia totalmenete el campo calculado y los siguientes campos a trar, aparte de que es un join con otra tabla.
Código SQL:
Ver originalSELECT
(t.campo4 * d.SUB * z.campo) AS alias ,t.campo1....t.campoN
FROM tabla1 d,
tabla2 t,
tabla3 z
WHERE d.campo1 >= @filtro AND d.campo2 <= @filtro AND d.campo3 <> "MEX"
AND d.campo3 = t.campo3 AND d.campo1 = t.campo1 AND d.campo4 = z.campo3 AND z.campo_va = "nu_suby"
UNION
SELECT
(t.campo4 * d.SUB2 * z.campo) AS alias ,t.campo1....t.campoN
FROM tabla1 d,
tabla2 t,
tabla3 z
WHERE d.campo1 >= @filtro AND d.campo2 <= @filtro AND d.campo3 <> "MEX"
AND d.campo3 = t.campo3 AND d.campo1 = t.campo1 AND d.campo4 = z.campo3 AND z.campo_va = "nu_suby2"
UNION
SELECT
(d.otrocampo * y.cierre * 10)alias ,y.campo1...campoN
FROM tabla1 d,
tabla5 y
WHERE d.campo1 >= @filtro AND d.campo2 <= @filtro AND d.campo3 = "MEX"
AND d.fe_con_ope = y.fe_publi AND d.campo4 LIKE "EURO%" AND y.clave = "CURNCY"
No se que tan viable es ocupar en este caso CASE ya que todo quedaría en una sentencia pero usaríamos LEFT JOIN en lugar de JOIN ya que apra cada caso se usarían varias condiciones y las tablas son de millones de registros.
Si no me di a entender espero me digan para poder explicarlo de otra forma.
De antemano muchas gracias!