Ver Mensaje Individual
  #18 (permalink)  
Antiguo 24/01/2010, 16:45
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: buscar sobre el resultado de un sum

Cita:
en la primer consulta qeu me escribiste no hace el having del subtotal ya qeu no hay la suma
Entonces complétala con lo que debe tener... No requiere demasiado:
Código MySQL:
Ver original
  1. SELECT COUNT(DISTINTC num_factural) CantFacturas
  2. FROM pedidos
  3. GROUP BY num_factura
  4. HAVING SUM(valor_total) = 105000;

Cita:
y en la segunda consutla me retorna muchos resultados
yu deberia retornar solo 1 registro con el total de las facturas.
No. No necesariamente te debería devolver un sólo registro, porque para eso deberías tener un mejor discriminante, y estás haciendo la discriminación por el importe de la factura, lo que puede dar lugar, en un sistema de facturación a que haya cero, una o mas facturas que tengan el mismo importe dado, pasado como parámetro...
Eso ya te lo dije en el post.

Desglosemos la consulta.
Esto:
Código MySQL:
Ver original
  1.        num_factura,
  2.        SUM(valor_total) Total
  3.     FROM pedidos
  4.     GROUP BY num_factura
devuelve la lista completa de facturas por número, con el importe total de cada una (según dijiste, valor_total contiene los valores parciales de cada ítem).

Esto otro:
Código MySQL:
Ver original
  1. SELECT COUNT(DISTINTC num_factura) CantFacturas
  2.    (
  3.     ....
  4.    ) T1
  5. WHERE Total = 105000;
toma el resultado de la anterior, y te devuelve solamente aquellas en que el importe sumado sea igual a 105000... Si te devuelve más de una, es porque hay más de una factura que da ese importe.

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