Estimado Angel.Matilla, me intereso tu problema y creo que hay una opción, por supuesto no será la única ni la mejor, pero es un comienzo.
Esta solución consta de dos partes:
1) Procedimiento almacenado: Que genera un correlativo dentro de cada "PROCESO"
Proceso Fila
3 1
3 2
3 3
3 4
4 1
4 2
4 3
...
Código SQL
[-]create procedure SP_PROCESO_FILAS
returns (
proceso integer,
fila integer,
codigo integer,
votos2 integer,
total integer)
as
declare variable OldProc integer;
begin
OldProc=-1;
fila=0;
for select proceso, codigo, votos2, total
from votos
into : proceso,
:codigo,
:votos2,
:total
do
begin
if (OldProc<>proceso) then
begin
fila=0;
OldProc=proceso;
end
fila=fila+1;
suspend;
end
end
2) Consulta que utiliza el procedimiento almacenado y genera la vista de los datos según el formato requerido.
Código SQL
[-]
select a.fila,
sum(iif(A.Proceso = 3, A.Votos2,0)) Europeas,
sum(iif(A.Proceso = 4, A.Votos2,0)) Generales,
sum(iif(A.Proceso = 5, A.Votos2,0)) Autonomicas,
sum(iif(A.Proceso = 6, A.Votos2,0)) Municipales
from SP_PROCESO_FILAS a
group by a.fila
Espero te sirva, saludos cordiales