【问题标题】:Merge multiple records into one record owned by a person?将多条记录合并为一个人拥有的一条记录?
【发布时间】:2020-03-03 20:45:18
【问题描述】:

我如何打开以下内容:

username | userLastFirst    | email             | approver1         |department
FAlbert  | Albert, Frankie  | abc123@ships.com  | Doe, John         |HR
FAlbert  | Albert, Frankie  | abc123@ships.com  | Smith, Mike       |HR

进入这个:

username | userLastFirst    | email             | approver1    |approver2   |department
FAlbert  | Albert, Frankie  | abc123@ships.com  | Doe, John    |Smith, Mike |HR

我希望将同一用户与其审批者的多行合并到一条记录中,而不是他们的审批者列。

【问题讨论】:

  • 如果他们有 3 个或更多批准人怎么办?
  • 只会显示前三个。

标签: sql sql-server join inner-join consolidation


【解决方案1】:

如果你有两行,你可以使用聚合:

select username, userLastFirst, email, min(approver) as approver1 ,
       nullif(max(approver), min(approver)) as approver2, department
from t
group by username, userLastFirst, email, department;

【讨论】:

  • 如果我有三个审批人怎么办?
  • @VincentLuc 。 . .你会得到其中两个。如果你想要这三个,你会有一个不同的问题——你想要的结果显然只有两列供审批者使用。你应该将 new 问题作为 new 问题提出。
猜你喜欢
  • 2017-02-24
  • 1970-01-01
  • 2021-04-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-06-12
  • 2019-02-18
  • 1970-01-01
相关资源
最近更新 更多