今日真题
题目介绍: 净现值查询 npv-queries
难度中等
SQL架构
表:
代码语言:javascript复制NPV
代码语言:javascript复制 --------------- ---------
| Column Name | Type |
--------------- ---------
| id | int |
| year | int |
| npv | int |
--------------- ---------
(id, year) 是该表主键.
该表有每一笔存货的年份, id 和对应净现值的信息.
表:
代码语言:javascript复制Queries
代码语言:javascript复制 --------------- ---------
| Column Name | Type |
--------------- ---------
| id | int |
| year | int |
--------------- ---------
(id, year) 是该表主键.
该表有每一次查询所对应存货的 id 和年份的信息.
写一个 SQL, 找到 Queries 表中每一次查询的净现值.
结果表没有顺序要求.
查询结果的格式如下所示:
``` NPV 表: ------ -------- -------- | id | year | npv | ------ -------- -------- | 1 | 2018 | 100 | | 7 | 2020 | 30 | | 13 | 2019 | 40 | | 1 | 2019 | 113 | | 2 | 2008 | 121 | | 3 | 2009 | 12 | | 11 | 2020 | 99 | | 7 | 2019 | 0 | ------ -------- --------
Queries 表: ------ -------- | id | year | ------ -------- | 1 | 2019 | | 2 | 2008 | | 3 | 2009 | | 7 | 2018 | | 7 | 2019 | | 7 | 2020 | | 13 | 2019 | ------ --------
结果表: ------ -------- -------- | id | year | npv | ------ -------- -------- | 1 | 2019 | 113 | | 2 | 2008 | 121 | | 3 | 2009 | 12 | | 7 | 2018 | 0 | | 7 | 2019 | 0 | | 7 | 2020 | 30 | | 13 | 2019 | 40 | ------ -------- --------
(7, 2018)的净现值不在 NPV 表中, 我们把它看作是 0. 所有其它查询的净现值都能在 NPV 表中找到. ```
代码语言:javascript复制sql
select q.id,q.year,ifnull(npv,0) npv
from Queries q left join NPV n
on q.id = n.id and q.year = n.year
npv 净现值概念 了解下
- 已经有灵感了?在评论区写下你的思路吧!