Javascript 如何将行转换为列按行数创建标题

Javascript 如何将行转换为列按行数创建标题,javascript,c#,sql,Javascript,C#,Sql,我正在根据时钟记录列表创建员工时钟输入/输出报告 我尝试过使用SQLPivot、c#和javascript循环,但都没有成功。 这是我尝试过的,不确定用什么代替“Max”,因为我需要每一张唱片 SELECT * FROM ( SELECT cast (ClockTime as date) as Date , xrefnumber as EmployeeNo, ClockTime FROM #log ) AS SourceTable

我正在根据时钟记录列表创建员工时钟输入/输出报告

我尝试过使用SQLPivot、c#和javascript循环,但都没有成功。 这是我尝试过的,不确定用什么代替“Max”,因为我需要每一张唱片

SELECT *
FROM
(
    SELECT  cast (ClockTime as date) as Date ,
            xrefnumber as EmployeeNo,  
            ClockTime
 FROM #log
) AS SourceTable PIVOT(max(ClockTime) FOR ClockTime IN([ClockTime1],
                                                         [ClockTime2],
                                                         [ClockTime3],
                                                         [ClockTime4],
                                                         [ClockTime5],
                                                         [ClockTime6],
                                                         [ClockTime7],
                                                         [ClockTime8],
                                                         [ClockTime9],
                                                         [ClockTime10])) AS PivotTable;
这是我的数据

Date       EmplooyeeNo  ClockTime
---------- -------  -----------------------
2019-06-10 0000010  2019-06-10 05:58:35.000
2019-06-10 0000010  2019-06-10 06:04:59.000
2019-06-10 0000010  2019-06-10 06:14:38.000
2019-06-10 0000010  2019-06-10 11:19:13.000
2019-06-10 0000010  2019-06-10 11:30:28.000
2019-06-10 0000010  2019-06-10 11:34:25.000
2019-06-10 0000010  2019-06-10 11:48:00.000
2019-06-11 0000010  2019-06-11 12:29:04.000
2019-06-11 0000010  2019-06-11 12:30:56.000
2019-06-11 0000010  2019-06-11 12:42:06.000
2019-06-11 0000010  2019-06-11 12:42:30.000
2019-06-10 0000018  2019-06-10 11:48:06.000
2019-05-30 0120485  2019-05-30 10:30:11.000
2019-05-30 0120485  2019-05-30 10:33:39.000
2019-05-30 0120485  2019-05-30 10:34:10.000
2019-05-30 0120485  2019-05-30 10:36:09.000
2019-05-30 0120485  2019-05-30 10:38:21.000
2019-05-30 0120485  2019-05-30 10:38:30.000
2019-05-30 0120485  2019-05-30 10:43:07.000
2019-05-30 0120485  2019-05-30 10:43:29.000
这是理想的输出

Date       EmplooyeeNo  ClockTime1              ClockTime2              ClockTime3              ClockTime4              ClockTime5              ClockTime6              ClockTime7              ClockTime8
2019-06-10 0000010      2019-06-10 05:58:35.000 2019-06-10 06:04:59.000 2019-06-10 06:14:38.000 2019-06-10 11:19:13.000 2019-06-10 11:30:28.000 2019-06-10 11:34:25.000 2019-06-10 11:48:00.000
2019-06-11 0000010      2019-06-11 12:29:04.000 2019-06-11 12:30:56.000 2019-06-11 12:42:06.000 2019-06-11 12:42:30.000
2019-06-10 0000018      2019-06-10 11:48:06.000
2019-05-30 0120485      2019-05-30 10:30:11.000 2019-05-30 10:33:39.000 2019-05-30 10:34:10.000 2019-05-30 10:36:09.000 2019-05-30 10:38:21.000 2019-05-30 10:38:30.000 2019-05-30 10:43:07.000 2019-05-30 10:43:29.000

如果必须指定列金额,则可以。

这将满足您的需要。我基本上只是根据EmployeeNo和时钟时间日期对值进行分组,这样您就有了一个值得关注的值

SELECT
    *
FROM
    (
        SELECT
            CAST(ClockTime AS DATE) AS [Date]
            ,xrefnumber AS EmployeeNo
            ,ClockTime
            ,'ClockTime' + CAST(ROW_NUMBER() OVER(PARTITION BY xrefnumber, CAST(ClockTime AS DATE) ORDER BY ClockTime ASC) AS VARCHAR(3)) AS ClockTimeDesc
        FROM
            #log
    ) AS SourceTable

    PIVOT
    (MAX(ClockTime) FOR ClockTimeDesc IN([ClockTime1], [ClockTime2], [ClockTime3], [ClockTime4], [ClockTime5], [ClockTime6], [ClockTime7], [ClockTime8])) AS PivotTable