sql pivot with dynamic columns我重視我在這裏表和數據查詢,SQL查詢排序與多個表和數據透視
/****** Object: Table [dbo].[Company] Script Date: 13/04/2017 3:37:15 PM ******/
CREATE TABLE [dbo].[Company](
[Comp ID] [int] NULL,
[Company Name] [nvarchar](50) NULL
) ON [PRIMARY]
GO
/****** Object: Table [dbo].[Designation] Script Date: 13/04/2017 3:37:15 PM ******/
CREATE TABLE [dbo].[Designation](
[Design ID] [int] NULL,
[Comp ID] [int] NULL,
[Designation] [nvarchar](50) NULL,
[Design Code] [int] NULL
) ON [PRIMARY]
GO
/****** Object: Table [dbo].[Employee] Script Date: 13/04/2017 3:37:15 PM ******/
CREATE TABLE [dbo].[Employee](
[Emp ID] [int] NULL,
[Comp ID] [int] NULL,
[Design ID] [int] NULL,
[Employee Name] [nvarchar](50) NULL,
[Employee Code] [int] NULL
) ON [PRIMARY]
GO
INSERT [dbo].[Company] ([Comp ID], [Company Name]) VALUES (1, N'Company 1')
GO
INSERT [dbo].[Company] ([Comp ID], [Company Name]) VALUES (2, N'Company 2')
GO
INSERT [dbo].[Designation] ([Design ID], [Comp ID], [Designation], [Design Code]) VALUES (1, 1, N'CEO', 2)
GO
INSERT [dbo].[Designation] ([Design ID], [Comp ID], [Designation], [Design Code]) VALUES (2, 1, N'HR', 1)
GO
INSERT [dbo].[Designation] ([Design ID], [Comp ID], [Designation], [Design Code]) VALUES (3, 2, N'CEO', 1)
GO
INSERT [dbo].[Designation] ([Design ID], [Comp ID], [Designation], [Design Code]) VALUES (3, 2, N'Developer', 2)
GO
INSERT [dbo].[Employee] ([Emp ID], [Comp ID], [Design ID], [Employee Name], [Employee Code]) VALUES (1, 1, 1, N'Test emp1', 101)
GO
INSERT [dbo].[Employee] ([Emp ID], [Comp ID], [Design ID], [Employee Name], [Employee Code]) VALUES (2, 1, 1, N'Test emp2', 102)
GO
INSERT [dbo].[Employee] ([Emp ID], [Comp ID], [Design ID], [Employee Name], [Employee Code]) VALUES (3, 1, 2, N'Test emp3', 103)
GO
INSERT [dbo].[Employee] ([Emp ID], [Comp ID], [Design ID], [Employee Name], [Employee Code]) VALUES (4, 1, 2, N'Test emp4', 104)
GO
INSERT [dbo].[Employee] ([Emp ID], [Comp ID], [Design ID], [Employee Name], [Employee Code]) VALUES (5, 1, 1, N'Test emp5', 105)
GO
INSERT [dbo].[Employee] ([Emp ID], [Comp ID], [Design ID], [Employee Name], [Employee Code]) VALUES (6, 1, 2, N'Test emp6', 106)
GO
INSERT [dbo].[Employee] ([Emp ID], [Comp ID], [Design ID], [Employee Name], [Employee Code]) VALUES (7, 2, 1, N'Test emp7', 107)
GO
INSERT [dbo].[Employee] ([Emp ID], [Comp ID], [Design ID], [Employee Name], [Employee Code]) VALUES (8, 2, 1, N'Test emp8', 108)
GO
INSERT [dbo].[Employee] ([Emp ID], [Comp ID], [Design ID], [Employee Name], [Employee Code]) VALUES (9, 2, 2, N'Test emp9', 109)
GO
INSERT [dbo].[Employee] ([Emp ID], [Comp ID], [Design ID], [Employee Name], [Employee Code]) VALUES (10, 2, 2, N'Test emp10', 110)
GO
INSERT [dbo].[Employee] ([Emp ID], [Comp ID], [Design ID], [Employee Name], [Employee Code]) VALUES (11, 2, 1, N'Test emp11', 111)
GO
INSERT [dbo].[Employee] ([Emp ID], [Comp ID], [Design ID], [Employee Name], [Employee Code]) VALUES (12, 2, 1, N'Test emp12', 112)
GO
INSERT [dbo].[Employee] ([Emp ID], [Comp ID], [Design ID], [Employee Name], [Employee Code]) VALUES (13, 1, 1, N'Test emp13', 113)
GO
INSERT [dbo].[Employee] ([Emp ID], [Comp ID], [Design ID], [Employee Name], [Employee Code]) VALUES (14, 1, 2, N'Test emp14', 114)
GO
INSERT [dbo].[Employee] ([Emp ID], [Comp ID], [Design ID], [Employee Name], [Employee Code]) VALUES (15, 2, 1, N'Test emp15', 115)
GO
INSERT [dbo].[Employee] ([Emp ID], [Comp ID], [Design ID], [Employee Name], [Employee Code]) VALUES (16, 2, 2, N'Test emp16', 116)
GO
INSERT [dbo].[Employee] ([Emp ID], [Comp ID], [Design ID], [Employee Name], [Employee Code]) VALUES (17, 1, 1, N'Test emp17', 117)
GO
INSERT [dbo].[Employee] ([Emp ID], [Comp ID], [Design ID], [Employee Name], [Employee Code]) VALUES (18, 1, 2, N'Test emp18', 118)
GO
INSERT [dbo].[Employee] ([Emp ID], [Comp ID], [Design ID], [Employee Name], [Employee Code]) VALUES (19, 2, 1, N'Test emp19', 119)
GO
INSERT [dbo].[Employee] ([Emp ID], [Comp ID], [Design ID], [Employee Name], [Employee Code]) VALUES (20, 2, 2, N'Test emp20', 120)
GO
我有3代表爲公司名稱,員工
我需要查詢根據設計代碼的降序選擇最新的4名員工(根據員工代碼排序)以獲得所有公司的最新指定(設計代碼)訂單,然後按照員工代碼的降序選擇每個公司的前4條記錄 ,結果需要透視像
例如:
CompanyID Emp1 Emp2 Emp3 Emp4
----------
1 118 114 106 103
我已經試過類似,
select
emp.[Comp ID],
emp.[Design ID],
emp.[Emp ID],
emp.[Employee Code],
design.[Design Code],
emp.[Employee Code],
comp.[Company Name],
design.Designation,
emp.[Employee Name]
from Employee emp
join Designation design on design.[Design ID]=emp.[Design ID]
join Company comp on comp.[Comp ID]=emp.[Comp ID]
order by comp.[Comp ID] desc, design.[Design Code] desc, emp.[Employee Code] desc
我首先需要4名員工擺動的EMP1,EMP2,EMP3和emp4對每一個公司來說可能是2可能下降從其他同和員工代碼可以與不同的公司代碼重複一個指定和3,它需要由公司代碼,然後由員工代碼排序
你有你自己嘗試新鮮事物?這是一個*作業問題*嗎? SO是不是*我的工作對我來說*平臺... – Shnugo
更新了我的問題,請參考我附帶的鏈接我需要類似的查詢,但要按設計代碼排序,然後員工代碼 –