Problema en consulta

12/07/2006 - 18:02 por GoG | Informe spam
Hola a todos...

Tengo dos consultas , que por separado funcionan bien (devuelcen unos
calculos)

El problema es que ahora me han dicho que si puedo unir los resultados de
las dos consultas (una especie de totales) y no veo la forma de hacerlo
directamnete,

La consultas, que son muy similares y devuelven los mismos tipos de datos,
son:

Consulta1

select razonSocial,sum(dm) as 'dm2',sum(pesocalculado) as 'peso',color from
facturas
inner join lineasdefactura on LineasDeFactura.numFactura=Facturas.numFactura
inner join LineasdeAlbaranDeSalida on
lineasDeAlbaranDeSalida.numeroAlbaran=LineasDeFactura.numeroAlbaranSalida
inner join albaranSalida on
AlbaranSalida.numeroAlbaran=LineasDeAlbaranDeSalida.numeroAlbaran
inner join Clientes on Clientes.id_cliente=AlbaranSalida.id_cliente
where fechaFactura between '01/01/2006' and '01/07/2006'
group by razonSocial,color order by razonSocial

Consulta2

select razonSocial,sum(dm) as 'dm2',sum(pesocalculado) as 'peso',color from
facturasB
inner join lineasdefacturaB on
LineasDeFacturaB.numFactura=FacturasB.numFactura
inner join LineasdeAlbaranDeSalida on
lineasDeAlbaranDeSalida.numeroAlbaran=LineasDeFacturaB.numeroAlbaranSalida
inner join albaranSalida on
AlbaranSalida.numeroAlbaran=LineasDeAlbaranDeSalida.numeroAlbaran
inner join Clientes on Clientes.id_cliente=AlbaranSalida.id_cliente
where fechaFactura between '01/01/2006' and '01/07/2006'
group by razonSocial,color order by razonSocial

Lo quie necesitaria es devolver los sum de la primera consulta, mas los sum
de la segunda consulta
Alguna sugerencia??

Gracias a todos...

Preguntas similare

Leer las respuestas

#1 Maxi
12/07/2006 - 18:15 | Informe spam
Hola, revisa el comando UNION ALL


Salu2
Maxi [MVP SQL SERVER]
www.sqlgurus.org


"GoG" escribió en el mensaje
news:uv%
Hola a todos...

Tengo dos consultas , que por separado funcionan bien (devuelcen unos
calculos)

El problema es que ahora me han dicho que si puedo unir los resultados de
las dos consultas (una especie de totales) y no veo la forma de hacerlo
directamnete,

La consultas, que son muy similares y devuelven los mismos tipos de datos,
son:

Consulta1

select razonSocial,sum(dm) as 'dm2',sum(pesocalculado) as 'peso',color
from
facturas
inner join lineasdefactura on
LineasDeFactura.numFactura=Facturas.numFactura
inner join LineasdeAlbaranDeSalida on
lineasDeAlbaranDeSalida.numeroAlbaran=LineasDeFactura.numeroAlbaranSalida
inner join albaranSalida on
AlbaranSalida.numeroAlbaran=LineasDeAlbaranDeSalida.numeroAlbaran
inner join Clientes on Clientes.id_cliente=AlbaranSalida.id_cliente
where fechaFactura between '01/01/2006' and '01/07/2006'
group by razonSocial,color order by razonSocial

Consulta2

select razonSocial,sum(dm) as 'dm2',sum(pesocalculado) as 'peso',color
from
facturasB
inner join lineasdefacturaB on
LineasDeFacturaB.numFactura=FacturasB.numFactura
inner join LineasdeAlbaranDeSalida on
lineasDeAlbaranDeSalida.numeroAlbaran=LineasDeFacturaB.numeroAlbaranSalida
inner join albaranSalida on
AlbaranSalida.numeroAlbaran=LineasDeAlbaranDeSalida.numeroAlbaran
inner join Clientes on Clientes.id_cliente=AlbaranSalida.id_cliente
where fechaFactura between '01/01/2006' and '01/07/2006'
group by razonSocial,color order by razonSocial

