Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > SQL
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 14-11-2011
Avatar de mRoman
mRoman mRoman is offline
Miembro
 
Registrado: nov 2003
Posts: 599
Poder: 21
mRoman Va por buen camino
Historial de precios con SQL

Hola amigos del foro, nuevamente pidiendo su ayuda para dar con algunas ideas de como solucionar una consulta q a continuación les describo:

Trabajo con Delphi6 y Firebird 1.5.

Tengo una tabla donde registro PRODUCTOS a distribuir mismos que se venden el mismo dia de su distribucion. Los campos de las tablas que intervienen en la consulta, son los siguientes:

PRODUCTO_DISTRIBUIDO
(pk)cve_producto
(pk)fecha_distribucion
(pk)cve_cliente

CLIENTE
(pk)cve_cliente
descripcion
cve_tipo_cliente

PRODUCTO
cve_producto
descricpion

PRODUCTO_PRECIO (aqui guardo un historico de precios del producto)
(pk)cve_producto
(pk)cve_tipo_cliente
(pk)fecha_aplicacion_nvo_precio
precio_nuevo

La cosa es, obtener mediante SQL una consulta q me de, entre otros datos, el precio (precio_nuevo) del producto q le corresponde en base a su fecha de distribución, es decir el precio_nuevo lo tendría que "traer" de la tabla PRODUCTO_PRECIO, me explico mejor:

supongamos que en la tabla de PRODUCTO_DISTRIBUIDO, están los siguientes datos:
cve_producto fecha_distribución cve_cliente
1 '23/10/2011' 1
1 '15/11/2011' 1
2 '24/10/2011' 2
2 '25/10/2011' 2
1 10/11/2011' 2

en la tabla de PRODUCTO_PRECIO los siguientes:
cve_producto cve_tipo_cliente fecha_aplicacion_nvo_precio precio_nuevo
1 A '02/02/2005' $ 80.00
2 A '02/02/2005' $75.00
1 B '02/02/2005' $90.00
2 B '02/02/2005' $76.00
1 A '24/10/2011' $100.00
2 A '24/10/2011' $105.00
1 B '24/10/2011' $95.00
2 B '24/10/2011' $80.00

en CLIENTE
cve_cliente descripcion cve_tipo_cliente
1 'BLA BLA1' A
2 'BLA BLA2' A
3 'BLA BLA3' B

en PRODUCTO
cve_producto descripcion
1 leche entera
2 aceite girasol
3 etcetera


Ahora que query sería para obtener esto:
cve_producto fecha_distribucion cve_cliente precio_nuevo

tomando en cuenta que el precio_nuevo debe corresponder al precio registrado en la tabla PRODUCTO_PRECIO y que este corresponda o sea el correcto según en la fecha que se distribuirá.

No se ustedes, pero siento que no fuí lo suficientemente explícito o más bien como q "cantinflie". Bueno agrego solo siguiente. Necesito recuperar el precio que tenia antes de la fecha en el cual se actualizó (fecha_aplicacion) y también recuperar el precio q tiene actualmente por cada cliente y que el precio se muestre dependiendo el tipo de cliente, todo esto en base segun el campo de fecha_distribución....

Si no me di a enteder, favor de comentarlo para ampliar mas la explicación....espero sus comentarios.
__________________
Miguel Román

Afectuoso saludo desde tierras mexicanas....un aguachile?, con unas "cetaseas" bien "muertas"?, VENTE PUES !!
Responder Con Cita
  #2  
Antiguo 15-11-2011
celades1 celades1 is offline
Miembro
 
Registrado: ago 2005
Posts: 116
Poder: 19
celades1 Va por buen camino
hola

Código SQL [-]
 
select a.cve_producto,a.fecha_distribucion,a.cve_cliente,
(select precio_nuevo from PRODUCTO_DISTRIBUIDO c
where c.cve_tipo_cliente=b.cve_tipo_cliente
and c.cve_producto a.cve_producto and fecha_aplicacion_nvo_precio=
(select min(fecha_aplicacion_nvo_precio) from PRODUCTO_DISTRIBUIDO c
where c.cve_tipo_cliente=b.cve_tipo_cliente
and c.cve_producto a.cve_producto and fecha_aplicacion_nvo_precio>=a.fecha_distribucion)) precio
from PRODUCTO_PRECIO  a
join CLIENTE b on b.cve_cliente=a.cve_cliente

Esto te dara el precio de la fecha mas cerca por la parte superior de la fecha de distribucion

Si quieres otra cosa solo debes jugar con el min i con el >

Espero haberte entendido , no se si firebird 1.5 permite selects anidadas el 2.0 y el 2.5 seguro

Saludos
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Historial de operaciones Genis Varios 1 08-10-2010 22:47:23
TWebBrowser, Historial de Navegación elcolo83 Internet 4 21-12-2007 15:47:04
Consulta Historial De Llamadas elprimo MS SQL Server 34 19-10-2007 21:05:38
Formulario desactivar historial papulo HTML, Javascript y otros 3 06-08-2007 18:13:47
Redondeo de precios miquellg Varios 6 27-12-2006 18:59:55


La franja horaria es GMT +2. Ahora son las 16:29:38.


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
Copyright 1996-2007 Club Delphi