Ver Mensaje Individual
  #4 (permalink)  
Antiguo 16/06/2015, 10:32
Avatar de calakra
calakra
 
Fecha de Ingreso: septiembre-2009
Mensajes: 182
Antigüedad: 15 años, 2 meses
Puntos: 0
Respuesta: usar CASE o UNION

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 original
  1. SELECT
  2.     (t.campo4 * d.SUB * z.campo) AS alias ,t.campo1....t.campoN
  3. FROM tabla1 d,      
  4.             tabla2 t,      
  5.             tabla3 z    
  6.         WHERE d.campo1 >= @filtro AND d.campo2 <= @filtro AND d.campo3 <> "MEX"      
  7.             AND d.campo3 = t.campo3 AND d.campo1 = t.campo1 AND d.campo4 = z.campo3 AND z.campo_va = "nu_suby"
  8. UNION    
  9.     SELECT        
  10.     (t.campo4 * d.SUB2 * z.campo) AS alias ,t.campo1....t.campoN
  11.     FROM tabla1 d,      
  12.             tabla2 t,      
  13.             tabla3 z    
  14.         WHERE d.campo1 >= @filtro AND d.campo2 <= @filtro AND d.campo3 <> "MEX"      
  15.             AND d.campo3 = t.campo3 AND d.campo1 = t.campo1 AND d.campo4 = z.campo3 AND z.campo_va = "nu_suby2"
  16. UNION
  17. SELECT
  18.     (d.otrocampo * y.cierre * 10)alias ,y.campo1...campoN
  19. FROM tabla1 d,      
  20.             tabla5 y    
  21.         WHERE d.campo1 >= @filtro AND d.campo2 <= @filtro AND d.campo3 = "MEX"      
  22.             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!

Última edición por calakra; 16/06/2015 a las 10:38