Lo quie necesitaria es devolver los sum de la primera consulta, mas los
sum
de la segunda consulta
Alguna sugerencia??

Gracias a todos...




Respuesta Responder a este mensaje
#2 GoG
12/07/2006 - 18:41 | Informe spam
Ya lo he probado con el UNION ALL pero me da error... volvere a probar...

Gracias.

"Maxi" escribió en el mensaje
news:
Hola, revisa el comando UNION ALL


Salu2
Maxi [MVP SQL SERVER]
www.sqlgurus.org


"GoG" escribió en el mensaje
news:uv%
> Hola a todos...
>
> Tengo dos consultas , que por separado funcionan bien (devuelcen unos
> calculos)
>
> El problema es que ahora me han dicho que si puedo unir los resultados


de
> las dos consultas (una especie de totales) y no veo la forma de hacerlo
> directamnete,
>
> La consultas, que son muy similares y devuelven los mismos tipos de


datos,
> son:
>
> Consulta1
>
> select razonSocial,sum(dm) as 'dm2',sum(pesocalculado) as 'peso',color
> from
> facturas
> inner join lineasdefactura on
> LineasDeFactura.numFactura=Facturas.numFactura
> inner join LineasdeAlbaranDeSalida on
>


lineasDeAlbaranDeSalida.numeroAlbaran=LineasDeFactura.numeroAlbaranSalida
> inner join albaranSalida on
> AlbaranSalida.numeroAlbaran=LineasDeAlbaranDeSalida.numeroAlbaran
> inner join Clientes on Clientes.id_cliente=AlbaranSalida.id_cliente
> where fechaFactura between '01/01/2006' and '01/07/2006'
> group by razonSocial,color order by razonSocial
>
> Consulta2
>
> select razonSocial,sum(dm) as 'dm2',sum(pesocalculado) as 'peso',color
> from
> facturasB
> inner join lineasdefacturaB on
> LineasDeFacturaB.numFactura=FacturasB.numFactura
> inner join LineasdeAlbaranDeSalida on
>


lineasDeAlbaranDeSalida.numeroAlbaran=LineasDeFacturaB.numeroAlbaranSalida
> inner join albaranSalida on
> AlbaranSalida.numeroAlbaran=LineasDeAlbaranDeSalida.numeroAlbaran
> inner join Clientes on Clientes.id_cliente=AlbaranSalida.id_cliente
> where fechaFactura between '01/01/2006' and '01/07/2006'
> group by razonSocial,color order by razonSocial
>
> Lo quie necesitaria es devolver los sum de la primera consulta, mas los
> sum
> de la segunda consulta
> Alguna sugerencia??
>
> Gracias a todos...
>
>
>
>


Respuesta Responder a este mensaje
#3 Alejandro Mesa
12/07/2006 - 19:05 | Informe spam
GoG,

Postea el error que te da.

Al usar el operador de conjuntos "union all", solo puedes ordenar al final

select
razonSocial,
sum(dm) as 'dm2',
sum(pesocalculado) as 'peso',
color
from
facturas
inner join lineasdefactura on LineasDeFactura.numFactura=Facturas.numFactura
inner join LineasdeAlbaranDeSalida on
lineasDeAlbaranDeSalida.numeroAlbaran=LineasDeFactura.numeroAlbaranSalida
inner join albaranSalida on
AlbaranSalida.numeroAlbaran=LineasDeAlbaranDeSalida.numeroAlbaran
inner join Clientes on Clientes.id_cliente=AlbaranSalida.id_cliente
where fechaFactura between '01/01/2006' and '01/07/2006'
group by razonSocial,color

union all

