MySQL - Consulta MySQL devuelve datos duplicados por JOIN

 
Vista:

Consulta MySQL devuelve datos duplicados por JOIN

Publicado por dgmegias (1 intervención) el 28/07/2016 02:13:20
Un cordial saludo a todos.
Tengo una consulta en MySQL y he descubierto que me duplica registros al ejecutarla....la consulta se basa en obtener datos de tres tablas......

Cabe_Facturas
Line_Facturas
Articulos

He comprobado que eliminando la unión y los campos de la tabla Articulos los registros no se duplican pero pierdo información que necesito......alguien podría indicarme como solventarlo ?

1
2
3
4
5
6
7
CREATE DEFINER=`root`@`localhost` PROCEDURE `Consulta dvsoftware_cabe_facturas Cabecera y Lineas VENTAS`(IN ejer1 Int, IN ejer2 Int,IN alb1 Int, IN alb2 Int, IN falb1 date, IN falb2 date,IN cli1 Int, IN cli2 Int,IN vend1 Int, IN vend2 Int,IN prov1 Int, IN prov2 Int, IN art1 Int,IN art2 Int)
BEGIN
SELECT dvsoftware_cabe_facturas.ejercicio, dvsoftware_cabe_facturas.albaran, dvsoftware_cabe_facturas.fecha_albaran, dvsoftware_cabe_facturas.cliente, dvsoftware_cabe_facturas.vendedor, dvsoftware_cabe_facturas.nvendedor, dvsoftware_articulos.cod_proveedor, dvsoftware_proveedores.nombre AS nproveedor, dvsoftware_cabe_facturas.forma_de_pago, dvsoftware_cabe_facturas.nforma_de_pago, dvsoftware_cabe_facturas.sucursal, dvsoftware_cabe_facturas.nsucursal, dvsoftware_cabe_facturas.tipo_venta, dvsoftware_cabe_facturas.ntipo_venta, dvsoftware_cabe_facturas.almacen, dvsoftware_cabe_facturas.añadida, dvsoftware_cabe_facturas.tipo_impuesto, dvsoftware_cabe_facturas.numero_precio, dvsoftware_cabe_facturas.tipo_factura, dvsoftware_cabe_facturas.sureferencia, dvsoftware_cabe_facturas.factura, dvsoftware_cabe_facturas.ejerfactu, dvsoftware_cabe_facturas.fecha_factura, dvsoftware_cabe_facturas.impresa, dvsoftware_cabe_facturas.total_bruto, dvsoftware_cabe_facturas.texto_dto_1, dvsoftware_cabe_facturas.dto_1, dvsoftware_cabe_facturas.total_dto1, dvsoftware_cabe_facturas.total_impuestos, dvsoftware_cabe_facturas.texto_dto_2, dvsoftware_cabe_facturas.dto_2, dvsoftware_cabe_facturas.total_dto2, dvsoftware_cabe_facturas.total_neto, dvsoftware_cabe_facturas.descuento_manual, dvsoftware_cabe_facturas.total_descuentos, dvsoftware_cabe_facturas.texto_cargo, dvsoftware_cabe_facturas.cargo, dvsoftware_cabe_facturas.total_cargos, dvsoftware_cabe_facturas.recargo, dvsoftware_cabe_facturas.nombre, dvsoftware_cabe_facturas.propietario, dvsoftware_clientes.razon_comercial, dvsoftware_cabe_facturas.domicilio, dvsoftware_cabe_facturas.postal, dvsoftware_cabe_facturas.poblacion, dvsoftware_cabe_facturas.provincia, dvsoftware_cabe_facturas.dni, dvsoftware_cabe_facturas.telefono1, dvsoftware_cabe_facturas.telefono2, dvsoftware_cabe_facturas.observaciones1, dvsoftware_cabe_facturas.observaciones2, dvsoftware_cabe_facturas.base1, dvsoftware_cabe_facturas.igic1, dvsoftware_cabe_facturas.cuota1, dvsoftware_cabe_facturas.porc_rcgo1, dvsoftware_cabe_facturas.recargo1, dvsoftware_cabe_facturas.base2, dvsoftware_cabe_facturas.igic2, dvsoftware_cabe_facturas.cuota2, dvsoftware_cabe_facturas.porc_rcgo2, dvsoftware_cabe_facturas.recargo2, dvsoftware_cabe_facturas.base3, dvsoftware_cabe_facturas.igic3, dvsoftware_cabe_facturas.cuota3, dvsoftware_cabe_facturas.porc_rcgo3, dvsoftware_cabe_facturas.recargo3, dvsoftware_line_facturas.linea, dvsoftware_articulos.Id, dvsoftware_line_facturas.articulo, dvsoftware_line_facturas.denominacion, dvsoftware_line_facturas.bultos, dvsoftware_line_facturas.formato, dvsoftware_articulos.unidadesxbulto, dvsoftware_articulos.unidades, dvsoftware_line_facturas.cantidad, dvsoftware_line_facturas.precio, dvsoftware_line_facturas.dto1, dvsoftware_line_facturas.dto2, dvsoftware_line_facturas.importe_b, dvsoftware_line_facturas.impuesto, dvsoftware_line_facturas.cuota, dvsoftware_line_facturas.importe_n, dvsoftware_line_facturas.grabada
FROM (((dvsoftware_cabe_facturas LEFT JOIN dvsoftware_line_facturas ON (dvsoftware_cabe_facturas.ejercicio = dvsoftware_line_facturas.ejercicio) AND (dvsoftware_cabe_facturas.albaran = dvsoftware_line_facturas.albaran) AND (dvsoftware_cabe_facturas.fecha_albaran = dvsoftware_line_facturas.fecha_albaran)) LEFT JOIN dvsoftware_clientes ON dvsoftware_cabe_facturas.cliente = dvsoftware_clientes.codigo) LEFT JOIN dvsoftware_articulos ON dvsoftware_line_facturas.articulo = dvsoftware_articulos.codigo) LEFT JOIN dvsoftware_proveedores ON dvsoftware_articulos.cod_proveedor = dvsoftware_proveedores.codigo
WHERE (((dvsoftware_cabe_facturas.ejercicio)>=ejer1 And (dvsoftware_cabe_facturas.ejercicio)<=ejer2) AND ((dvsoftware_cabe_facturas.albaran)>=alb1 And (dvsoftware_cabe_facturas.albaran)<=alb2) AND ((dvsoftware_cabe_facturas.fecha_albaran)>=falb1 And (dvsoftware_cabe_facturas.fecha_albaran)<=falb2) AND ((dvsoftware_cabe_facturas.cliente)>=cli1 And (dvsoftware_cabe_facturas.cliente)<=cli2) AND ((dvsoftware_cabe_facturas.vendedor)>=vend1 And (dvsoftware_cabe_facturas.vendedor)<=vend2) AND ((dvsoftware_articulos.cod_proveedor)>=prov1 And (dvsoftware_articulos.cod_proveedor)<=prov2) AND ((dvsoftware_articulos.Id)>=art1 And (dvsoftware_articulos.Id)<=art2));
 
END
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder