以下作业的算法

时间:2009-03-15 14:34:44

标签: sql sql-server-2005

您需要一个算法来读取月初的一个客户的帐户余额,该月的所有提款总额以及该月内所有存款的总和。 1月份的所有交易均适用1%的联邦税费。该计划是在月末计算账户余额:(1)从月初的账户余额中减去总提款,(2)将总存款加到新余额中,(3)计算联邦税(总交易的1% - 即总提款额+总存款额),以及(4)从新余额中减去此联邦税。完成这些计算后,打印最终的月末余额。

3 个答案:

答案 0 :(得分:1)

这将直接转换为伪代码。由于这是一项家庭作业,你必须自己做腿谱。只需依次评估每个步骤:

input: accountBalanceStart, totalDeposits, totalWithdrawals
output: accountBalanceEnd

让我们迈出第一步:

accountBalanceEnd <-- accountBalanceStart - totalWithdrawals

现在是第二个:

accountBalanceEnd <-- accountBalanceEnd + totalDeposits

接下来,计算税额并减去税额:

accountBalanceEnd <-- accountBalanceEnd - (totalWithdrawals + totalDeposits) * 0.01

最后,显示结果:

print accountBalanceEnd

答案 1 :(得分:0)

这恰好是2008年4月17日到期的www.palinfonet.com/hw_java2008.pdf上的作业问题,问题#3。

答案 2 :(得分:0)

我同意其他海报,这不是一个问题,也不是人们要做功课的地方。但是,万一你真的完全没有线索我会给出一个更具体的例子。

您最有可能需要阅读的内容:

PL/SQL

SQL Quickref

我可能会尝试这样的事情。我打算没有测试或评论它,mssql的语法也可能是错误的。

    CREATE OR REPLACE FUNCTION Calculate_Balance(account_id long, account_balance float, date datetime) RETURNS float AS
    DECLARE
    transactions_sum float;
    fed_tax float;
    new_account_balance float;              
BEGIN
    transactions_sum = SELECT SUM(amount) from transactions 
        WHERE transactions.account_id = account_id 
        AND month(transactions.date) = month(date) 
        AND year(transactions.date) = year(date);

    fed_tax = transactions_sum * 0,01;
    transactions_sum = transactions_sum - fed_tax;
    new_account_balance = transactions_sum + account_balance;

    RETURN new_account_balance;
END;