Ver Mensaje Individual
  #1 (permalink)  
Antiguo 15/04/2014, 12:21
marcusaurelio
 
Fecha de Ingreso: enero-2007
Mensajes: 285
Antigüedad: 17 años, 3 meses
Puntos: 21
sumar si distinct id

Hola genta buenas tardes.. estoy.. renegando con esta consulta.. desde hoy temprano..

explico..

Código MySQL:
Ver original
  1. itp_id,
  2. ped_id,
  3. ped_numero,
  4. itp_ped,
  5. itp_prod,
  6. itp_totalcf,
  7. sum(itp_totalcf) as totalCF,
  8. itp_totalnf,
  9. ped_vendedor,
  10. doc_id,
  11. doc_ped,
  12. doc_tipo,
  13. doc_ftipo,
  14. doc_numero,
  15. doc_fecha,
  16. doc_pdv,
  17. doc_cat,
  18. doc_dto,
  19. doc_iva,
  20. doc_estado,
  21. doc_estadopago,
  22. doc_codeunix,
  23. itp_cant,
  24. itp_cantcf,
  25. itp_cantnf
  26.  
  27. FROM  `items_pedidos`  inner join pedidos on itp_ped=ped_id
  28. inner join documentos on ped_id=doc_ped
  29. (doc_tipo=1 OR doc_tipo=2 OR doc_tipo=4)
  30. and year(doc_fecha)='2014' and month(doc_fecha)='03'
  31. and doc_estado=0
  32. AND (itp_prod = 'BIRO0150' OR itp_prod = 'BIRO0200' OR itp_prod = 'BIRO0300')
  33. group by itp_id,month(doc_fecha)
  34. ORDER BY doc_fecha ASC, doc_numero asc, doc_tipo asc


aqui tengo tres tablas... items_pedidos, documentos, pedidos.

necesito sacar las sumas de los items de los pedidos. de un mes del año.. siempre que el documento tenga como estado 0 y como tipo 1, 2 o 3

la tabla items_pedidos se relaciona con la factura( documentos) por medio del pedido..

el problema es que se me preduce un producto cartesiano.. y al sumar me duplica los valores.

como ven en la imagen totalCF me da el doble.. y bueno ademas necesito mostrar todo en un solo registro.. como en la imagen



ahi si ven totalCF da 7640 pero debe dar casi la mitad...

pongo.. la imagen de como me da el producto cartesiano.



y si agrupo. por itp_id ahi se reduce el producto cartesiano pero la suma es lo mismo



como se ve aca... me tendria que dar 4390 y me da 7640 que es lo que da en la primer imagen.


desde ya agradezco mucho cualquier aporte

Última edición por gnzsoloyo; 16/04/2014 a las 08:04