数据库问题(我们使用的是 T-SQL)
我目前正在研究员工和项目之间的关系。
我们正在尝试重组数据库以像这样工作。
旧数据库包含这样的信息
Employee ID Project ID
1 1
1 2
1 3
2 1
2 2
我们需要像这样为每个员工将其转换为单个记录
Project ID Employee ID 1 Employee ID 2
1 1 2
2 1 2
3 1 null
这是我尝试过的 sql 代码,但我遇到了问题,现在每个员工有三个以上,这只是一个例子。相信我,如果只有三个或两个,我会使用最大值或最小值并完成它。
Select [Project ID], min([Employee ID])
From dbo.[Employee Project ID]
where [Employee ID] > select ( Min([Employee ID]) form dbo.[Employee Project ID])
Group by [Project ID]
第一个问题这只给了我第二大的问题,如果没有更大的元素,即如果员工只有一个项目,它仍然会为员工 ID 1 返回 1,为员工 ID 2 返回 1。我已经尝试过案例陈述他们刚刚对我大发雷霆。有没有更简单的方法来做到这一点?
我不能简单地归还所有员工,我必须把每个员工放到自己的领域。如果将单个字段的多个员工返回到项目中,则前端无法读取它。我不是在写我们要引进一家新公司的前端,他们不能改变他们的代码。
我需要的是每个员工在他自己的领域,对于最初的混淆,我很抱歉,我们在这个数据库中有数百名员工,并不是每个项目都参与其中。所以我们需要第一个槽中最低的员工 id,第二个槽中的第二低到 14。它进入一个看起来像这样的有趣表。我无法控制它是如何形成的,我只需要将我们的初始数据放入这个表格中。
Project ID Attribute Information
1 Employee ID 1 1
1 Employee ID 2 2
2 Employee ID 1 1
2 Employee ID 2 2
3 Employee ID 1 1
3 Employee ID 2 null
基本上我打算将员工 ID 1 插入到表中,并将员工 ID 1 插入到属性的字段中。老实说,如果您知道一种进入底线的方法,那就更好了。我只是想节省你们的时间。