Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   SQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=6)
-   -   Consultar a fechas proximas (https://www.clubdelphi.com/foros/showthread.php?t=62370)

Alinsan 18-12-2008 19:38:19

Consultar a fechas proximas
 
Saludos

El caso es el siguiente, tengo una tabla llamada Mercados, la cual contiene varios campos, entre los cuales hay uno que se llama fecha de cotizacion, un mercado puede ser cotizado n dias, la situacion es que se realizara una comparacion entre diferentes mercados, para esto se da una fecha limite y se debe obtener la informacion correspondiente de los mercados a comparar, el mercado "A" esta cotizado ayer, el "B" 2 dias antes, el "C" 1 semana antse, etc, etc.
COmo puedo realizar una consulta para que logre esto, por el momento lo que hago es utilizar el top en las subconsultas de los campos para que me devuelva el primer registro y esta ordenado por fecha.
Gracias de antemano

Caral 18-12-2008 19:44:31

Hola
No entiendo bien, pero tal ven indicando el mercado y usando Last, serviría, no se.
Saludos

Alinsan 18-12-2008 20:09:36

Me disculpo por mi falta de claridad, a ver si puedo explicarlo un poco mas..

Tengo la tabla mercado con los campos
id_m Nombre_m Fecha_Cot Precio_m

En esta tabla se almacenan todas la cotizaciones realizadas de los difertentes mercados.
Ahora, tengo que realizar una consulta que de por ejemplo el siguiente resultado

Si eligieramos un rango de fechas entre el 1 y el 18 de diciembre, y en este rango hubieran 5 cotizaciones del mercado 1, tener una consulta que me retorne

id_m Nombre_m Precio1(de la Fecha 1) Precio2(de la Fecha 2) Precio3(de la Fecha 3) Precio4(de la Fecha 4) Precio5(de la Fecha 5)

no se si se entendio mejor la situacion
Gracias

PepeLolo 20-12-2008 03:07:29

Una SQL no puede devolver filas como columnas, para que me entiendas no es posible hacer d_m Nombre_m Precio1(de la Fecha 1) Precio2(de la Fecha 2) Precio3(de la Fecha 3) Precio4(de la Fecha 4) Precio5(de la Fecha 5),
cuando los datos se guardan con esta estructura.
id_m Nombre_m Fecha_Cot Precio_m.

Por lo que para estos casos lo mejor es usar indicadores(DecisionCube o PivotCube), estos te permiten tratar los datos recuperados por una SQL como una tabla dinamica, de forma que puedes conseguir lo que buscas y de paso que el usuario pueda estrucutrar la información como más le interese.

Dejo un enlace a un artículo de Marteens

Kipow 20-12-2008 07:11:50

Que bd utilizas?, en firebird, no estoy seguro si de la version 2.0 en adelante existe la funcion LIST. con esto podrias hacer algo asi

Código SQL [-]
select id_m Nombre_m, LIST(fecha_cot), LIST(precio_m)
from mercado
where fecha_cot between :fecha1 and fecha2
group by id_m Nombre_m

List te devolvera una cadena de caraceteres. separadas por comas.


La franja horaria es GMT +2. Ahora son las 19:40:06.

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