SoloCodigo

Bases de Datos => SQL Server => Mensaje iniciado por: matmax en Domingo 23 de Enero de 2011, 11:54

Título: Consulta totalizando entre fechas
Publicado por: matmax en Domingo 23 de Enero de 2011, 11:54
Buenos dias, y gracias de ante mano por ayudarme. No se si este es el lugar donde poner este post, pero si no lo es pido disculpas. Estoy intentando hacer una consulta que me totalice por un campo numerico "total" dentro de un intervalo de fechas. El problema que tengo es que al mostrarme la consulta me salen todos los registro dentro de ese intervalo de fecha, cuando lo que quiero es que me salga un registro por cliente con el total dentro del intervalo por el que pregunte. Mi consulta hecha con el ms access xp, es esta:

SELECT clientes.NUMERO, clientes.NOMBRE, clientes.APELLIDOS, Sum(pedido.TOTALFACTURA_mov) AS sumadetotalfactura_mov, pedido.FECHA
FROM pedido INNER JOIN clientes ON pedido.NUMERO = clientes.NUMERO
GROUP BY clientes.NUMERO, clientes.NOMBRE, clientes.APELLIDOS, pedido.FECHA
HAVING (((pedido.FECHA) Between #1/2/2010# And #1/20/2010#));

El having es para probar la consulta.
Seria aconsejable jacerlo en lugar de 1 consulta, hacerla en 2?,  es decir, 1º que saque todas las compras del intervalo a una tabla y despues agruparlas por el total?

Un saludo y muchisimas gracias.
Título: Re: Consulta totalizando entre fechas
Publicado por: Thanatos-chan en Lunes 24 de Enero de 2011, 14:12
que tal,


por lo que muestra el query, deberia funcionar

Código: SQL
  1.  
  2. SELECT clientes.NUMERO,
  3.             clientes.NOMBRE,
  4.             clientes.APELLIDOS,
  5.             SUM(pedido.TOTALFACTURA_mov) AS sumadetotalfactura_mov,
  6.             pedido.FECHA
  7. FROM pedido INNER JOIN clientes
  8. ON pedido.NUMERO = clientes.NUMERO
  9. GROUP BY clientes.NUMERO, clientes.NOMBRE, clientes.APELLIDOS, pedido.FECHA
  10. HAVING (((pedido.FECHA) BETWEEN #1/2/2010# AND #1/20/2010#));
  11.  
  12.  

pero asi como dices intentalo en 2 querys, algo como

Código: SQL
  1.  
  2. SELECT cli.NUMERO,
  3.             cli.NOMBRE,
  4.             cli.APELLIDOS,
  5.             (SELECT SUM(pedido.TOTALFACTURA_mov) FROM pedidos p
  6.              WHERE p.numero = cli.numero
  7.              AND p.fecha BETWEEN '1/2/2010' ad '1/20/2010'
  8.             )AS sumadetotalfactura_mov,
  9.             pedido.FECHA
  10. FROM clientes  cli
  11.  
  12.  

prodrias chequear, los campos de pedidos y clientes, ya que si la llave es solo el "codigo del cliente" no deberia fallar.
 :hola:
Título: Re: Consulta totalizando entre fechas
Publicado por: matmax en Lunes 24 de Enero de 2011, 16:10
Muchas gracias thanatos me salvaste de una buena. Un saludo.