select
razonSocial,
sum(dm) as 'dm2',
sum(pesocalculado) as 'peso',
color
from
facturasB
inner join lineasdefacturaB on
LineasDeFacturaB.numFactura=FacturasB.numFactura
inner join LineasdeAlbaranDeSalida on
lineasDeAlbaranDeSalida.numeroAlbaran=LineasDeFacturaB.numeroAlbaranSalida
inner join albaranSalida on
AlbaranSalida.numeroAlbaran=LineasDeAlbaranDeSalida.numeroAlbaran
inner join Clientes on Clientes.id_cliente=AlbaranSalida.id_cliente
where fechaFactura between '01/01/2006' and '01/07/2006'
group by razonSocial,color
order by razonSocial
go


AMB

"GoG" wrote:

Ya lo he probado con el UNION ALL pero me da error... volvere a probar...

Gracias.

"Maxi" escribió en el mensaje
news:
> Hola, revisa el comando UNION ALL
>
>
> Salu2
> Maxi [MVP SQL SERVER]
> www.sqlgurus.org
>
>
> "GoG" escribió en el mensaje
> news:uv%
> > Hola a todos...
> >
> > Tengo dos consultas , que por separado funcionan bien (devuelcen unos
> > calculos)
> >
> > El problema es que ahora me han dicho que si puedo unir los resultados
de
> > las dos consultas (una especie de totales) y no veo la forma de hacerlo
> > directamnete,
> >
> > La consultas, que son muy similares y devuelven los mismos tipos de
datos,
> > son:
> >
> > Consulta1
> >
> > select razonSocial,sum(dm) as 'dm2',sum(pesocalculado) as 'peso',color
> > from
> > facturas
> > inner join lineasdefactura on
> > LineasDeFactura.numFactura=Facturas.numFactura
> > inner join LineasdeAlbaranDeSalida on
> >
lineasDeAlbaranDeSalida.numeroAlbaran=LineasDeFactura.numeroAlbaranSalida
> > inner join albaranSalida on
> > AlbaranSalida.numeroAlbaran=LineasDeAlbaranDeSalida.numeroAlbaran
> > inner join Clientes on Clientes.id_cliente=AlbaranSalida.id_cliente
> > where fechaFactura between '01/01/2006' and '01/07/2006'
> > group by razonSocial,color order by razonSocial
> >
> > Consulta2
> >
> > select razonSocial,sum(dm) as 'dm2',sum(pesocalculado) as 'peso',color
> > from
> > facturasB
> > inner join lineasdefacturaB on
> > LineasDeFacturaB.numFactura=FacturasB.numFactura
> > inner join LineasdeAlbaranDeSalida on
> >
lineasDeAlbaranDeSalida.numeroAlbaran=LineasDeFacturaB.numeroAlbaranSalida
> > inner join albaranSalida on
> > AlbaranSalida.numeroAlbaran=LineasDeAlbaranDeSalida.numeroAlbaran
> > inner join Clientes on Clientes.id_cliente=AlbaranSalida.id_cliente
> > where fechaFactura between '01/01/2006' and '01/07/2006'
> > group by razonSocial,color order by razonSocial
> >
> > Lo quie necesitaria es devolver los sum de la primera consulta, mas los
> > sum
> > de la segunda consulta
> > Alguna sugerencia??
> >
> > Gracias a todos...
> >
> >
> >
> >
>
>



Respuesta Responder a este mensaje
#4 GoG
13/07/2006 - 11:27 | Informe spam
Muchisimas gracias Alejandro,

Creo que el problema puede venir por ahi. estaba usando el Union All he
incluyendo el order by dentro de ala primera consulta...

Gracias de nuevo.


"Alejandro Mesa" escribió en el
mensaje news:
GoG,

Postea el error que te da.

Al usar el operador de conjuntos "union all", solo puedes ordenar al final

select
razonSocial,
sum(dm) as 'dm2',
sum(pesocalculado) as 'peso',
color
from
facturas
inner join lineasdefactura on


