【发布时间】:2020-03-27 19:42:32
【问题描述】:
我有下表“人员”:
| id | name |
| ------ | ----- |
| 1 | Adam |
| 2 | Nick |
| 3 | John |
另一个表“金额”:
id amount month customerid
1 500 Jan 1
2 1000 Feb 1
3 1200 Jan 1
4 700 Jan 2
5 400 Feb 2
6 210 Jan null
7 230 Feb null
persons.id 对应于 amount.customerid
如何返回一个 sql 查询,该查询返回一月份每人产生的金额,其中 null customerid 的名称为“未知”?
| name | value |
| ------ | ----- |
| Adam | 1700 |
| Nick | 700 |
| John | 0 |
| Unknown | 210 |
【问题讨论】:
-
名称和值是糟糕的表名。Persons(或者可能是客户)是更好的表名。此外, value 是一个糟糕的列名。什么价值?
-
做一个外连接。分组。
-
编辑了表名。
-
@jarlh 我正在尝试在不支持外连接的 sqlite 上使用此示例。还有其他方法可以解决这个问题吗?
-
您应该提及/标记您使用的 SQL 方言。如果是 Oracle,这里有一个指针:oracle-base.com/articles/misc/null-related-functions