【发布时间】:2020-08-26 17:27:39
【问题描述】:
例如,我有一张桌子,我们称之为就业:
ID NAME Employer StartDate EndDate
-----------------------------------------------------------------------
20 John Company A 2-5-2015 5-5-2018
20 John Company B 5-10-2018 NULL
100 Bill Company C 10-10-2017 10-15-2018
100 Bill Company D 11-20-2018 3-5-2019
100 Bill Company E 4-5-2019 NULL
我要做的是构建一个包含以下列的报告:
ID NAME Employer1 Employer2 Employer3
例如,基于上表,我想展示:
ID NAME Employer1 Employer2 Employer3
-------------------------------------------------------------------
20 John Company B Company A NULL
100 Bill Company E Company D Company C
我希望 Employer1 列始终显示他们最近/当前的雇主,并从那里下降到 Employer2 和 Employer3 列。如果某人只有 1 个雇主,则 Employer2 和 Employer3 应为 NULL,如果他们只有 2 个雇主,则 Employer3 应为 NULL。
【问题讨论】:
-
为什么结果中 Bill 的 id = 50?
-
抱歉,这是我的错误,我现在已经更新了。
-
如果一个id超过3行怎么办?
-
如果超过 3 个,我想选择前 3 个,其中 Employer1 是最新/当前的,然后下降到 Employer2 和 Employer3
-
请向我们展示您的尝试。
标签: sql sql-server pivot case