运行查询以根据另一个表B的最大值将表A的列更新为空白

2020-02-13 join sql-server-2012 max ssms

我有两个表,表A和表B。

表A

+-------+------+
| EmpID | Code |
+-------+------+
|     1 | CO1  |
|     1 | CO2  |
|     2 | CO3  |
|     2 | CO4  |
|     3 | KB3  |
|     3 | KC4  |
+-------+------+

表B

+------+------+
| Code | Rate |
+------+------+
| CO1  |    2 |
| CO2  |    4 |
| CO3  |    7 |
| CO4  |    9 |
+------+------+

这里的目标是更新表A,以便:

  1. 仅定位以代码“ CO”开头的行,其余不以代码“ CO”开头的行应保留原样

  2. 表A中以代码“ CO”开头的行中,仅应使用表B中每个速率具有最大值的行,这意味着以代码“ CO”开头的其他行均不具有表B中的比率(最大值)表B,在表A中应空白。

这是运行查询后表1的外观

表A

+-------+------+
| EmpID | Code |
+-------+------+
|     1 |      |
|     1 | CO2  |
|     2 |      |
|     2 | CO4  |
|     3 | KB3  |
|     3 | KC4  |
+-------+------+

关于如何做到这一点的任何想法?

Answers

Related