作者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://webptt.com/cn.aspx?n=bbs/Database/M.1548262232.A.2DD.html
※ 编辑: licheer (111.252.118.205), 01/24/2019 00:50:59
1F:推 evilove: 看不懂你要表达的 01/24 12:23
※ 编辑: licheer (111.252.118.205), 01/24/2019 12:34:32
2F:→ 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
3F:→ xdraculax: SUM(Field2 * IF(Field1='Condition1',val1,val2)) 01/24 21:31
4F:→ xdraculax: 忽略我,没注意到是 MSSQL 0.0 01/24 21:34
※ 编辑: licheer (111.252.118.205), 01/25/2019 00:58:52
5F:→ licheer: 搞定了,非常谢谢 01/27 02:11