Dos Join en una misma clausula FROM
Publicado por Esteban Javier Suárez Pérez (2 intervenciones) el 26/01/2009 19:05:35
Bueno, tengo la siguiente consulta sql para Access:
SELECT Clientes.[Holder_id],UCase(Trim([Clientes]![Titular_Primer_Apellido]&" "&[Clientes]![Titular_Segundo_Apellido]&" "&[Clientes]![Titular_Primer_Nombre]&" "&[Clientes]![Titular_Segundo_Nombre])) AS TITULAR, Clientes.[Dirección_Titular], [Ciudades].Ciudad, [Ciudades].País, UCase(Format([Inicial],"mmmm yyyy")) AS EXTRACTO, [Extractos_Filtro].Final, IIf(IsNull([SALDO]),0,Round([SALDO],4)) AS SINICIAL, Sum(IIf(IsNull([DSHARES]),0,[DSHARES])) AS DEBITOS, Sum(IIf(IsNull([CSHARES]),0,[CSHARES])) AS CREDITOS, Round([SINICIAL]+[DEBITOS]+[CREDITOS],4) AS SFINAL, IIf(IsNull([Precios].[Valor_Precio]),0,[Precios].[Valor_Precio]) AS PINICIAL, IIf(IsNull([PRECIOS_1].[Valor_Precio]),0,[PRECIOS_1].[Valor_Precio]) AS PFINAL, IIf(IsNull([Rentabilidad].[Rentabilidad_Período]),0,[Rentabilidad].[Rentabilidad_Peíodo]) AS RENTA
FROM (([Extractos_Filtro] LEFT JOIN Precios ON [Extractos_Filtro].Inicial = Precios.Fecha) LEFT JOIN Rentabilidad ON [Extractos_Filtro].f_saldo = Rentabilidad.Fecha) LEFT JOIN Precios AS PRECIOS_1 ON [Extractos_Filtro].f_saldo = PRECIOS_1.Fecha,((Clientes LEFT JOIN [Ciudades] ON Clientes.[Id_Ubicación] = [Ciudades].Id) LEFT JOIN Extractos_Saldo_Inicial ON Clientes.[Holder_id] = Extractos_Saldo_Inicial.CLIENTE) LEFT JOIN Extractos_Movimientos ON Clientes.[Holder_id] = Extractos_Movimientos.CLIENTE
WHERE (((Clientes.Estado)="Activo"))
GROUP BY Clientes.[Holder_id],UCase(Trim([Clientes]![Titular_Primer_Apellido]&" "&[Clientes]![Titular_Segundo_Apellido]&" "&[Clientes]![Titular_Primer_Nombre]&" "&[Clientes]![Titular_Segundo_Nombre] , Clientes.[Dirección_Titular], [Ciudades].Ciudad, [Ciudades].País, UCase(Format([Inicial],"mmmm yyyy")), [Extractos_Filtro].Final, IIf(IsNull([SALDO]),0,Round([SALDO],4)), IIf(IsNull([Precios].[Valor_Precio]),0,[Precios].[Valor_Precio]), IIf(IsNull([PRECIOS_1].[Valor_Precio]),0,[PRECIOS_1].[Valor_Precio]), IIf(IsNull([Rentabilidad].[Rentabilidad_Período]),0,[Rentabilidad].[Rentabilidad_Período]);
Al ejecutarla me aparece el siguientes mensaje de error: La Expresión JOIN no se admite.Quisiera saber la causa de esto y pues la posible solución, ya que es necesario que haga esta consulta de este modo, es decir, que traiga todos los datos con esa sola consulta.Gracias de antemano.
SELECT Clientes.[Holder_id],UCase(Trim([Clientes]![Titular_Primer_Apellido]&" "&[Clientes]![Titular_Segundo_Apellido]&" "&[Clientes]![Titular_Primer_Nombre]&" "&[Clientes]![Titular_Segundo_Nombre])) AS TITULAR, Clientes.[Dirección_Titular], [Ciudades].Ciudad, [Ciudades].País, UCase(Format([Inicial],"mmmm yyyy")) AS EXTRACTO, [Extractos_Filtro].Final, IIf(IsNull([SALDO]),0,Round([SALDO],4)) AS SINICIAL, Sum(IIf(IsNull([DSHARES]),0,[DSHARES])) AS DEBITOS, Sum(IIf(IsNull([CSHARES]),0,[CSHARES])) AS CREDITOS, Round([SINICIAL]+[DEBITOS]+[CREDITOS],4) AS SFINAL, IIf(IsNull([Precios].[Valor_Precio]),0,[Precios].[Valor_Precio]) AS PINICIAL, IIf(IsNull([PRECIOS_1].[Valor_Precio]),0,[PRECIOS_1].[Valor_Precio]) AS PFINAL, IIf(IsNull([Rentabilidad].[Rentabilidad_Período]),0,[Rentabilidad].[Rentabilidad_Peíodo]) AS RENTA
FROM (([Extractos_Filtro] LEFT JOIN Precios ON [Extractos_Filtro].Inicial = Precios.Fecha) LEFT JOIN Rentabilidad ON [Extractos_Filtro].f_saldo = Rentabilidad.Fecha) LEFT JOIN Precios AS PRECIOS_1 ON [Extractos_Filtro].f_saldo = PRECIOS_1.Fecha,((Clientes LEFT JOIN [Ciudades] ON Clientes.[Id_Ubicación] = [Ciudades].Id) LEFT JOIN Extractos_Saldo_Inicial ON Clientes.[Holder_id] = Extractos_Saldo_Inicial.CLIENTE) LEFT JOIN Extractos_Movimientos ON Clientes.[Holder_id] = Extractos_Movimientos.CLIENTE
WHERE (((Clientes.Estado)="Activo"))
GROUP BY Clientes.[Holder_id],UCase(Trim([Clientes]![Titular_Primer_Apellido]&" "&[Clientes]![Titular_Segundo_Apellido]&" "&[Clientes]![Titular_Primer_Nombre]&" "&[Clientes]![Titular_Segundo_Nombre] , Clientes.[Dirección_Titular], [Ciudades].Ciudad, [Ciudades].País, UCase(Format([Inicial],"mmmm yyyy")), [Extractos_Filtro].Final, IIf(IsNull([SALDO]),0,Round([SALDO],4)), IIf(IsNull([Precios].[Valor_Precio]),0,[Precios].[Valor_Precio]), IIf(IsNull([PRECIOS_1].[Valor_Precio]),0,[PRECIOS_1].[Valor_Precio]), IIf(IsNull([Rentabilidad].[Rentabilidad_Período]),0,[Rentabilidad].[Rentabilidad_Período]);
Al ejecutarla me aparece el siguientes mensaje de error: La Expresión JOIN no se admite.Quisiera saber la causa de esto y pues la posible solución, ya que es necesario que haga esta consulta de este modo, es decir, que traiga todos los datos con esa sola consulta.Gracias de antemano.
Valora esta pregunta


0