domingo, 9 de diciembre de 2012

Resolución ejercicio final (13) - Listar Facturas de un Cliente


RESOLUCIÓN DEL PUNTO 10 DEL ENUNCIADO DEL EJERCICIO FINAL.

En esta entrada resolveremos el punto 10:
Listar Facturas de un Cliente.



Lo que se desea realmente es obtener los encabezados de las facturas de un único cliente.

select * from cab_fv where id_cliente = 1;




NOTA: Aunque la consulta anterior si que responde al punto 10 del enunciado, suele ser normal, añadir al lado del encabezado de la factura el total de la misma.

Para obtener el total en el listado es preciso realizar una consulta en la que además se sumen todas las líneas de cada factura.

Para ello se realizará un join a tres tablas.



Pero antes es preciso multiplicar el precio neto de cada artículo, por la cantidad de unidades, y por aplicarle el iva correspondiente.

select cab_fv.*,
round(sum(neto * cantidad * ((100.0 + tipo_iva) / 100.0)),2) as total
from cab_fv left join lin_fv
on cab_fv.id_fv = lin_fv.id_fv
inner join ivas
on lin_fv.iva = ivas.codigo_iva
where id_cliente = 1
group by lin_fv.id_fv;



NOTA: Se han vinculado tres tablas mediante joins. Para que sea más fácil de visualizar el total se redondea con la función Round.

No hay comentarios:

Publicar un comentario