Ver Mensaje Individual
  #8 (permalink)  
Antiguo 04/07/2011, 09:02
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: 17 años
Puntos: 2658
Respuesta: Drama con SUM( multiplicación) a la vez

Te insisto: Usa el EXPLAIN y postea el resultado. Es lo mejor que puedes hacer en este punto.

Esta es tu consulta:

Código MySQL:
Ver original
  1.     SUM(db.CANTDESP*db.PRECUNIT),
  2.     COUNT(DISTINCT db.NUMRECOR) cantidad_pedido1
  3. FROM NOTDE_DB db
  4.     INNER JOIN NOTV_DB tv ON tv.NUMREG=db.NUMRECOR
  5.     INNER JOIN ART_DB art ON art.NREGUIST=db.NCODART
  6.     INNER JOIN aclase6_codigo a ON a.codigo=art.CODIGO
  7.     (DATE(tv.FECHA) between '2011-06-01' and '2011-06-28')
  8.     AND tv.CODVEND=84
  9.     AND a.nombre='SP'
Una cosa: Si estás poniendo ya la función DATE() como te lo dije, haz la comparación con las fechas sin horas. En este punto esa fuinción está suprimiendo las horas y sólo tomará en cuenta las fechas, ya no es necesario ese nivel de precisión

Toma la consulta y usa el EXPLAIN de las dos formas:
Código MySQL:
Ver original
  1.     SUM(db.CANTDESP*db.PRECUNIT),
  2.     COUNT(DISTINCT db.NUMRECOR) cantidad_pedido1
  3. FROM NOTDE_DB db
  4.     INNER JOIN NOTV_DB tv ON tv.NUMREG=db.NUMRECOR
  5.     INNER JOIN ART_DB art ON art.NREGUIST=db.NCODART
  6.     INNER JOIN aclase6_codigo a ON a.codigo=art.CODIGO
  7.     (DATE(tv.FECHA) between '2011-06-01' and '2011-06-28')
  8.     AND tv.CODVEND=84
  9.     AND a.nombre='SP'

Código MySQL:
Ver original
  1.     SUM(db.CANTDESP*db.PRECUNIT),
  2.     COUNT(DISTINCT db.NUMRECOR) cantidad_pedido1
  3. FROM NOTDE_DB db
  4.     INNER JOIN NOTV_DB tv ON tv.NUMREG=db.NUMRECOR
  5.     INNER JOIN ART_DB art ON art.NREGUIST=db.NCODART
  6.     INNER JOIN aclase6_codigo a ON a.codigo=art.CODIGO
  7.     (DATE(tv.FECHA) between '2011-06-01 00:00:00' and '2011-06-28 23:59:59')
  8.     AND tv.CODVEND=84
  9.     AND a.nombre='SP'
Luego copia la tabla resultado de esos EXPLAIN y posteanos lo que devuelven,.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)