「SQL面试题库」 No_107 净现值查询

2023-10-16 10:44:55 浏览数 (2)

今日真题

题目介绍: 净现值查询 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 净现值概念 了解下

  • 已经有灵感了?在评论区写下你的思路吧!

0 人点赞