List:Spanish« Previous MessageNext Message »
From:Eloy Mier Pérez Date:March 4 2005 10:25am
Subject:RE: Duda sobre union de dos consultas
View as plain text  
On Fri, 04 Mar 2005 10:35:01 +0100, "Juan F. Capristán W."
<juan@stripped> wrote:
> Hola Eloy,
> no hay manera de hacer una única consulta por el group by, pero si lo que
> necesitas es obtener el resultado en una única tabla, puedes crear tablas
> temporales, y luego unirlas. Algo así (he simplificado un poco las consultas
> para hacerlas menos tediosas):
>
Hola Juan

> create temporary table t1 SELECT
> usuario.datos,
> ptb.f_inicio AS fechaInicio,
> ptb.f_fin AS fechaBaja,
> ptb.f_fin-ptb.f_inicio AS parcialDiasSinServicio    #esta resta no creo que
> funcione bien así
> FROM usuario
> LEFT JOIN ptb ON usuario.Id=ptb.id_abuelo;
>
> create temporary table t2 SELECT
> usuario.datos,
> sum(ptb.f_fin-ptb.f_inicio) AS totalDiasSinServicio
> FROM usuario
> LEFT JOIN ptb ON usuario.Id=ptb.id_abuelo
> GROUP BY usuario.datos;
>
> select * from t1,t2 where t1.id=t2.id;
>
> y finalmente borrar las tablas temporales (drop table t1; y drop table t2;)
>

Ok, lo intentare....ya te comentare....

Como no me habia dicho nadie nada, ya habia optado por la consulta que
muestra los detalles, y despues en el propio informe realizar los
calculos....

> Espero haberte ayudado.
> Un saludo,
>         Juan.
>

Un saludo Juan y muchas gracias por tu tiempo.

> P.D.: La resta "ptb.f_fin-ptb.f_inicio ", ¿te funciona?... si f_fin y
> f_inicio son de tipo date o similar, es mejor que trabajes con las funciones
> específicas para sumar/restar fechas.
>
>

Parece que esa resta tal y como esta, de momento funciona, me da sin
problema el numero de dias entre las fechas.

>
> At 19:42 03/03/2005, you wrote:
> Hola a todos,
> no se si alguien que tenga algo de tiempo puedises echar un vistazo a
> estas dos consultas que aqui planteo:
>
> Tengo dos tablas relacionadas, una de usuarios con un id numerico como
> pk y una de suspensiones temporares que tiene como fk el id del
> usuario de la primera tabla.
>
> Bien, el tema es que me gustaria obtener una consulta que me retorne
> algo parecido a esto :
>
> usuario,  rango baja 1  numdias1   ,   total (suma de los numdias)
>              rango baja 2   numdias2
>
> Hasta el momento he logrado hacerlo, pero mediante 2 consultas
> distintas, y no se me ocurre como puedo unirlas. Las consultas que
> tengo hechas son:
>
> SELECT usuario.nombre, usuario.apellidos, usuario.domicilio, [periodo
> temporal baja].f_inicio AS fechaInicio, [periodo temporal baja].f_fin
> AS fechaBaja, [periodo temporal baja].f_fin-[periodo temporal
> baja].f_inicio AS parcialDiasSinServicio
>
> FROM usuario
> LEFT JOIN [periodo temporal baja] ON usuario.Id=[periodo temporal
> baja].id_abuelo;
>
> y
>
> SELECT usuario.Id, usuario.nombre, usuario.apellidos,
> usuario.domicilio, sum([periodo temporal baja].f_fin-[periodo temporal
> baja].f_inicio) AS totalDiasSinServicio
>
> FROM usuario
> LEFT JOIN [periodo temporal baja] ON usuario.Id=[periodo temporal
> baja].id_abuelo
> GROUP BY usuario.Id, usuario.nombre, usuario.apellidos, usuario.domicilio;
>
> ¿A alguien se le ocurre como podria conseguir unir las consultas?
>
> Un saludo a todos. Eloy.
>
>
> No virus found in this outgoing message.
> Checked by AVG Anti-Virus.
> Version: 7.0.308 / Virus Database: 266.6.0 - Release Date: 02/03/2005
>
>
> --
> Lista de Correos de MySQL
> Para el historial de la lista: http://lists.mysql.com/mysql-es
> Para cancelar inscripción:
> http://lists.mysql.com/mysql-es?unsub=1
>
>
Thread
Duda sobre union de dos consultasEloy Mier Pérez3 Mar
  • Re: Duda sobre union de dos consultasJuan F. Capristán W.4 Mar
  • Re: Duda sobre union de dos consultasCarles Ferrer Martinez4 Mar
RE: Duda sobre union de dos consultasEloy Mier Pérez4 Mar