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

Duda con Query

Estas en el tema de Duda con Query en el foro de SQL Server en Foros del Web. Buenas, me gustaria me pudieran apoyar, con una duda... tengo esta consulta: @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código SQL: Ver original SELECT r . ruta AS Route , ...
  #1 (permalink)  
Antiguo 25/09/2012, 09:24
 
Fecha de Ingreso: junio-2012
Mensajes: 90
Antigüedad: 11 años, 10 meses
Puntos: 2
Duda con Query

Buenas, me gustaria me pudieran apoyar, con una duda... tengo esta consulta:

Código SQL:
Ver original
  1. SELECT r.ruta AS Route,v.version AS Version,l.leg AS Leg,CONVERT(DATE,e.fecha_agendada,105) AS DATE,CONVERT(VARCHAR,e.fecha_agendada,108)AS TIME
  2.  FROM d_rutas AS r
  3.  INNER JOIN d_versiones AS v ON r.id=v.id_ruta
  4.  INNER JOIN d_legs AS l ON l.id_version=v.id
  5.  INNER JOIN d_paradas AS p ON p.id_leg=l.id
  6.  INNER JOIN d_eventos AS e ON e.id_parada=p.id
  7.  LEFT  JOIN tm_transfer_bodegas AS tb ON tb.id_Bodega=p.id_bodega
  8. WHERE tb.nombre='TTL' AND v.STATUS='A'
  9. GROUP BY r.ruta,v.version,l.leg,e.fecha_agendada
  10. ORDER BY CONVERT(DATE,e.fecha_agendada,105)ASC,CONVERT(VARCHAR,e.fecha_agendada,108),r.ruta,v.version

Que me trae estos registros...ejemplo:

TS91 0 1 2012-09-22 12:00:00
TS91 0 1 2012-09-22 12:30:01
TS50 3 1 2012-09-22 13:00:00
TS50 3 1 2012-09-22 13:30:01
TS91 13 1 2012-09-22 14:00:00
TS91 13 1 2012-09-22 14:30:01


Como podrán ve hay 2 registros por cada ruta, en este caso la TS91, los primeros 2 coinciden en fecha..y quiero que las 2 horarios me los separe y los agrupe, me explico....

Ruta - Ver- Leg - Fecha - Hora
TS91 0 1 2012-09-22 12:00:00
TS91 0 1 2012-09-22 12:30:01

De esta forma quiero que pase a esta forma:

Ruta - Ver - Leg - Fecha - HoraInicio - HoraFin
TS91 - 0 - 1 - 2012-09-22 - 12:00:00 - 12:30:01


Quiero agrupar los datos en comun y separar solo la Hora final...y anexarla en otra columna, saludos y gracias de ante mano
  #2 (permalink)  
Antiguo 25/09/2012, 10:08
 
Fecha de Ingreso: noviembre-2011
Mensajes: 48
Antigüedad: 12 años, 5 meses
Puntos: 5
Respuesta: Duda con Query

Haber prueba lo siguiente
Código SQL:
Ver original
  1. SELECT Route, Version, Leg, DATE, MIN(TIME) AS inicial, MAX (TIME) AS final
  2. (SELECT r.ruta AS Route,v.version AS Version,l.leg AS Leg,CONVERT(DATE,e.fecha_agendada,105) AS DATE,CONVERT(VARCHAR,e.fecha_agendada,108)AS TIME
  3.  FROM d_rutas AS r
  4.  INNER JOIN d_versiones AS v ON r.id=v.id_ruta
  5.  INNER JOIN d_legs AS l ON l.id_version=v.id
  6.  INNER JOIN d_paradas AS p ON p.id_leg=l.id
  7.  INNER JOIN d_eventos AS e ON e.id_parada=p.id
  8.  LEFT  JOIN tm_transfer_bodegas AS tb ON tb.id_Bodega=p.id_bodega
  9. WHERE tb.nombre='TTL' AND v.STATUS='A'
  10. GROUP BY r.ruta,v.version,l.leg,e.fecha_agendada)
  11. GROUP BY Route, Version, Leg, DATE
  #3 (permalink)  
Antiguo 25/09/2012, 10:21
 
Fecha de Ingreso: junio-2012
Mensajes: 90
Antigüedad: 11 años, 10 meses
Puntos: 2
Respuesta: Duda con Query

Me dice que las funciones no son validas....

Me dice que las columnas no son validas...en esta parte:

SELECT Route, Version, Leg, Date, Min(Time) AS inicial, Max (Time) AS final


Y despues The Multi path identifier could not be bound
  #4 (permalink)  
Antiguo 25/09/2012, 10:53
 
Fecha de Ingreso: noviembre-2011
Mensajes: 48
Antigüedad: 12 años, 5 meses
Puntos: 5
Respuesta: Duda con Query

