Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Firebird e Interbase
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 05-12-2012
Avatar de Faust
Faust Faust is offline
Miembro
 
Registrado: abr 2006
Ubicación: México D.F.
Posts: 930
Poder: 19
Faust Va por buen camino
Podrías ser más claro en tu explicación
__________________
Herr Heins Faust
Responder Con Cita
  #2  
Antiguo 06-12-2012
marcial marcial is offline
Miembro
 
Registrado: may 2003
Posts: 147
Poder: 22
marcial Va por buen camino
Tengo una tabla LINEAS que contiene multiples registros con los campos codigo,descripcion,precio,cliente y fecha de venta; y necesito saber cual es el precio del último registro de cada articulo que ha consumido un determinado cliente.

El contenido de la tabla Lineas es el siguiente:
Articulo: 1 // Descripcion: Bacon // Precio: 10,00 // Fecha 10.10.2012 // Cliente: 20
Articulo: 2 // Descripcion: Salmon // Precio: 4,00 // Fecha 12.10.2012 // Cliente: 21
Articulo: 1 // Descripcion: Bacon // Precio: 9,80 // Fecha 15.10.2012 // Cliente 20
Articulo: 2 // Descripcion: Salmon // Precio: 4,15 // Fecha 18.10.2012 // Cliente: 20

Si quiero saber lo que ha consumido el cliente 20, me deberia de aparecer en un dbgrid:

Articulo: 1 Descripcion: Bacon Precio: 9,80 Fecha: 15.10.2012 <------- Último precio del cliente 20 articulo 1
Articulo: 2 Descripcion: Salmon Precio: 4,15 Fecha: 18.10.2012 <--------Último precio del cliente 20 articulo 2

Espero haberme explicado con más claridad
Responder Con Cita
  #3  
Antiguo 06-12-2012
Avatar de Faust
Faust Faust is offline
Miembro
 
Registrado: abr 2006
Ubicación: México D.F.
Posts: 930
Poder: 19
Faust Va por buen camino
Ah en el SQL haz un "ORDER BY FECHA DESC" en conjunto con un GROUP BY Articulo... ahorita no lo puedo probar pero chécalo
__________________
Herr Heins Faust
Responder Con Cita
  #4  
Antiguo 06-12-2012
celades1 celades1 is offline
Miembro
 
Registrado: ago 2005
Posts: 116
Poder: 19
celades1 Va por buen camino
Hola

creo que seria esto

Código SQL [-]
select a.descripcio,a.codigo,max(a.fecha),
avg((select a.precio from lineas where codigo=a.codigo and cliente=:cliente 
and fecha=(select max(fecha) from lineas where codigo=a.codigo and cliente=:cliente))) 
from lineas a 
where a.cliente=:cliente
group by a.descripcio,a.codigo

Panta
Responder Con Cita
  #5  
Antiguo 06-12-2012
Gallosuarez Gallosuarez is offline
Miembro
 
Registrado: feb 2007
Posts: 92
Poder: 18
Gallosuarez Va por buen camino
Talking Posible solución ...

Marcial:

Creo que esto es lo que quieres ...
Código SQL [-]
SELECT *
FROM LINEAS
WHERE CLIENTE = ID_CLIENTE_QUE_QUIERES
ORDER BY FECHA_CLIENTE DESC
ROWS 1 TO 10

La instrucción ROWS limita el número de resultados a los diez primeros ... ¿me explico}

Atte:
Gerardo Suárez Trejo

PD. No dejes de comentar como te fue ...
Responder Con Cita
  #6  
Antiguo 06-12-2012
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.105
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Creo que este hilo es lo que necesitas.
Responder Con Cita
  #7  
Antiguo 07-12-2012
marcial marcial is offline
Miembro
 
Registrado: may 2003
Posts: 147
Poder: 22
marcial Va por buen camino
Hola Celades1,Gallosuarez y Casimiro
Muchas Gracias por contestar.

Faust, Celades1 y Gallosuarez: No puedo probarlo hasta el Lunes (o a lo mejor el Sabado). Seguro que cuando lo pruebe comento algo.

Casimiro: He visto el hilo que dices pero, aparte de que no lo entiendo demasiado bien, lo he probado y pone "Max(Precio) as Precio,", con lo que me está dando el máximo precio y no el último, por lo que no me sirve así, y creo Firebird no tiene la sentencia (Ultimo).

Ya os diré algo cuando lo pruebe.
Responder Con Cita
  #8  
Antiguo 07-12-2012
Avatar de olbeup
olbeup olbeup is offline
Miembro
 
Registrado: jul 2005
Ubicación: Santiago de la Ribera (España)
Posts: 685
Poder: 19
olbeup Va camino a la fama
Hola marcial,

Que tal esta SQL:
Código SQL [-]
SELECT
    DESCRIPCION
    ,DOCMTO
    ,CANTIDAD
    ,PRECIO
    ,FECHA
    ,CLIENTEID
  FROM Lineas
  WHERE FECHA IN
          (
            SELECT
                MAX(FECHA)
              FROM Lineas
              GROUP BY DESCRIPCION, CLIENTEID
          )
        AND CLIENTEID = 158

Un saludo.
__________________
Al hacer una consulta SQL, haz que los demás te entiendan y disfruten de ella, será tú reflejo de tú saber.
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
Ayuda para la ayuda maxvera Varios 4 12-05-2007 20:13:44
Instalar Ayuda (.HLP) en la Ayuda de Delphi? MasterXP Varios 6 12-04-2006 06:57:49
Ayuda para crear ayuda... Gabriel2 Varios 2 10-06-2005 00:15:18
ayuda con strtofloat, ayuda punto flotante TURING Varios 5 30-04-2004 08:03:59
Ayuda Con Instalacion De Archivos De Ayuda Legolas Varios 1 01-12-2003 14:48:03


La franja horaria es GMT +2. Ahora son las 15:33:43.


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