I have a select statement that is calculating the subTotal, Tax, and grand
total:
UPDATE Invoice
SET Sub_Total = (select sum(PRICE * QTY) from INVOICE_ITEM where
INVOICE_ID = @invoiceId),
Tax = (select round( sum(PRICE * QTY) * ( @tax / 100) + .005, 2) from
INVOICE_ITEM where INVOICE_ID = @invoiceId),
Total = (select round( sum(PRICE * QTY) * ( 1 + ( @tax / 100)) +
.005, 2) from INVOICE_ITEM where INVOICE_ID = @invoiceId),
updatedby = @updatedby
WHERE Invoice_Id = @invoiceId;
One thing I don't like is that each column contains the same basic inner
select. Can I optimize the query such that the Sub_Total is used in
calculating the Tax and Total:
UPDATE Invoice
SET Sub_Total = (select sum(PRICE * QTY) from INVOICE_ITEM where
INVOICE_ID = @invoiceId),
Tax = round( Sub_Total * ( @tax / 100) + .005, 2)
Total = (round( Sub_Total * ( 1 + ( @tax / 100)) + .005, 2),
updatedby = @updatedby
WHERE Invoice_Id = @invoiceId;
P.S. I just added the Sub_Total column to the table and need to do a one
time calculation of ALL the Sub_Total columns, for some reason this is not
working:
UPDATE Invoice SET Sub_Total = (select sum(PRICE * QTY) from INVOICE_ITEM as
i1 where i1.INVOICE_ID = INVOICE_ID),
updatedby = 'manual';
_______________________________________________
sqlite-users mailing list
[email protected]
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users