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 14-10-2008
PacoPepe PacoPepe is offline
Miembro
 
Registrado: ene 2006
Ubicación: Córdoba, España
Posts: 86
Poder: 19
PacoPepe Va por buen camino
Unhappy Consulta SQL

Necesito hacer la siguiente consulta en Firebird:

Tengo una tabla de Materias Primas (MATERIASPRIMASDET) que contiene el proveedor de la materia prima (campos IDPROVEEDOR, PROVEEDOR), el PRECIO de compra de esa materia prima y la FECHA con el precio de esa materia prima.

Si un proveedor cambia el precio de su materia prima, se añade una nueva fila con todos esos campos.
Una misma materia prima tiene varios proveedores

Necesito saber para una determinada materia prima, el último precio que me ha dado cada proveedor.

Código SQL [-]select distinct IDPROVEEDOR, max(fecha) AS FECHAMAX, PROVEEDOR from MATERIASPRIMASDET where IDMATERIAPRIMA = 61 group by idproveedor, PROVEEDOR


Con esta consulta de arriba (al que le falta el campo FECHA)
obtengo el resultado adecuado, pero al añadirle el campo fecha

Código SQL [-]select distinct IDPROVEEDOR, max(fecha) AS FECHAMAX, PROVEEDOR , FECHA from MATERIASPRIMASDET where IDMATERIAPRIMA = 61 group by idproveedor, PROVEEDOR



obtengo todas las líneas correspondientes a esa materia prima,
las últimas, las primeras y las del medio.

Alguien me podría ayudar.


Un saludo y muchas gracias
Responder Con Cita
  #2  
Antiguo 14-10-2008
PacoPepe PacoPepe is offline
Miembro
 
Registrado: ene 2006
Ubicación: Córdoba, España
Posts: 86
Poder: 19
PacoPepe Va por buen camino
Unhappy

En la previsualizacion se veia correctamente, con las etiquetas SQL funcionando correctamente
Responder Con Cita
  #3  
Antiguo 14-10-2008
Avatar de poliburro
[poliburro] poliburro is offline
Miembro Premium
 
Registrado: ago 2004
Ubicación: México D.F
Posts: 3.068
Poder: 23
poliburro Va por buen camino
Código SQL [-]
 
         Select Detalle.IDPROVEEDOR, Filtro.FechaMax, Detalle.Proveedor, Detalle.Fecha
           From MATERIASPRIMASDET  Detalle
    Inner Join (
                          Select IDPROVEEDOR, max(fecha) FechaMAx
                            From MATERIASPRIMASDET 
                          where IDMATERIAPRIMA = 61 
                      group by idproveedor
                    ) Filtro
              On Detalle.IDPROVEEDOR = Filtro.IDPROVEEDOR And
                    Detalle.Fecha = Filtro.FechaMAx
__________________
Conoce mi blog http://www.edgartec.com

Última edición por poliburro fecha: 14-10-2008 a las 15:53:36.
Responder Con Cita
  #4  
Antiguo 14-10-2008
PacoPepe PacoPepe is offline
Miembro
 
Registrado: ene 2006
Ubicación: Córdoba, España
Posts: 86
Poder: 19
PacoPepe Va por buen camino
Ahora si, muchas gracias

Quedaría así

Código SQL [-]

Select D.IDPROVEEDOR, D.Proveedor, D.Fecha, D.precio
           From MATERIASPRIMASDET  D
    Inner Join (
                          Select IDPROVEEDOR, max(fecha) as FechaMAx
                            From MATERIASPRIMASDET 
                          where IDMATERIAPRIMA = 61 
                      group by idproveedor
                    ) F
              On D.IDPROVEEDOR = F.IDPROVEEDOR and
                    D.Fecha = F.FechaMAx
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
Realizar una consulta sobre los registros que devuelve otra consulta Borjaserrano Firebird e Interbase 12 01-10-2007 23:19:44
Consulta dentro de otra consulta judit25 Conexión con bases de datos 1 25-06-2007 15:52:15
consulta sobre consulta superhopi SQL 2 16-05-2003 19:01:47


La franja horaria es GMT +2. Ahora son las 08:19:44.


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