Club Delphi  
    Paypal   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 01-03-2008
Avatar de gluglu
[gluglu] gluglu is offline
Miembro Premium
 
Registrado: sep 2004
Ubicación: Málaga - España
Posts: 1.455
Poder: 23
gluglu Va por buen camino
Bravo, Caro !

A primera vista me parecía que no funcionaría, pero haciendo ciertas pruebas con sets de datos propios, creo que sí, que funciona.

A ver si Gabo puede probar esa sentencia con sus propios datos y confirmar que el Select devuelve los datos como él desea.
__________________
Piensa siempre en positivo !
Responder Con Cita
  #2  
Antiguo 01-03-2008
Avatar de gluglu
[gluglu] gluglu is offline
Miembro Premium
 
Registrado: sep 2004
Ubicación: Málaga - España
Posts: 1.455
Poder: 23
gluglu Va por buen camino
Pues va a ser que no ....

Tal y como estoy dándole a enviar al post anterior, me doy cuenta que no funciona correctamente.

Al probarlo con mi propio set de datos, resulta que la condición del Max la estaba poniendo a un campo cuyos valores son únicos. Es decir, dos registros diferentes no pueden tener el mismo valor de ese campo.

Aplicado al ejemplo de Gabo. Si la fecha fuera única para cada registro, entonces funcionaría. En el ejemplo que ha puesto Gabo, las fechas si son únicas. Pero Gabo tendría que confirmar si en una misma fecha puede haber dos Empresas diferentes con precios diferentes.

Si fuera así, debo de entender que no funcionaría. Pero aun así, me queda la duda.

En cualquier caso, deberíamos de saber si la fecha es única.
__________________
Piensa siempre en positivo !
Responder Con Cita
  #3  
Antiguo 01-03-2008
Avatar de gluglu
[gluglu] gluglu is offline
Miembro Premium
 
Registrado: sep 2004
Ubicación: Málaga - España
Posts: 1.455
Poder: 23
gluglu Va por buen camino
Efectivamente, lo he probado y creo ratificarme en mi comentario anterior.

Con el set de datos de Gabo funciona perfectamente, y la lógica es correcta.

En cambio, si las fechas se pueden repetir, no funciona. Por ejemplo he probado con los siguientes registros en la Tabla Productos:

Código:
PRODUCTO
--------
21  01  11  02/12/07  23,34
22  01  12  01/12/07  20,67
23  02  11  04/12/07  56,67
24  01  11  03/12/07  26,78
25  02  11  07/12/07  34,56
26  01  12  08/12/07  56,78
27  02  11  08/12/07  99,99  
28  02  12  08/12/07  88,88
29  02  12  08/12/07  77,77
Y el resultado que obtengo con la consulta anteriormente expuesta es :

Código:
TIPO     EMPRESA     PRODUCTO     FECHA     PRECIO
---------------------------------------------------   
PRIMERA  JB MARTINEZ 26           08/12/07  56,78
PRIMERA  COLABE      28           08/12/07  88,88
PRIMERA  COLABE      29           09/12/07  77,77
SEGUNDA  JB MARTINEZ 24           03/12/07  26,78
SEGUNDA  COLABE      27           08/12/07  99,99
Es decir, obtenemos dos registros diferentes para 'PRIMERA' y 'COLABE' porque la fecha del 08/12/07, en la cual COLABE tiene un precio, corresponde a una 'Fecha Máxima' de otro par Empresa/Tipo. Y por lo tanto me la incluye en el resultado ya que esa fecha está incluida en la subconsulta que plantea Caro.

__________________
Piensa siempre en positivo !
Responder Con Cita
  #4  
Antiguo 04-03-2008
Avatar de Gabo
[Gabo] Gabo is offline
Miembro Premium
 
Registrado: mar 2007
Ubicación: Murcia (España)
Posts: 684
Poder: 20
Gabo Va por buen camino
Hola,

antes que todo, perdón por la demora, pero el fin de semana no he estado en casa y el lunes he tenido que andar corriendo de una empresa a otra...

Gracias Caro por tu respuesta. En principio pensé que funcionaba bien, pero tal como ha dicho gluglu presenta un fallo cuando dos empresas tienen una oferta un mismo día. Puede darse el caso de que te aparezcan dos ofertas (de distinta fecha) de una empresa a un tipo de producto por encontrarse dicha fecha en el listado del primer select.

Hoy estaré liado también , pero mañana intentaré darle solución con un procedimiento y lo publico...

Un saludo a todos y gracias por el interés, en especial a gluglu y a Caro...
__________________
Saludos,
Gabo

A menos que se indique lo contrario, el código estará hecho en C++Builder.
Responder Con Cita
  #5  
Antiguo 05-03-2008
Avatar de Gabo
[Gabo] Gabo is offline
Miembro Premium
 
Registrado: mar 2007
Ubicación: Murcia (España)
Posts: 684
Poder: 20
Gabo Va por buen camino
Les cuento como quedó todo a las finales...

Como me apuraba un poco la solución y todavía no me manejo bien con los procedimientos (los saco pero me demoro ) a las finales lo resolví así:

Primero ejecuto esta consulta:

Código SQL [-]
select tipo_codigo, empresa_codigo, MAX(producto_fecha)
from producto
group by tipo_codigo, empresa_codigo

Con lo que obtengo los tres datos que identifican a los registros de la tabla producto que me interesan, ya que la fecha nunca se repite para un mismo tipo y empresa. Luego con esos tres datos, obtengo el nombre del producto y su precio, el nombre del tipo y el nombre de la empresa.

No dudo que habrán modos mejores y más rápidos de implementar, pero este fue el más rápido que se me ocurrió.

Gracias a todos nuevamente...
__________________
Saludos,
Gabo

A menos que se indique lo contrario, el código estará hecho en C++Builder.
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
Articulo sobre la facilidad de probar componentes open source en windows sobre linux gmontes Noticias 0 22-08-2007 22:34:16


La franja horaria es GMT +2. Ahora son las 09:39:46.


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