Ver Mensaje Individual
  #5  
Antiguo 05-11-2023
Avatar de duilioisola
[duilioisola] duilioisola is offline
Miembro Premium
 
Registrado: ago 2007
Ubicación: Barcelona, España
Posts: 1.734
Reputación: 20
duilioisola Es un diamante en brutoduilioisola Es un diamante en brutoduilioisola Es un diamante en bruto
Parece que en ningún momento filtras la tabla POBLACION. Por eso el planner la lee completamente.
Suongo que te da los resultados repetidos tantas veces como poblaciones tengas en esa tabla.

Código SQL [-]
SELECT A.Codigo, A.Nombre, RDB$GET_CONTEXT('USER_TRANSACTION', 'MUNICIPIO') Municipio,
       RDB$SET_CONTEXT('USER_TRANSACTION', 'MUNICIPIO', 
                                     (SELECT DISTINCT Municipio FROM Mesas WHERE CodPrv = B.CodPrv AND Codigo = B.Mesa))
FROM Partidos A, Resultados B, Poblacion C
WHERE 
A.CodPrv = :PrvIns AND 
A.Codigo > 0 AND 
A.CodPrv = B.CodPrv AND 
A.Codigo = B.Partido AND 
B.Proceso = :Proceso

Esto podría escribirse con JOINs de la siguiennte manera:
Código SQL [-]
SELECT A.Codigo, A.Nombre, RDB$GET_CONTEXT('USER_TRANSACTION', 'MUNICIPIO') Municipio,
       RDB$SET_CONTEXT('USER_TRANSACTION', 'MUNICIPIO', 
                                     (SELECT DISTINCT Municipio FROM Mesas WHERE CodPrv = B.CodPrv AND Codigo = B.Mesa))
FROM Partidos A 
JOIN Resultados B on A.CodPrv = B.CodPrv AND A.Codigo = B.Partido
JOIN Poblacion C on 1=1
WHERE 
A.CodPrv = :PrvIns AND 
A.Codigo > 0 AND 
B.Proceso = :Proceso

No entiendo qué es lo que buscas con las partes CONTEXT.
Responder Con Cita