PDA

Ver la Versión Completa : Una ayudadita: consulta dificil !!!


darkerbyte
08-04-2008, 06:30:52
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
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?


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
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;