嗨,我有考勤查询,它将使用 PIVOT 功能生成考勤报告
这是程序:
declare @in_date DATETIME
/*Select all the stagign entries related to promotion id and investment type id */
/* also only those staging daat related interface status tracking*/
-- Getting all distinct dates into a temporary table #Dates
SELECT a.date as full_date_of_attendence INTO #Dates
FROM dbo.getFullmonth(@in_date) a
ORDER BY a.date
-- The number of days will be dynamic. So building
-- a comma seperated value string from the dates in #Dates
SELECT @cols = COALESCE(@cols + ',[' + CONVERT(varchar, full_date_of_attendence, 106)
+ ']','[' + CONVERT(varchar, full_date_of_attendence, 106) + ']')
FROM #Dates
ORDER BY full_date_of_attendence
--select @cols
---- Building the query with dynamic dates
SET @qry =
'SELECT * FROM
(SELECT admission_id, attendence_status , date_of_attendence
FROM dbo.tblattendence)emp
PIVOT (MAX(attendence_status) FOR date_of_attendence IN (' + @cols + ')) AS stat'
-- Executing the query
EXEC(@qry)
-- Dropping temporary tables
DROP TABLE #Dates
这是上述查询的输出::
admission_id 01 May 2013 02 May 2013 03 May 2013
2 NULL 1 0
3 NULL 1 1
4 NULL 0 0
5 NULL 0 1
在这里,我想将列的名称更改为01,02,03......
,我希望值 1 为 'P' 和 0 为 'A'
任何人都可以帮助我实现这一目标吗?