¿Interbase no tiene un condicional IF?
Porque de ser así y si no les importa que el resultado salga en columnas en lugar de filas, se podría hacer algo así sin crear una vista:
Código SQL
[-]
select
sum(if(ruta1='A', peso1, 0)) +
sum(if(ruta2='A', peso2, 0)) +
sum(if(ruta3='A', peso3, 0)) +
sum(if(ruta4='A', peso4, 0)) as rutaA,
sum(if(ruta1='B', peso1, 0)) +
sum(if(ruta2='B', peso2, 0)) +
sum(if(ruta3='B', peso3, 0)) +
sum(if(ruta4='B', peso4, 0)) as rutaB,
sum(if(ruta1='C', peso1, 0)) +
sum(if(ruta2='C', peso2, 0)) +
sum(if(ruta3='C', peso3, 0)) +
sum(if(ruta4='C', peso4, 0)) as rutaC,
sum(if(ruta1='D', peso1, 0)) +
sum(if(ruta2='D', peso2, 0)) +
sum(if(ruta3='D', peso3, 0)) +
sum(if(ruta4='D', peso4, 0)) as rutaD
from
rutas
Resultado:
Código:
rutaA rutaB rutaC ruta D
54 37 34 8
// Saludos