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
>
>