Sorry ahora si debe funcionar
Código SQL:
Ver original
  1. SELECT Route, Version, Leg, DATE, MIN(TIME) AS inicial, MAX (TIME) AS final FROM
  2. (SELECT r.ruta AS Route,v.version AS Version,l.leg AS Leg,CONVERT(DATE,e.fecha_agendada,105) AS DATE,CONVERT(VARCHAR,e.fecha_agendada,108)AS TIME
  3.  FROM d_rutas AS r
  4.  INNER JOIN d_versiones AS v ON r.id=v.id_ruta
  5.  INNER JOIN d_legs AS l ON l.id_version=v.id
  6.  INNER JOIN d_paradas AS p ON p.id_leg=l.id
  7.  INNER JOIN d_eventos AS e ON e.id_parada=p.id
  8.  LEFT  JOIN tm_transfer_bodegas AS tb ON tb.id_Bodega=p.id_bodega
  9. WHERE tb.nombre='TTL' AND v.STATUS='A'
  10. GROUP BY r.ruta,v.version,l.leg,e.fecha_agendada) AS t1
  11. GROUP BY Route, Version, Leg, DATE
  #5 (permalink)  
Antiguo 25/09/2012, 11:18
 
Fecha de Ingreso: junio-2012
Mensajes: 90
Antigüedad: 11 años, 10 meses
Puntos: 2
Respuesta: Duda con Query

Lo estuve revisando y me arroja lo siguiente:

Msg 102, Level 15, State 1, Line 3
Sintaxis incorrecta cerca de '*'.
  #6 (permalink)  
Antiguo 25/09/2012, 11:30
 
Fecha de Ingreso: noviembre-2011
Mensajes: 48
Antigüedad: 12 años, 5 meses
Puntos: 5
Respuesta: Duda con Query

Haber te pongo mi prueba y resultado, no se de donde sacas un '*' en la instruccion no hay ninguno.

Código SQL:
Ver original
  1. SELECT Route, Version, Leg, DATE, MIN(TIME) AS inicial, MAX (TIME) AS final FROM
  2. (SELECT ruta AS Route,version AS Version,leg AS Leg,CONVERT(DATE,fecha_agendada,105) AS DATE,CONVERT(VARCHAR,fecha_agendada,108)AS TIME
  3.  FROM #temporal AS r
  4.  GROUP BY ruta,version,leg,fecha_agendada) AS T1
  5. GROUP BY Route, Version, Leg, DATE
  6. ORDER BY route, version

Route Version Leg Date inicial final
TS50 3 1 2012-09-22 13:00:00 13:30:01
TS91 0 1 2012-09-22 12:00:00 12:30:01
TS91 13 1 2012-09-22 14:00:00 14:30:01
  #7 (permalink)  
Antiguo 25/09/2012, 11:37
 
Fecha de Ingreso: junio-2012
Mensajes: 90
Antigüedad: 11 años, 10 meses
Puntos: 2
Respuesta: Duda con Query

Msg 102, Level 15, State 1, Line 3
Sintaxis incorrecta cerca de ' '.

De hecho no se por que se pone un asterisco, cuando copio y pego el mensaje se pone el asterisco entre las comillas.. estuve revisando todo y nada.. :(

Estoy copiando tu Qry tal cual:

Código SQL:
Ver original
  1. SELECT Route, Version,Leg, DATE, MIN(TIME) AS Inicial, MAX (TIME) AS Final FROM
  2. (SELECT r.ruta AS Route,v.version AS Version,l.leg AS Leg,CONVERT(DATE,e.fecha_agendada,105) AS DATE,CONVERT(VARCHAR,e.fecha_agendada,108)AS TIME
  3. *FROM d_rutas AS r
  4. *INNER JOIN d_versiones AS v ON r.id=v.id_ruta
  5. *INNER JOIN d_legs AS l ON l.id_version=v.id
  6. *INNER JOIN d_paradas AS p ON p.id_leg=l.id
  7. *INNER JOIN d_eventos AS e ON e.id_parada=p.id
  8. *LEFT *JOIN tm_transfer_bodegas AS tb ON tb.id_Bodega=p.id_bodega
  9. WHERE tb.nombre='TTL'AND v.STATUS='A'
  10. GROUP BY r.ruta,v.version,l.leg,e.fecha_agendada) AS Table1
  11. GROUP BY Route, Version, Leg, DATE
  #8 (permalink)  
Antiguo 25/09/2012, 11:51
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 9 meses
Puntos: 180
Respuesta: Duda con Query

Yo hago exactamente el mismo copy-paste y NUNCA me pone los asteriscos, si a ti te los pone, facil, quitaselos.
__________________
MCTS Isaias Islas
  #9 (permalink)  
Antiguo 25/09/2012, 11:53
 
Fecha de Ingreso: junio-2012
Mensajes: 90
Antigüedad: 11 años, 10 meses
Puntos: 2
Respuesta: Duda con Query

Eso pasa cuando lo copio directamente del SQL, ahora, me sigue marcando el error..... -.- no se donde este mi error
  #10 (permalink)  
Antiguo 25/09/2012, 11:54
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 9 meses
Puntos: 180
Respuesta: Duda con Query

si no sabes, SQL Server te indica exactamente la linea donde esta el error.
__________________
MCTS Isaias Islas
  #11 (permalink)  
Antiguo 25/09/2012, 11:57
 
Fecha de Ingreso: junio-2012
Mensajes: 90
Antigüedad: 11 años, 10 meses
Puntos: 2
Respuesta: Duda con Query

Si, si lo se, el error era un miserable espacio jajajaja... pfff, de todas formas muchas gracias a todos por sus respuestas, ya esta consolidado la consulta, aunque pude hacer otro tipo de consulta me parece que el performance de la query que me sugirieron es mucho mejor....Gracias!

Etiquetas: query, registro, 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 15:44.