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

Group by pero ordenar por fecha

Estas en el tema de Group by pero ordenar por fecha en el foro de SQL Server en Foros del Web. Hola compañeros, perdon por el post, pero vengo de mysql y tengo una duda bastante grande. Actualmente tengo está consulta: SELECT id_material,ubicacion, ISNULL(SUM(cantidad),0) AS total ...
  #1 (permalink)  
Antiguo 08/03/2013, 13:07
 
Fecha de Ingreso: junio-2008
Mensajes: 165
Antigüedad: 15 años, 11 meses
Puntos: 6
Group by pero ordenar por fecha

Hola compañeros, perdon por el post, pero vengo de mysql y tengo una duda bastante grande. Actualmente tengo está consulta:

SELECT id_material,ubicacion, ISNULL(SUM(cantidad),0) AS total FROM recepcion WHERE id_material = {$id_material} ORDER BY fecha ASC GROUP BY id_material,ubicacion

Que me devuelve un resultado así:

Cantidad : 13, ubicacion: AlmacenA


Mi tabla tiene estos campos y registros de ejemplo:

id_recepcion: 1, id_material: 1, ubicacion:almacenA, usuario: 5, fecha: 2013-08-03 16:03:07.000 ,tipo:r ,cantidad:20, expediente: A15

id_recepcion: 2, id_material: 1, ubicacion:almacenA, usuario: 5, fecha: 2013-10-03 19:08:24.000, tipo: r, cantidad: 5, expediente: A17

id_recepcion: 3, id_material: 1, ubicacion:almacenB, usuario: 5, fecha: 2013-07-03 16:03:07.000 , tipo: r, cantidad: 10, expediente: A18

Ahora debo intentar que por ejemplo me ordene por fecha cogiendo la fecha mayor donde la ubicacion sea la misma y el id_material también dandome por ejemplo este resultado:

Ubicacion: almacenA cantidad: 30
Ubicacion: almacenB cantidad: 10

Por que me lo debe ordenar por fecha y almacenA tiene la fecha mas alta
  #2 (permalink)  
Antiguo 08/03/2013, 13:44
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Group by pero ordenar por fecha

Código SQL:
Ver original
  1. SELECT * FROM(
  2. SELECT * FROM (
  3. SELECT id_material,ubicacion, ISNULL(SUM(cantidad),0) AS total FROM recepcion WHERE id_material = {$id_material} ORDER BY fecha ASC GROUP BY id_material,ubicacion) t1
  4. LEFT JOIN (SELECT MAX(fecha) max_fecha,ubicacion FROM recepcion GROUP BY recepcion) AS t2 ON (t1.ubicacion=t2.ubicacion)
  5. ) t3 ORDER BY max_fecha ASC
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #3 (permalink)  
Antiguo 08/03/2013, 18:57
 
Fecha de Ingreso: junio-2008
Mensajes: 165
Antigüedad: 15 años, 11 meses
Puntos: 6
Respuesta: Group by pero ordenar por fecha

Hola Libras, mil gracias por tu ayuda, pero me da errores la consulta:

Mens. 156, Nivel 15, Estado 1, Línea 3
Sintaxis incorrecta cerca de la palabra clave 'GROUP'.
Mens. 156, Nivel 15, Estado 1, Línea 4
Sintaxis incorrecta cerca de la palabra clave 'AS'.

SELECT * FROM(
SELECT * FROM (
SELECT id_material,ubicacion, ISNULL(SUM(cantidad),0) AS total FROM recepcion WHERE id_material = 1 ORDER BY fecha ASC GROUP BY id_material,ubicacion) t1
LEFT JOIN (SELECT max(fecha) max_fecha,ubicacion FROM recepcion GROUP BY recepcion) AS t2 ON (t1.ubicacion=t2.ubicacion)
) t3 ORDER BY max_fecha ASC

Intente ver por qué pero no llego a entender la query :(
  #4 (permalink)  
Antiguo 11/03/2013, 09:47
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Group by pero ordenar por fecha

el query que te puse es logico que te problemas de sintaxis, ya que no cuento con tu base de datos es solo para que te des una idea de como resolverlo, en cuanto a los errores prueba con esto:


Código SQL:
Ver original
  1. SELECT * FROM(
  2. SELECT * FROM (
  3. SELECT id_material,ubicacion, ISNULL(SUM(cantidad),0) AS total FROM recepcion WHERE id_material = 1 GROUP BY id_material,ubicacion) t1
  4. LEFT JOIN (SELECT MAX(fecha) max_fecha,ubicacion FROM recepcion GROUP BY ubicacion) AS t2 ON (t1.ubicacion=t2.ubicacion)
  5. ) t3 ORDER BY max_fecha ASC

saludos!
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me

Etiquetas: campos, fecha, group, registro, select, tabla
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 11:54.