Si saliera m�s de un registro por producto, quiere decir: que a misma fecha y producto tiene varios precios -para una misma clave �nica: PRODUCTO, FECHA-. Lo cual indica una seria incongruencia en los datos, creo que si mi sentencia no es v�lida, habr�a que replantear la tabla2.
Algo as�: > > tabla1: producto > fecha (Un solo registro por producto) > > tabla2: producto > hastafecha > precio (varios registros por producto) > tabla1 producto fecha CLAVOS 20020918 TUERCAS 20020106 tabla2 producto hastafecha precio ->CLAVOS 20020918 1000 ->CLAVOS 20020918 2000 CLAVOS 20020718 1000 CLAVOS 20020818 1000 en cualquier caso, -y a�n con mal planteamiento inicial de la tabla2-, si existen precios distintos para mismo producto y misma fecha, creo que tiene sentido incluirlo en el group by. Un saludo, Miguel ----- Original Message ----- From: "Fernando P�rez" <[EMAIL PROTECTED]> To: <[EMAIL PROTECTED]> Sent: Monday, December 16, 2002 11:19 AM Subject: RE: Sentencia SQL No podr�as. F�jate que si pones el precio en el group by te saldr�a m�s de un registro por producto, y el max(fecha) ser�a a nivel de producto y precio, en lugar de solamente a nivel de producto. Creo que no hay forma de sacar los datos con un group by y solo una sentencia (la sentencia de Jos� Luis son en realidad dos, ya que tiene dos select). Se quiere el precio del producto correspondiente al registro de la segunda tabla con la mayor fecha . �sta se obtiene con un Max, pero el precio no es recuperable con ninguna funci�n que se pueda aplicar en el Group by Saludos. Fernando P�rez. Cer�mica Saloni. Dpto. Sistemas <mailto:[EMAIL PROTECTED]> -----Mensaje original----- De: Miguel Angel Peinador [mailto:[EMAIL PROTECTED]] Enviado el: lunes, 16 de diciembre de 2002 10:44 Para: [EMAIL PROTECTED] Asunto: Re: Sentencia SQL bueno, tambi�n se puede incluir en el select (y en el group by) Select producto, fecha, max(hastafecha), precio from tabla1 a, tabla2 b where a.producto = b.producto and fecha >= hastafecha group by producto, fecha, precio lo de la eficiencia ya depende de muchos factores..., a mi no me va muy mal probandolo con fichero gordos, pero si tuviera que hacer algo similar -y pudiera elegir- no usar�a SQL sino RPG � COBOL, que ser�a mucho m�s eficiente. ----- Original Message ----- From: "Fernando P�rez" <[EMAIL PROTECTED]> To: <[EMAIL PROTECTED]> Sent: Monday, December 16, 2002 10:26 AM Subject: RE: Sentencia SQL Esta sentencia ser�a la mas eficiente si no tuviera que recuperar tambi�n el precio de la segunda tabla. Al tener que recuperarlo obligar�a a un segundo sql sobre la segunda tabla, buscando por producto y la fecha recuperada en el primero. Saludos. Fernando P�rez. Cer�mica Saloni. Dpto. Sistemas <mailto:[EMAIL PROTECTED]> -----Mensaje original----- De: Miguel Angel Peinador [mailto:[EMAIL PROTECTED]] Enviado el: lunes, 16 de diciembre de 2002 10:09 Para: [EMAIL PROTECTED] Asunto: Re: Sentencia SQL prueba con esto: Select producto, fecha, max(hastafecha) from tabla1 a, tabla2 b where a.producto = b.producto and fecha >= hastafecha group by producto, fecha Un saludo, Miguel ----- Original Message ----- From: "Jose Luis Mur Lalueza" <[EMAIL PROTECTED]> To: <[EMAIL PROTECTED]> Sent: Sunday, December 15, 2002 6:34 PM Subject: Sentencia SQL > Hola, > > C�mo resolver�ais esto con SQL? > > tabla1: producto > fecha (Un solo registro por producto) > > tabla2: producto > hastafecha > precio (varios registros por producto) > > > Necesito unir las 2 tablas, un solo registro de la tabla2 cuyo campo fecha > sea el m�s proximo inferior o igual al campo fecha de la tabla1. > > Los obtengo con la siguiente sentencia: Select * from tabla1 a, tabla2 b > where a.producto = b.producto and b.hastafecha = (select max(hastafecha) > from tabla2 c where b.producto = c.producto and c.hastafecha <= a.fecha) > > El problema es que me genera una via de acceso de la tabla2 y tiene muchos > registros > > Se os ocurre algo? > > slds > Jos� Luis > > > > _____________________________________________________ > Forum.HELP400 es un servicio m�s de NEWS/400. > � Publicaciones Help400, S.L. - Todos los derechos reservados > http://www.help400.es > _____________________________________________________ > > Para darte de baja, env�a el mensaje resultante de pulsar > mailto:[EMAIL PROTECTED]?body=LEAVE _____________________________________________________ Forum.HELP400 es un servicio m�s de NEWS/400. � Publicaciones Help400, S.L. - Todos los derechos reservados http://www.help400.es _____________________________________________________ Para darte de baja, env�a el mensaje resultante de pulsar mailto:[EMAIL PROTECTED]?body=LEAVE _____________________________________________________ Forum.HELP400 es un servicio m�s de NEWS/400. � Publicaciones Help400, S.L. - Todos los derechos reservados http://www.help400.es _____________________________________________________ Para darte de baja, env�a el mensaje resultante de pulsar mailto:[EMAIL PROTECTED]?body=AVE _____________________________________________________ Forum.HELP400 es un servicio m�s de NEWS/400. � Publicaciones Help400, S.L. - Todos los derechos reservados http://www.help400.es _____________________________________________________ Para darte de baja, env�a el mensaje resultante de pulsar mailto:[EMAIL PROTECTED]?body=LEAVE _____________________________________________________ Forum.HELP400 es un servicio m�s de NEWS/400. � Publicaciones Help400, S.L. - Todos los derechos reservados http://www.help400.es _____________________________________________________ Para darte de baja, env�a el mensaje resultante de pulsar mailto:[EMAIL PROTECTED]?body=AVE _____________________________________________________ Forum.HELP400 es un servicio m�s de NEWS/400. � Publicaciones Help400, S.L. - Todos los derechos reservados http://www.help400.es _____________________________________________________ Para darte de baja, env�a el mensaje resultante de pulsar mailto:[EMAIL PROTECTED]?body=LEAVE
