PDA

Ver la Versión Completa : Ayuda con consultas min(fecha) max(fecha)


potlanos
04-11-2008, 16:47:33
Hola, tengo un problema con una consulta y no se como lo podria hacer (si se puede)...

tengo una tabla con los campos

fecha - precio
10/1 - 10
11/1 - 10
12/1 - 12
13/1 - 10
14/1 - 10

y quiero que salga este resultado :
fechadesde - fechahasta - precio
10/1 - 11/1 - 10
12/1 - 12/1 - 12
13/1 - 14/1 - 10

y ahora el que me sale con este select :
select min(fecha) , max(fecha) , precio from tabla
group by precio
es este :

fechadesde - fechahasta - precio
10/1 - 14/1 - 10
12/1 - 12/1 - 12

a ver si se puede hacer que salga como quiero...

gracias
Potlanos

droguerman
04-11-2008, 17:13:08
depende del gestor de base de datos? la idea seria aumentar un campo más que aumente en 1 según cambie el precio y luego usarlo el group by

potlanos
04-11-2008, 17:39:27
es sql server.

la idea que me das es buena, pero como puedo hacerlo para que sea algo rapido, ten en cuenta que esta tabla podran modificar los precios de cualquier dia , ese contador seria bastante dificil de controlar.

Gracias.

droguerman
04-11-2008, 17:57:52
Con tablas temporales, (falta probar):

Create table #t
(
fecha smalldatetime,
precio decimal(10,2),
grupo int
);
INSERT INTO #t(fecha, precio, grupo)
SELECT fecha, precio, 0 FROM tabla ORDER BY fecha;

DECLARE @oldPrecio DECIMAL(10,2);
DECLARE @grupo int;
SET @oldPrecio = -1; --valor que no existe
SET @grupo=0;
UPDATE #t set @grupo= grupo=(CASE WHEN @oldPrecio=precio THEN @grupo ELSE @grupo+1 END), @oldPrecio=precio=precio;
SELECT grupo, min(Fecha), max(Fecha), AVG(precio) FROM #t GROUP BY grupo;

pcicom
04-11-2008, 23:46:25
select fecha,precio,min(fecha) , max(fecha) from tabla
group by 1,2