Ver Mensaje Individual
  #4 (permalink)  
Antiguo 09/06/2009, 07:55
Avatar de gnzsoloyo
gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Left join con problemas

Bien, volviendo al principio, tu necesitas entonces tres datos, no dos como parecía:
- Cantidad de pedidos.
- Cantidad de conceptos en cada pedido.
- Cantidad de facturas confeccionadas por pedidos.

Según el modelo que pusiste arriba, entonces, para que un concepto exista, debe forzosamente existir un pedido. Como lo que tu quieres es la cantidad de ambos, en realidad la información está en la misma tabla (conceptos), por lo que estos dos primeros datos surgirían de hacer:
Código sql:
Ver original
  1. SELECT
  2.     COUNT(DISTINCT c.id_pedido) CantPedidos,
  3.     COUNT(c.id) totalConceptos
  4. FROM conceptos c
  5. GROUP BY id_pedido
Entonces, para ver cuántas facturas hay, deberíamos relacionar esta tabla con la de facturas:
Código sql:
Ver original
  1. SELECT
  2.     COUNT(DISTINCT c.id_pedido) CantPedidos,
  3.     COUNT(c.id) totalConceptos,
  4.     COUNT(f.id) totalFacturas
  5. FROM conceptos c LEFT JOIN facturas f ON p.id_pedido = f.id_pedido
  6. GROUP BY c.id_pedido

Esta consulta se basa en la suposición de que hay una factura por concepto, y como cada concepto pertenece sólo a un pedido, hay una relación 1:1 entre los dos campos por cada ID de factura.

Probemos...
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)