【问题标题】:Populate a column via multi-dimensional lookup in SQL?通过 SQL 中的多维查找填充列?
【发布时间】:2021-01-23 02:41:14
【问题描述】:
我有以下两张表:
TABLE_A:
| Date |
USD |
EUR |
| 2020-01-31 |
1.11 |
0.89 |
| 2020-02-28 |
1.15 |
0.93 |
表_B:
| Date |
Currency |
Amount |
| 2020-01-31 |
USD |
NULL |
| 2020-02-29 |
EUR |
NULL |
我想用 TABLE_A 中的相应金额填充 TABLE_B 中的金额字段,具体取决于匹配的日期和货币。有没有办法在 SQL 中执行这种多维查找?
【问题讨论】:
标签:
sql
sql-server
tsql
vlookup
【解决方案1】:
我可以看到两个表共有的唯一联接是日期值,您可以加入它,然后使用CASE 表达式根据tableB 中的值从tableA 中选择适当的值
SELECT CASE WHEN b.Currency = 'USD' THEN a.USD ELSE a.EUR END as [Amount]
FROM tableA AS a
INNER JOIN tableB AS b
ON b.Date = a.Date