Ver Mensaje Individual
  #1  
Antiguo 09-06-2008
sargento elias sargento elias is offline
Miembro
 
Registrado: mar 2008
Posts: 109
Reputación: 17
sargento elias Va por buen camino
Duda con consulta y firebird 2.1

Buenas tardes, tengo un par de problems.

Tengo 4 tablas. DEP con (ID,NOM),SUR con (ID,IDDEP), LLE con (ID,IDDEP,LIT,FEC) y REP(ID,IDSUR,LIT,FEC).Las claves ajenas son ID+nomtabla

Le voy a pasar por parámetros el NOM de la tabla DEP y y una fecha cualquiera. Necesito sacar la suma de los litros de LLE, la suma de los litros de REP, y la diferencia de las dos, según depósito y hasta la fecha introducida.

Esta es la solución que me han dado:

Código SQL [-]
Select Dep.Id, Isnull(LLE.SumLitLLe,0) SumLitLle, 
                  isnull(Rep.SumLitRep,0) SumLitRep,
                  Isnull(LLE.SumLitLLe,0) - isnull(Rep.SumLitRep,0) LitDif
           From Dep As Dep
      Left Join (
                    Select Id, Sum(Lit) As SumLitLLe
                       From LLE 
                     Where Fec >= :FecIni And
                              Fec <= :FecIni
                  ) LLE 
              On Dep.Id =  LLE.Id 
      Left Join (
                     Select Id, Sum(Lit) As SumLitRep
                       From Rep 
                     Where Fec >= :FecIni And
                              Fec <= :FecIni
                  ) Rep
             On Dep.Id =  Rep.Id 
        Where Dep.Nom = :Nom

Pero Firebird 1.5 no admite el left join(select , como lo podría hacerlo en una consulta?

Y mi segunda duda es que si me instalo firebird 2.1 (que me han recomendado para solucionar este problema), perdería las bases que tengo hechas en 1.5? tendría que hacer algun tipo de instalación extra? IBexpert funcionaría igual?O no cambia nada en ese sentido? Gracias y perdón por la duplicidad de posts.
Responder Con Cita