TransWikia.com

Base de datos para un punto de venta en sql server

Stack Overflow en español Asked on November 17, 2021

Estoy haciendo una base de datos para un punto de venta. Mi problema es el siguiente:

¡La tabla detalle y la tabla factura están relacionadas!

En la tabla detalle tengo: cantidad | precio | importe

Y en la tabla factura tengo: Num_factura | fecha | total

Lo que quiero es que las suma de los importes se guarden en la columna Total de la tabla factura.

He tratado de hacerlo de la siguiente manera:

update fe set fe.Total = fe.Total + sum ( ed.Importe)  from Entrada_detalle ed inner join
Fact_entrada fe on ed.NumFact_Entrada = fe.NumFact_entrada where fe.NumFact_entrada = 2015

One Answer

Al terminar de insertar los detalles, puedes lanzar la siguiente actualización:

update Factura
   set Total = (select sum(Detalle.Importe)
                  from Detalle
                 where Detalle.Num_factura = Factura.Num_factura
               )
 where Num_factura = 'A 123';

Esta actualiza el total de una factura específica con la sumatoria del importe de todos sus detalles (los que existan en ese momento en la DB).

Dicho esto, generalmente desaconsejo almacenar valores derivados en una base de datos transaccional; esto suele ser la fuente de errores y dolores de cabeza en sistemas en producción cuando la programación no es correcta.


Nota: He utilizado los nombres de tablas que das en la descripción de tu pregunta y no los que tienes en la consulta de ejemplo. Que sean diferentes es bastante confuso y no tengo idea cuales son los reales, ya te tocará a ti hacer los ajustes.

Answered by jachguate on November 17, 2021

Add your own answers!

Ask a Question

Get help from others!

© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP