Comunidad de diseño web y desarrollo en internet online

Consulta sumar campos en Mysql

Citar            
MensajeEscrito el 23 Ago 2015 07:12 pm
Holas
Buenas tardes a todos

Pues queria saber si alguien podria tener la respuesta a mi consulta, la cual es poder devolverme el ultimo registrro del campo paradero final y/o hora final de un bus como se muestra a continuación, parace facil, pero esta tabla contiene un campo BUS, y yo necesito el paradero final de cada BUS en una consulta.

Tabla Origen:



Resultado Esperado



Mi codigo que devuelve todo pero no el paradero final al de cada bus, he intentado con subconsultas y funcion MAX para el campo paradero final, pero solo sale en algunos casos y otros no, puede ser que lo este utilizando de forma incorrecta, favor alguien que pueda decirme en lo que me este faltando.

Mi Codigo es:

SELECT COUNT( servicio ) as Carreras, servicio, Ruta, Operador, para_ini, hora_ini, para_fin, hora_fin, SUM( distancia )
FROM tro
GROUP BY servicio
HAVING servicio >1

Gracias, espero puedan mostrarme lo faltante, saludos.

Por AyllonDark

3 de clabLevel



 

Perú

chrome
Citar            
MensajeEscrito el 02 Sep 2015 10:17 pm
No sé si el COUNT de tu consulta puede influir o no pues aunque esté influenciado por el GROUP BY, siempre mostrará un resultado obtenido, nunca más, de ahí el tema de que sea un función de grupo. Siendo un poco bestias y llendo un poco a ciegas por no tener la base de datos con la que contrastar los datos pensé en anidaciones... A ver si al menos te da una pista para que puedas continuar con ello:

Código MySQL :

select 
   (
      select 
         count(tro.BUS) as 'Carreras',
         tro.BUS as 'Servicio',
         tro3.RUTA as 'Ruta',
         tro3.OPERADOR as 'Operador',
         (
            select
               tro4.PARADERO_INI as 'Paradero_Ini'
            from tro tro4
            where
               tro.BUS=tro4.BUS
            limit 1
         ) as 'Paradero_Ini',
         (
            select
               min(tro4.HORA_INI) as 'Hora_Ini'
            from tro tro4
            where
               tro.BUS=tro4.BUS
         ) as 'Hora_Ini',
         (
            select
               tro4.PARADERO_FIN as 'Paradero_Fin'
            from tro tro4
            where
               tro.BUS=tro4.BUS
            limit 1
         ) as 'Paradero_Fin',
         (
            select
               min(tro4.HORA_FIN) as 'Hora_Fin'
            from tro tro4
            where
               tro.BUS=tro4.BUS
         ) as 'Hora_Fin',
         (
            select
               sum(tro4.DISTANCIA) as 'Distancia'
            from tro tro4
            where
               tro.BUS=tro4.BUS
         ) as 'Distancia'
         
      from tro tro
      where tro.BUS=tro2.BUS
   ) as 'Carreras '
from (
   select 
      tro3.BUS as 'BUS',
      tro3.OPERADOR as 'OPERADOR',
      tro3.RUTA as 'RUTA'
   from tro tro3
   distinct 
      tro3.BUS,
      tro3.OPERADOR,
      tro3.RUTA
) tro2;


Un saludo.

Por KyMAN

1 de clabLevel



 

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.