您如何根据当前年份有条件地更新表格? (Oracle SQL)

时间:2019-03-29 22:54:50

标签: sql oracle

我目前正在做一个学校项目,我们需要在其中创建房地产管理公司的数据库。我大约有14张桌子,但是只有这两个与我的问题有关:BUILDINGTaxRates

要求对每座建筑物征收当年的税款(以美元为单位)。税是根据TaxRates表中的汇率和Building表中的landValue计算得出的。每年都会增加新值,并保持历史汇率。

如何更新Building表中的税金,以便将显示的金额以及当年以及城市考虑在内?

我想我必须像这样开始,但是我不确定下一步该怎么做以及如何考虑当前年份。

UPDATE Building
SET taxes =
CASE WHEN 
CREATE TABLE Building (
    buildingID          NUMBER (10) NOT NULL PRIMARY KEY,
    addressID           NUMBER (10) NOT NULL,
    qtyUnits            NUMBER (3) NOT NULL,
    landValue           NUMBER (15) NOT NULL,
    purchasePrice       NUMBER (15) NOT NULL
    taxes               NUMBER (15) NOT NULL
);

CREATE TABLE TaxRates (
    taxID          NUMBER (5) NOT NULL PRIMARY KEY,
    city           VARCHAR2 (50) NOT NULL,
    taxRate        NUMBER (3) NOT NULL,
    year           NUMBER (4) NOT NULL,
);

编辑:实际上还有一个重要的表格。 AddressDetails表。税率因城市而异。

CREATE TABLE AdressDetails (
    addressID   NUMBER (10) NOT NULL PRIMARY KEY,
    streetNo    Number (10) NOT NULL,
    streetName  VARCHAR2 (50) NOT NULL,
    postalCode  VARCHAR2 (6) NOT NULL Check
    city        VARCHAR2 (10) NOT NULL,
    province    VARCHAR2 (10) NOT NULL,
    buildingID  NUMBER (10) NOT NULL,
)```

1 个答案:

答案 0 :(得分:0)

如果您要存储每个建筑物的特定年份的税额数据,则需要另一个包含建筑物,已缴税额和年份列的表。

因此Tax列将从您的构建表中消失,新表building_tax将具有构建表和Tax表的外键

要考虑的另一件事是,土地价值是否每年都会变化,并将成为税收计算的一部分?