Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   SQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=6)
-   -   Ayuda con una consulta (https://www.clubdelphi.com/foros/showthread.php?t=94583)

darkerbyte 16-04-2020 07:35:55

Ayuda con una consulta
 
Hola

Estoy quebrandome la cabeza con una consulta, ojalá me puedas echar una mano por que no me doy idea.
Básicamente tengo dos tablas.

Código:

Productos
|-----------|-----------------|
| clave    | descripcion    |
|-----------|-----------------|
| coc600    | Coca-cola 600ml | 
| pep355    | Pepsi 355ml lat | 
| don4      | Donas Bimbo c4  |
|-----------|-----------------|

Compras
|--------|-------------|---------|
| folio  | claveProd  |  precio |
|--------|-------------|---------|
| 1      | coc600      | 11.20  | 
| 2      | coc600      | 10.90  | 
| 1      | pep355      | 10.80  | 
| 3      | coc600      | 11.05  | 
|--------|-------------|---------|

Lo que intento sacar es una consulta donde pueda obtener el ultimo precio de compra, es decir, obtener el valor de la columna precio en base a max(folio)

coc600 11.05
pep355 10.80
don4 0

Gracias de antemano por tu tiempo,

kuan-yiu 16-04-2020 08:27:06

A mi esto me funciona en Firebird:
Código SQL [-]
Select * from compras a
where folio in
(select max(folio)
from compras b
where a.claveProd=b.claveProd)

cloayza 16-04-2020 19:29:16

Utilizando el código sql del estimado compañero kuan-yiu, quisiera aportar una pequeña mejora...

Código SQL [-]
select p.clave,
       p.descripcion,
       coalesce(cp.precio,0)
from productos p
     left outer join
     (Select a.claveprod, a.precio
      from compras a
      where folio in
           (select max(folio)
            from compras b
            where a.claveprod=b.claveprod)
      ) cp on (cp.claveprod=p.clave)

Saludos cordiales

darkerbyte 16-04-2020 20:40:37

Cita:

Empezado por cloayza (Mensaje 536737)
Utilizando el código sql del estimado compañero kuan-yiu, quisiera aportar una pequeña mejora...

Código SQL [-]
select p.clave,
       p.descripcion,
       coalesce(cp.precio,0)
from productos p
     left outer join
     (Select a.claveprod, a.precio
      from compras a
      where folio in
           (select max(folio)
            from compras b
            where a.claveprod=b.claveprod)
      ) cp on (cp.claveprod=p.clave)

Saludos cordiales

muchas gracias, esta consulta funcionó perfecto,


La franja horaria es GMT +2. Ahora son las 07:06:56.

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