Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   SQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=6)
-   -   Procedure con ultima compra. (https://www.clubdelphi.com/foros/showthread.php?t=45640)

Producto77 10-07-2007 12:16:55

Procedure con ultima compra.
 
Hola a todos:
En mi pequeña aplicación de gestión quiero poner un botón, que devuelva la última compra del material seleccionado. He pensado en un procedure, que mandandole el material me diga la última compra.
Tengo las típicas tablas : Facturas_Proveedores, Lineas_Facturas_Proveedores, pero al realizar la consulta :
Select max(Fecha), Factura from Facturas_Proveedores Where......

nada "SQL Error, Invalid column reference"
Utilizo InterBase

Gracias por adelantado.

oscorm 10-07-2007 13:28:51

tendras que explicar bien la consulta y sobre todo dar informacion acerca de la estructura de las tablas a consultar para poder ayudarte

Producto77 10-07-2007 13:40:16

Perdón,,,,
 
vamos a ver:
tengo una tabla (Facturas_Proveedores), donde guardo el numero, la fecha, el proveedor, tipo de IVA......
y otra (Lineas_Facturas_Proveedores), donde guardo el material, el precio, el descuento y la cantidad. Relacionadas con master-detail.

Pues yo necesitaria un procedure que dandole el cod de material, sea capaz de devolverme la útima vez que se compró el material:

NumFactura, CodProveedor, FechaFactura, CantidadMaterial, Descuento, PrecioMaterial.
Yo habia pensado en un max(FechaFactura), pero NO se como generar la consulta !
Para saber cual fue la última vez que compré ese material, a que precio, y en que factura.

Un saludo.

basti 10-07-2007 18:08:50

Puedes usar order by para eso:
Código SQL [-]
  select * from lineas left outer join facturas on (lineas.factura = facturas.numero) order by fecha desc

así el primer registro será la última compra. Esto te devuelve todas las líneas de facturas.

Dependiendo de la base de datos que uses tendrás que poner TOP, FROM, LIMIT, etc. para que te devuelva sólo un registro.

gabrielkc 10-07-2007 19:12:04

Cita:

Empezado por Producto77
Hola a todos:
Select max(Fecha), Factura from Facturas_Proveedores Where......

nada "SQL Error, Invalid column reference"
Utilizo InterBase

Gracias por adelantado.

Mi primera impresión dado que no pusiste la consulta completa es que te faltó agrupar los campos, cuando haces una consulta que involucra funciones que agrupan datos: SUM, MAX, etc. debes agrupar TODOS los demas campos con group by, osea para mi tu consulta debería de quedar así:

SELECT MAX(Fecha), Factura FROM Facturas_Proveedores WHERE condicion GROUP BY Factura


La franja horaria es GMT +2. Ahora son las 23:36:43.

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