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 consultas min(fecha) max(fecha) (https://www.clubdelphi.com/foros/showthread.php?t=61341)

potlanos 04-11-2008 16:47:33

Ayuda con consultas min(fecha) max(fecha)
 
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 :
Código SQL [-]
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):
Código SQL [-]
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

Código SQL [-]

select fecha,precio,min(fecha) , max(fecha) from tabla
        group by 1,2


La franja horaria es GMT +2. Ahora son las 16:17:09.

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