作者licheer (Keep The Faith)
看板Database
標題[SQL ] 對應不同條件的SUM()
時間Thu Jan 24 00:50:30 2019
資料庫名稱:MSSQL
Select Field1, SUM(Field2 * val), SUM(Field3) // val 變數
From Table
Where
Field1 like 'Condition1'
or
Field1 like 'Condition2'
Group by Field1
Field0 Field1 Field2 Field3 val1 val2
---------- ------- ------- -------
Condition1 a 5 0 10
Condition1 a 5 1 10
Condition1 a 5 2 10
Condition1 b 10 1 10
Condition1 b 10 6 10
Condition2 b 12 1 20
要累計出 a 和 b 的總數, 並且不要因Field3而重複
a = (5 * 10 + 5 * 10 + 5 * 10) / 3
b = (10 * 10 + 10 * 10) / 2 + 12 * 20
Q1. val 是帶入的變數,如果 Condition1 和 Condition2 都帶入相同的數值
上面的寫法可用
Q2. 若 Condition1 和 Condition2 要各自帶入 val1 和 val2 去和 Field2 相乘
要怎麼修改呢?
謝謝
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 111.252.118.205
※ 文章網址: https://www.ptt.cc/bbs/Database/M.1548262232.A.2DD.html
※ 編輯: licheer (111.252.118.205), 01/24/2019 00:50:59
推 evilove: 看不懂你要表達的 01/24 12:23
※ 編輯: licheer (111.252.118.205), 01/24/2019 12:34:32
→ licheer: 補充一些資料 01/24 12:34
※ 編輯: licheer (111.252.118.205), 01/24/2019 12:37:04
※ 編輯: licheer (111.252.118.205), 01/24/2019 12:38:08
※ 編輯: licheer (111.252.118.205), 01/24/2019 21:35:08
→ xdraculax: SUM(Field2 * IF(Field1='Condition1',val1,val2)) 01/24 21:31
→ xdraculax: 忽略我,沒注意到是 MSSQL 0.0 01/24 21:34
※ 編輯: licheer (111.252.118.205), 01/25/2019 00:58:52
→ licheer: 搞定了,非常謝謝 01/27 02:11