【发布时间】:2019-07-09 15:09:09
【问题描述】:
我需要通过 SQLServer 2008 表 hstT 和 hstD 中的视图加入。主表包含有关员工及其“登录”的数据(因此在 x 月与 x 员工相关联的多条记录),第二个表包含基于月份的区域信息,我需要加入两个表但保留最早的记录作为连接和与该 ID 关联的其余记录的参考。
所以hstT 类似于:
id id2 period name
----------------------
x 1 0718 john
x 1 0818 john
y 2 0718 jane
还有hstD:
id2 period area
----------------------
1 0718 sales
1 0818 hr
2 0707 mng
使用OUTER JOIN,我设法合并基于ID2(用户ID)和period的所有数据,但正如我提到的,我需要通过关联ID(我可以用作标准)所以它看起来像这样:
id id2 period name area
---------------------------
x 1 0718 john sales
x 1 0818 john sales
y 2 0718 jane mng
我知道我可以使用ROW_number,但我不知道如何在视图中使用它并在这些条件下加入它:
SELECT T.*,D.*, ROW_NUMBER() OVER (PARTITION BY T.ID ORDER BY T.PERIOD ASC) AS ORID
FROM dbo.hstT AS T LEFT OUTER JOIN
dbo.hstD AS D ON T.period = D.period AND T.id2 = D.id2
WHERE ORID = 1
--promps error as orid doesn't exist in any table
【问题讨论】:
标签: sql sql-server-2008 join view row-number