簡體   English   中英

MYSQL-如何將一個表中的值求和到另一表中的一個字段中?

[英]MYSQL- How to sum values from one table into one field in another table?

大家,我正在建立一個血庫捐贈系統數據庫。 所以我做了一張桌子

donation
(
id donation int, 
blood_type varchar(45), 
blood_amount float
)

第二個表blood_supply(blood_type varchar(45),amount_by_type float)

我的桌子看起來像這樣

在此處輸入圖片說明

我想按血型存儲所有捐贈的全部血液。

因此,現在我嘗試根據blood_type對捐贈表中的值求和,並使用以下命令將它們存儲到blood_supply表中:

    update donation,blood_supply 
set amount_by_type = (amount_by_type + blood_amount) 
where donation.blood_type = blood_supply.blood_type; 

但是它沒有正確計算出blood_amount。

我懂了

在此處輸入圖片說明

要求在blood_supply表中獲得A = 0.8,B = 0.4、0 = 0.9

您可能需要先聚集左表,然后再加入並更新右表。

update (select sum(blood_amount) blood_amount,
        blood_type
        from donation
        group by blood_type) dt, 
        blood_supply bs
set bs.amount_by_type = dt.blood_amount
where bs.blood_type = dt.blood_type

希望能有所幫助

您要找的是一個視圖。 每次在另一個表中修改數據時,更新一個表都是不現實的。

我的答案是:

create view blood_supply  as select sum(blood_amount) as blood_amount, blood_type
        from donation group by blood_type

此后,可以像對待其他任何表一樣處理blook_supply,但它將隨着捐贈的更改而更新值。 更改表示新捐款,現有捐款的更新或刪除。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM