Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   SQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=6)
-   -   Una ayudadita: consulta dificil !!! (https://www.clubdelphi.com/foros/showthread.php?t=55099)

darkerbyte 08-04-2008 06:30:52

Una ayudadita: consulta dificil !!!
 
Hola, colegas del foro.

Pues nuevamente aquí estoy para pedirles su valiosa ayuda.
Estoy haciendo un programa para adiministrar un negocio (ya saben, ventas, clientes, proveedores, etc).
Pero hay una consulta que no me doy idea de como sacarla, y es obtener las el total de las ventas para sacar un corte de caja.
Para tratar de ser lo mas especifico con mi problema y sea mas facil que me ayuden, subí una imagen con todos los detalles.
Les agradecería enormemente que le hechen un vistazo y me dieran alguna orientación.

http://www.jirehonline.net/duda_sql.gif

Gracias por el valioso tiempo que dedicais a leer mis mesajes y por vuestra ayuda.

Lepe 08-04-2008 11:15:54

En la tabla ventas necesitas un campo llamado importe.

En la tabla de detalles de ventas, puedes hacer un trigger after insert, after update y before delete que sume todos los detalles y actualice la tabla Ventas.

Saludos

darkerbyte 09-04-2008 05:05:11

Le sigo buscando
 
Ok, gracias por el consejo Lepe, intentaré meterle el trigger, haber si no se me complica mas la situación.
De cualquier forma si logro resolverlo, lo publicaré por si alguien se topa con un problema similar

keyboy 09-04-2008 06:08:32

Si lo que quieres es mostrar la columna del importe total de cada venta en el grid de ventas, ¿por qué no haces una subconsulta que haga la suma?

Código SQL [-]
select
  id_venta, fecha, ..., 
  (
    select sum(cantidad*p_venta) from pedidos
    where pedidos.id_venta = ventas.id_venta
  ) as importe
from ventas
join clientes
join vendedores

Bye

darkerbyte 16-04-2008 05:48:07

Eureka!!!
 
Gracias Keyboy, me diste la clave, estaba intentando hacer un select anidado pero no lograba que me diera bien el resultado y no quería modificar el diseño de la base de datos.
Aquí está como queda la consulta finalmente:

select
id_venta, fecha,cliente, clientes.nombre, id_vendedor,
vendedores.nombre,
(
select sum(cantidad*p_venta) from pedidos
where pedidos.id_venta = ventas.id_venta
) as importe
from ventas
join clientes on cliente=id_cliente
join vendedores on vendedor=id_vendedor
order by id_venta;


La franja horaria es GMT +2. Ahora son las 11:17:55.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi