Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > SQL
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 20-12-2007
vivamotos vivamotos is offline
Miembro
 
Registrado: ago 2006
Posts: 150
Poder: 18
vivamotos Va por buen camino
Consulta con group by

Saludos,

Mirad tengo el siguiente problema.

En un almacen tengo movimientos de fichas y quisiera realizar la siguiente consulta.

Coger el ultimo movimiento de todas las fichas que pertenecen a un grupo y que me muestre su existencia y su precio en ese ultimo movimiento.

Lo que intento hacer es esto:

Código SQL [-]
SELECT PRODUCTO,MAX(FECHA),EXISTENCIAS
FROM MATERIALES,MOVIMIENTOS
WHERE MATERIALES.CODIGO=MOVIMIENTOS.CODIGO
GROUP BY PRODUCTO
ORDER BY FECHA DESC

Me da error porque en el group by no pongo EXISTENCIAS pero es que si lo pongo me cogerá TODOS los movimientos de cada ficha y solo quiero coger el último movimiento junto sus existencias y precio en ese último movimiento.

Alguna sugerencia?

Última edición por dec fecha: 20-12-2007 a las 12:51:31.
Responder Con Cita
  #2  
Antiguo 20-12-2007
Avatar de fjcg02
[fjcg02] fjcg02 is offline
Miembro Premium
 
Registrado: dic 2003
Ubicación: Zamudio
Posts: 1.410
Poder: 22
fjcg02 Va camino a la fama
Prueba con esto. Puede que no te funcione dependiendo de tu motor de bbdd, pero...


SELECT PRODUCTO,MAX(FECHA),LAST(EXISTENCIAS)
FROM MATERIALES,MOVIMIENTOS
WHERE MATERIALES.CODIGO=MOVIMIENTOS.CODIGO
GROUP BY PRODUCTO
ORDER BY FECHA DESC


Suerte y saludos
__________________
Cuando los grillos cantan, es que es de noche - viejo proverbio chino -
Responder Con Cita
  #3  
Antiguo 20-12-2007
vivamotos vivamotos is offline
Miembro
 
Registrado: ago 2006
Posts: 150
Poder: 18
vivamotos Va por buen camino
LAST En Firebird

No me va, lo que busco es lo que dices pero en FIREBIRD...
Responder Con Cita
  #4  
Antiguo 20-12-2007
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 28
jachguate Va por buen camino
tu estructura no me queda clara... pero el uso de tablas derivadas (creo que así le llamaron algunos autores... yo prefiero llamarles inline views) te dará una idea que debiera funcionar:

Código SQL [-]
select m1.producto, m1.existnecia, q1.ultima_fecha
  from movimiento m1
       inner join (
         select m2.producto, max(m2.fecha) ultima_fecha
           from movimiento m2
          group by m2.producto
       ) q1
       on m1.producto = q1.producto
      and m1.fecha = q1.ultima_fecha
order by q1.ultima_fecha desc;

Funcionará en firebird 2 o superior. En versiones anteriores, deberás primero crear una vista con la tabla anidada (q1) y reestructurar el query.

Hasta luego.

__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita
  #5  
Antiguo 04-01-2008
vivamotos vivamotos is offline
Miembro
 
Registrado: ago 2006
Posts: 150
Poder: 18
vivamotos Va por buen camino
Felicidades

Me ha servido chavales, muchas grácias
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
consulta de group by gulder MySQL 1 25-11-2005 17:52:39
Consulta Group By tgsistemas SQL 3 30-05-2005 12:15:25
Consulta Con Group By VRO SQL 9 30-08-2004 18:06:07
Tipo de consulta con el Group By @-Soft SQL 7 09-12-2003 18:31:04
consulta con group by rinaib Oracle 4 26-09-2003 17:25:42


La franja horaria es GMT +2. Ahora son las 17:26:14.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi