Ver Mensaje Individual
  #2 (permalink)  
Antiguo 03/01/2005, 01:32
Avatar de Vice
Vice
 
Fecha de Ingreso: agosto-2003
Mensajes: 613
Antigüedad: 21 años, 7 meses
Puntos: 2
Yo el interbase no lo controlo, pero lo que quieres hacer no es una tarea sencilla. Si los valores son concretos y pocos, se puede hacer por medio de sql, pero si son variados o muchos no es posible. Quizá la única forma sería utilizando procedimientos almacenados.
Para el caso que te ocupa, te puedo poner un ejemplo de como hacerlo en mysql y tú lo pasas interbase:
Código:
SELECT CIUDAD.CID,sum(if (PERSONA.PID="T1",1,0)) T1,sum(if (PERSONA.PID="T2",1,0)) T2,sum(if (PERSONA.PID="T3",1,0)) T3 
FROM CIUDAD 
LEFT JOIN PERSONA ON PERSONA.CID=CIUDAD.CID
LEFT JOIN TIPO ON TIPO.TID=PERSONA.ID
GROUP BY CIUDAD.CID
De manera similar se puede hacer con un case, pero en este caso no vale la pena.
En cuanto a la suma total, no te queda más remedio que calcularla por programación, a menos que lances la misma select quitando el campo ciudad.cid y el group by.
Un saludo.
__________________
Estoy contagiado de Generación-I

Última edición por Vice; 03/01/2005 a las 01:33