![]() |
update if isnull saludos, creo que me he atorado en algo que aparentemente es simple, tengo el siguiente update Código: update fsv_pagos_oficiales a, fsv_pagos_no_oficiales by fsv_pagos_oficiales no tiene este dato default, por lo cual antes de generar algunos reportes deseo que todos aquellos campos que si tengan un codemp en la tabla fsv_pagos_no_oficiales se actualicen con este codemp, y a todas los demas pagos, asignarles el codemp 51. mas que obvio el codigo esta mal, ya que al poner esta linea where a.prestamo_id=b.prestamo_id me esta considerando solo las coincidencias entre ambas tablas, pero yo necesito considerar todo, y las que existan que les ponga el dato correspondiente y las que no les ponga 51, intentare con EXISTS pero si alguien me hehca la mano, se lo agradecere mucho. saludos |
Re: update if isnull Cita:
Creo que lo que quieres puedes hacerlo en una sola tabla. Imagina que la tabla donde tienes los nulos se llama t2 y el campo campot2 UPDATE `t2` SET campot2 = 51 WHERE campot2 IS NULL pero comprueba siempre antes haciendo un select SELECT * FROM t2 WHERE campot2 IS NULL Si va bien y te muestra los que quieres cambiar, haz el UPDATE... Eso te cambiará todos los nulos de esa tabla por 51. A ver si es esto lo que quieres. |
Re: update if isnull creo que no me explique bien, son 2 tablas, no es que lo quiera hacer con 2 tablas... una tabla contiene una lista de pagos no oficiales, en la cual tenemos identificados provisionalmente que empleado merece una comision por esos pagos, pero luego nos envian los pagos oficiales, estos al venir de una entidad externa, a la empresa, no vienen identificados a que empleado le pertenecen, entonces lo que debo hacer es una comparacion entre ambos, y a la tabla que me contiene los pagos oficiales agregarle el empleado correspondiente, segun la lista que se encuentra en la tabla de pagos no oficiales, para esquematizar un poco: pagos_no_oficiales prestamo_id int, prestamo_deudor varchar(60), gestor_id int, --> este es el empleado prestamo_pago decimal(10,2) pagos_oficiales prestamo_id int, prestamo_deudor varchar(60), prestamo_pago decimal(10,2) a la tabla de pagos_oficiales le agrego el campo gestor_id para que se logre identificar segun la tabla de pagos_no_oficiales el gestor correspondiente, ya con datos Código HTML: <strong>Pagos_no_oficiales</strong>Por el momento lo hago con 2 pasos, un update de lo identificado y luego uno con lo que no identifico.... pero estoy seguro que se puede hacer en un solo paso.. espero ver sus comentarios |
Re: update if isnull Prueba esto a ver si va: UPDATE pagos_oficiales b LEFT JOIN pagos_no_oficiales p ON p.prestamo_id=b.prestamo_id SET b.prestamo_id = 51 WHERE p.prestamo_id IS NULL Esto, si no me he equivocado, te actualizará los prestamo_id de pagos_no_oficiales con 51 cuando los números no aparezcan como prestamo_id en pagos_oficiales |
| La zona horaria es GMT -6. Ahora son las 08:19. |
Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.