Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

SSuma resultados consultaq multiple

Estas en el tema de SSuma resultados consultaq multiple en el foro de Mysql en Foros del Web. Hola, tengo la siguiene consulta que funciona bien, pero... Código PHP: SELECT T .*,  dif + dif2 total FROM ( SELECT  *,      GROUP_CONCAT ( ROUND (( TIMESTAMPDIFF ...
  #1 (permalink)  
Antiguo 11/01/2012, 11:13
 
Fecha de Ingreso: enero-2008
Mensajes: 303
Antigüedad: 16 años, 2 meses
Puntos: 0
SSuma resultados consultaq multiple

Hola, tengo la siguiene consulta que funciona bien, pero...
Código PHP:
SELECT T.*, dif+dif2 total FROM(

SELECT *, 
   
GROUP_CONCAT(ROUND((TIMESTAMPDIFF(SECOND,desde,hasta) /3600),1),'<br/>'ORDER BY desde ASC SEPARATOR '')dif

GROUP_CONCAT(ROUND((TIMESTAMPDIFF(SECOND,desde1,hasta1) /3600),1),'<br/>'ORDER BY desde1 ASC SEPARATOR '')dif2 FROM horas)

y me aroja los siguientes totales:

id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY <derived2> system NULL NULL NULL NULL 1
2 DERIVED horas ALL NULL NULL NULL NULL 12

¿Sabeis por que la primaria me arroja 1 cuando quiero los 12.

Gracis y un saludo
  #2 (permalink)  
Antiguo 11/01/2012, 12:40
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: SSuma resultados consultaq multiple

Cita:
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY <derived2> system NULL NULL NULL NULL 1
2 DERIVED horas ALL NULL NULL NULL NULL 12
Esto no es el resultado de la consulta, sino el análisis del plan de consulta que MySQL ejecuta y cómo se desarrolla.
De hecho, tu consulta está devolviendo 12 registros, según lo que describe ese plan, por lo que no se entiende a qué problema te refieres.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 11/01/2012, 13:32
 
Fecha de Ingreso: enero-2008
Mensajes: 303
Antigüedad: 16 años, 2 meses
Puntos: 0
Respuesta: SSuma resultados consultaq multiple

Hola,
Efectivamene es el análisis de la consulta.
Los resultados devueltos son:

dif dif2 total
4.5 3.5 11
5.5 2.0
0.0 4.0
3.5 3,5
0.0 2,5
5.5 4.0
5.0 3,5
0.0
0.0
0.0

Como ves el alias total solo me devuelve el primer registro.
Un saludo
  #4 (permalink)  
Antiguo 11/01/2012, 14:15
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: SSuma resultados consultaq multiple

Estás creando un único registro no discriminado.
O usas GROUP BY o le pones DISTINCT al GROUP_CONCAT()
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #5 (permalink)  
Antiguo 11/01/2012, 14:45
 
Fecha de Ingreso: enero-2008
Mensajes: 303
Antigüedad: 16 años, 2 meses
Puntos: 0
Respuesta: SSuma resultados consultaq multiple

[PHP]Gracias por tu respuesta,.
Para no molestar con un código largo abrevie la consulta, pero si agrupe GROUP BY idempleado .
Te dejo la consulta completa por si puedes ayudarme.

SELECT T.*, dif+dif2 total FROM(

SELECT personal.id,nombre,idempleado,desde,hasta,GROUP_CO NCAT(DATE_FORMAT(fecha,'%d-%m-%Y'), ' <br/> 'ORDER BY fecha ASC SEPARATOR '') fecha, GROUP_CONCAT(DATE_FORMAT( desde,'%H:%i' ), ' a ',DATE_FORMAT( hasta,'%H:%i' ), '<br/> 'ORDER BY desde ASC SEPARATOR '') adesde,GROUP_CONCAT(DATE_FORMAT( desde1,'%H:%i' ), ' a ',DATE_FORMAT( hasta1,'%H:%i' ), '<br/> 'ORDER BY desde ASC SEPARATOR '') ahasta, GROUP_CONCAT(ROUND((TIMESTAMPDIFF(SECOND,desde,has ta) /3600),1),'<br/>'ORDER BY desde ASC SEPARATOR '') dif, GROUP_CONCAT(ROUND((TIMESTAMPDIFF(SECOND,desde1,ha sta1) /3600),1),'<br/>'ORDER BY desde1 ASC SEPARATOR '')dif2 FROM horas INNER JOIN personal ON (horas.idempleado = personal.id )GROUP BY idempleado
)T

Etiquetas: resultados, select
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 20:00.