Atascado con una consulta SQL
Buenas tardes, a ver si alguien puede por favor arrojar luz en un tema que me tiene parado.
Tengo hecha una consulta sencilla para añadir descuentos en una tabla de LINEASALBARANCLIENTE recogiéndolos de otra tabla DTOSVENTASFAMILIA_ y previamente buscando el codigocliente de la tabla CABECERAALBARANCLIENTE, en función de que tenga descuento por familia y subfamilia o solo por familia. En la tabla de DTOSVENTASFAMILIA sólo aparecen los clientes que tiene tienen algún descuento.
El caso es que me funciona bien para los clientes que SI tienen descuentos, pero además le imputa descuentos aleatoriamente en líneas de clientes que NO tienen ningún descuento.
Yo no soy capaz de encontrar el fallo, más cuando no es constante, es decir hay albaranes de clientes que NO tiene descuento y en algunos de ellos lo pone y en otros NO. Algo se me está escapando pero no soy capaz de averiguar qué es.
Esta es la consulta en cuestión:
UPDATE LineasAlbaranCliente
SET [%Descuento] = c.[%Descuento1]
FROM CabeceraAlbaranCliente AS b INNER JOIN LineasAlbaranCliente ON b.NumeroAlbaran = LineasAlbaranCliente.NumeroAlbaran INNER JOIN DtosVentasFamilias_ AS c ON b.CodigoCliente = c.CodigoCliente AND LineasAlbaranCliente.CodigoFamilia = c.CodigoFamilia
WHERE (LineasAlbaranCliente.CodigoSubfamilia = c.CodigoSubFamilia) OR
(LineasAlbaranCliente.CodigoSubfamilia = '')
Tengo hecha una consulta sencilla para añadir descuentos en una tabla de LINEASALBARANCLIENTE recogiéndolos de otra tabla DTOSVENTASFAMILIA_ y previamente buscando el codigocliente de la tabla CABECERAALBARANCLIENTE, en función de que tenga descuento por familia y subfamilia o solo por familia. En la tabla de DTOSVENTASFAMILIA sólo aparecen los clientes que tiene tienen algún descuento.
El caso es que me funciona bien para los clientes que SI tienen descuentos, pero además le imputa descuentos aleatoriamente en líneas de clientes que NO tienen ningún descuento.
Yo no soy capaz de encontrar el fallo, más cuando no es constante, es decir hay albaranes de clientes que NO tiene descuento y en algunos de ellos lo pone y en otros NO. Algo se me está escapando pero no soy capaz de averiguar qué es.
Esta es la consulta en cuestión:
UPDATE LineasAlbaranCliente
SET [%Descuento] = c.[%Descuento1]
FROM CabeceraAlbaranCliente AS b INNER JOIN LineasAlbaranCliente ON b.NumeroAlbaran = LineasAlbaranCliente.NumeroAlbaran INNER JOIN DtosVentasFamilias_ AS c ON b.CodigoCliente = c.CodigoCliente AND LineasAlbaranCliente.CodigoFamilia = c.CodigoFamilia
WHERE (LineasAlbaranCliente.CodigoSubfamilia = c.CodigoSubFamilia) OR
(LineasAlbaranCliente.CodigoSubfamilia = '')
Respuesta de tnathos