簡體   English   中英

MySQL將0行的SUM轉換為整數0

[英]MySQL Convert a SUM of 0 rows to an integer 0

在我的MySQL之旅中,MySQL越來越向我挑戰。 假設我的TableA和TableB具有以下結構(簡化以指出問題):

TableA
+------------------+
| IDA| Description |
|----|-------------|
| 1  | Something   |
| 2  | Else        |
| 3  | IDK         |
+------------------+

TableB
+------------------+
| IDA   | Amount   |
|------------------|
| 1     | 5        |
| 2     | 7        |
| 2     | 17       |
| 1     | 15       |
+------------------+

我現在的目標是,總結每個ID的金額。 因此,我使用以下代碼

SELECT (SELECT SUM(amount) FROM TableB WHERE IDA = a.IDA) as Total, Description FROM TableA a

只要我在TableB有一行,此代碼就可以工作。 在此示例中, 我為IDA 3獲得了總計NULL 在我更復雜的代碼中,我將使用此代碼進行計算,以便整個字段返回NULL

  • 我可以將NULL替換為0還是將其轉換?
  • 是否可以在其中添加if else子句?
SELECT (SELECT SUM(IFNULL(amount,0)) FROM TableB WHERE IDA = a.IDA) as Total, Description FROM TableA a

IFNULL(amount,0)表示, 當金額不為null時,返回金額,否則返回0

coalesceleft join coalesce另一種方法

select a.*,
coalesce(sum(b.Amount),0) 
from tablea a
left join tableb b using(IDA)
group by a.IDA

演示

暫無
暫無

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

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