LineasDeFactura.numFactura=Facturas.numFactura
inner join LineasdeAlbaranDeSalida on
lineasDeAlbaranDeSalida.numeroAlbaran=LineasDeFactura.numeroAlbaranSalida
inner join albaranSalida on
AlbaranSalida.numeroAlbaran=LineasDeAlbaranDeSalida.numeroAlbaran
inner join Clientes on Clientes.id_cliente=AlbaranSalida.id_cliente
where fechaFactura between '01/01/2006' and '01/07/2006'
group by razonSocial,color

union all

select
razonSocial,
sum(dm) as 'dm2',
sum(pesocalculado) as 'peso',
color
from
facturasB
inner join lineasdefacturaB on
LineasDeFacturaB.numFactura=FacturasB.numFactura
inner join LineasdeAlbaranDeSalida on
lineasDeAlbaranDeSalida.numeroAlbaran=LineasDeFacturaB.numeroAlbaranSalida
inner join albaranSalida on
AlbaranSalida.numeroAlbaran=LineasDeAlbaranDeSalida.numeroAlbaran
inner join Clientes on Clientes.id_cliente=AlbaranSalida.id_cliente
where fechaFactura between '01/01/2006' and '01/07/2006'
group by razonSocial,color
order by razonSocial
go


AMB

"GoG" wrote:

> Ya lo he probado con el UNION ALL pero me da error... volvere a


probar...
>
> Gracias.
>
> "Maxi" escribió en el mensaje
> news:
> > Hola, revisa el comando UNION ALL
> >
> >
> > Salu2
> > Maxi [MVP SQL SERVER]
> > www.sqlgurus.org
> >
> >
> > "GoG" escribió en el mensaje
> > news:uv%
> > > Hola a todos...
> > >
> > > Tengo dos consultas , que por separado funcionan bien (devuelcen


unos
> > > calculos)
> > >
> > > El problema es que ahora me han dicho que si puedo unir los


resultados
> de
> > > las dos consultas (una especie de totales) y no veo la forma de


hacerlo
> > > directamnete,
> > >
> > > La consultas, que son muy similares y devuelven los mismos tipos de
> datos,
> > > son:
> > >
> > > Consulta1
> > >
> > > select razonSocial,sum(dm) as 'dm2',sum(pesocalculado) as


'peso',color
> > > from
> > > facturas
> > > inner join lineasdefactura on
> > > LineasDeFactura.numFactura=Facturas.numFactura
> > > inner join LineasdeAlbaranDeSalida on
> > >
>


lineasDeAlbaranDeSalida.numeroAlbaran=LineasDeFactura.numeroAlbaranSalida
> > > inner join albaranSalida on
> > > AlbaranSalida.numeroAlbaran=LineasDeAlbaranDeSalida.numeroAlbaran
> > > inner join Clientes on Clientes.id_cliente=AlbaranSalida.id_cliente
> > > where fechaFactura between '01/01/2006' and '01/07/2006'
> > > group by razonSocial,color order by razonSocial
> > >
> > > Consulta2
> > >
> > > select razonSocial,sum(dm) as 'dm2',sum(pesocalculado) as


'peso',color
> > > from
> > > facturasB
> > > inner join lineasdefacturaB on
> > > LineasDeFacturaB.numFactura=FacturasB.numFactura
> > > inner join LineasdeAlbaranDeSalida on
> > >
>


lineasDeAlbaranDeSalida.numeroAlbaran=LineasDeFacturaB.numeroAlbaranSalida
> > > inner join albaranSalida on
> > > AlbaranSalida.numeroAlbaran=LineasDeAlbaranDeSalida.numeroAlbaran
> > > inner join Clientes on Clientes.id_cliente=AlbaranSalida.id_cliente
> > > where fechaFactura between '01/01/2006' and '01/07/2006'
> > > group by razonSocial,color order by razonSocial
> > >
> > > Lo quie necesitaria es devolver los sum de la primera consulta, mas


los
> > > sum
> > > de la segunda consulta
> > > Alguna sugerencia??
> > >
> > > Gracias a todos...
> > >
> > >
> > >
> > >
> >
> >
>
>
>
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida