Gracias Juan Carlos, anduvo perfecto! _____
De: [email protected] [mailto:[EMAIL PROTECTED] En nombre de Juan Carlos Vazquez Enviado el: Viernes, 28 de Marzo de 2008 10:21 a.m. Para: [EMAIL PROTECTED] Asunto: [dbms] Update desde otra tabla Alejandro, Esta es una forma de hacerlo, en mis pruebas actualizo bien : UPDATE T1 SET nNro = (SELECT top 1 CabecerT2.nNro FROM CabecerT2 INNER JOIN RenglonT2 ON CabecerT2.nEmpresa = RenglonT2.nEmpresa AND CabecerT2.nPunto = RenglonT2.nPunto WHERE RenglonT2.nProducto = T2a.nProducto ORDER BY CabecerT2.fFecha DESC) FROM T1 INNER JOIN RenglonT2 T2a ON T1.nProducto = T2a.nProducto Saludos, Juan Carlos. _____ De: [email protected] [mailto:[EMAIL PROTECTED] En nombre de Alejandro A. ALEKSICH Enviado el: Viernes, 28 de Marzo de 2008 09:47 a.m. Para: jcv Asunto: [dbms] Update desde otra tabla Gracias por responder. Si, es una estructura maestro-detalle. Puntualmente es cabecera-detalle de Remitos. El tema es que de todos los remitos de un determinado producto debo tomar el más reciente, o sea, el que tiene mayor fecha. De ese remito, tomo un valor de su cabecera y actualizo una tercera tabla. Entonces: T1 es la 3º tabla nEmpresa y nPunto son las claves del Rem (en realidad hasy un 3º campo en la clave pero para no complicarlo más solo digo q son 2) update T1 set nNro = (select CabecerT2.nNro from CabecerT2 INNER JOIN RenglonT2 ON CabecerT2.nEmpresa = RenglonT2 .nEmpresa AND CabecerT2.nPunto = RenglonT2 .nPunto WHERE MAX(CabecerT2.fFecha) ) where RenglonT2 .nProducto = T1.nProducto Gracias.- _____ De: [email protected] [mailto:[EMAIL PROTECTED] En nombre de Juan Carlos Vazquez Enviado el: Viernes, 28 de Marzo de 2008 09:26 a.m. Para: [EMAIL PROTECTED] Asunto: [dbms] Update desde otra tabla Alejandro, Entiendo que T2 es un maestro-detalle, cual es la PK ?, nPunto ? Porque en el Renglon tenes nEmpresa ? Luego queres actualizar sobre T1 nNro que esta en la cabecera de T2 sobre una columna que parece ser del detalle. Porque no nos aclaras como es la estructura y que pretendes obtener. Saludos, Juan Carlos -----Mensaje original----- De: [email protected] [mailto:[EMAIL PROTECTED] En nombre de Alejandro A. ALEKSICH Enviado el: Jueves, 27 de Marzo de 2008 06:26 p.m. Para: jcv Asunto: [dbms] Update desde otra tabla Buenas, necesito armar una sentencia SQL que actualice el campo de una tabla con el valor tomado desde otra tabla. Mi problema yace en que debo tomar un solo registro de de 2º tabla el cual cumple la condición de tener la mayor fecha, o sea es el más reciente. Sería algo como: update T1 set nNro = (select CabecerT2.nNro from CabecerT2 INNER JOIN RenglonT2 ON CabecerT2.nEmpresa = RenglonT2 .nEmpresa AND CabecerT2.nPunto = RenglonT2 .nPunto WHERE MAX(CabecerT2.fFecha) ) where RenglonT2 .nProducto = T1.nProducto Se que no esta bien escrita la sentencia pero eso sería lo que necesito más o menos lo que necesito. Estoy trabajando con SQL Server 2k Gracias.- __________ NOD32 2981 (20080328) Information __________ This message was checked by NOD32 antivirus system. http://www.eset.com __________ NOD32 2981 (20080328) Information __________ This message was checked by NOD32 antivirus system. http://www.eset.com
