22,209
社区成员
发帖
与我相关
我的任务
分享
--> 测试数据:[ta]
IF OBJECT_ID('[ta]') IS NOT NULL DROP TABLE [ta]
GO
CREATE TABLE [ta]([人员ID] INT,[日期] VARCHAR(3),[工作时间] INT)
INSERT [ta]
SELECT 1,'8/1',8 UNION ALL
SELECT 1,'8/2',8 UNION ALL
SELECT 1,'8/3',8 UNION ALL
SELECT 1,'8/4',8 UNION ALL
SELECT 1,'8/5',8 UNION ALL
SELECT 1,'8/6',8 UNION ALL
SELECT 1,'8/7',8
--------------开始查询--------------------------
--> 测试数据:[tb]
IF OBJECT_ID('[tb]') IS NOT NULL DROP TABLE [tb]
GO
CREATE TABLE [tb]([ID] INT,[姓名] VARCHAR(4))
INSERT [tb]
SELECT 1,'张三'
--------------开始查询--------------------------
DECLARE @sql VARCHAR(max)
SELECT @sql=ISNULL(@sql+',','')+QUOTENAME([日期]) FROM [ta]
GROUP BY [日期]
EXEC('
SELECT * FROM
(
SELECT [姓名], [工作时间],[日期] FROM [ta] LEFT JOIN [tb] ON ta.[人员ID]=tb.id
) a
PIVOT(MAX([工作时间]) FOR [日期] IN ('+@sql+')) pit')
/*
姓名 8/1 8/2 8/3 8/4 8/5 8/6 8/7
张三 8 8 8 8 8 8 8
*/