如何在SQL中垂直获取某些列

时间:2017-08-02 18:14:23

标签: sql sql-server

我遇到了SQL语句问题。我想展示一些表中的一些数据;这是我的SQL图:

Database diagram

我想在表格中显示一些名为" Signatures"的信息, 我想在行中显示列:" IdSupervisor,IdManager,IdSupervisor2,IdManager2") 在此信息下方,我想显示以下列:" FirmaS1,FirmaG1,FirmaS2,FirmaG2)。

我在网上搜索没有成功。

这是我在两个不同的语句中实现的SQL查询, 但是我希望将两个查询合二为一。

查询1:

SELECT p1.Name as 'Supervisor', coalesce(p2.Name,'Unnecessary') as 'Manager', coalesce(p3.Name,'Unnecesary') as 'New Supervisor', coalesce(p4.Name,'Unnecesary') as 'New Manager' 
FROM Signatures s1
LEFT JOIN PersonalDepartment dp ON s1.IdSupervisor = dp.IdPersonalDepartment
LEFT JOIN Personal p1 ON dp.IdPersonal = p1.IdPersonal
LEFT JOIN PersonalDepartment dp2 ON s1.IdManager = dp2.IdPersonalDepartment
LEFT JOIN Personal p2 ON dp2.IdPersonal = p2.IdPersonal
LEFT JOIN PersonalDepartment dp3 ON s1.IdSupervisor2 = dp3.IdPersonalDepartment
LEFT JOIN Personal p3 ON dp3.IdPersonal = p3.IdPersonal
LEFT JOIN PersonalDepartment dp4 ON s1.IdManager2 = dp4.IdPersonalDepartment
LEFT JOIN Personal p4 ON dp4.IdPersonal = p4.IdPersonal WHERE IdRequest = 64;

查询2:

SELECT FirmaS1, FirmaG1, FirmaG1, FirmaG2 FROM Signatures WHERE IdRequest = 64;

结果:

Result of the two querys.

0 个答案:

没有答案