动态 SQL 数据透视表(使用 CONVERT DateField
Dynamic SQL Pivot (with CONVERT DateField
我正在尝试仅使用 (date_time_hour).
在下面的代码中设法做到这一点
然而,由于我需要 return 我一直在使用的 yyy-dd-mm 日期值:
CONVERT(CHAR(10),tz_date_hour, 20)
当我在下面使用它时,我无法 return 正确的值。
我认为它会是这样的:
SET @sql = N'SELECT *
FROM (
SELECT ivr_reason,' +
CONVERT(CHAR(10),tz_date_hour, 20) + ', total_usage
FROM [Genesys_var].[dbo].[app_subcf_results2]) AS D
PIVOT(MAX(total_usage) FOR tz_date_hour IN(' + @cols + N')) AS P;';
EXEC sp_executesql @sql;
GO
但是似乎没有任何效果我找不到任何相关的东西。
您不需要在 select 子句中使用 +
。应该是这样的:
SET @sql = N'SELECT *
FROM (
SELECT ivr_reason,
CONVERT(CHAR(10),tz_date_hour, 20) AS tz_date_hour,
total_usage
FROM [Genesys_var].[dbo].[app_subcf_results2]
) AS D
PIVOT(MAX(total_usage) FOR tz_date_hour IN(' + @cols + N')) AS P;';
EXEC sp_executesql @sql;
GO
我正在尝试仅使用 (date_time_hour).
在下面的代码中设法做到这一点然而,由于我需要 return 我一直在使用的 yyy-dd-mm 日期值:
CONVERT(CHAR(10),tz_date_hour, 20)
当我在下面使用它时,我无法 return 正确的值。
我认为它会是这样的:
SET @sql = N'SELECT *
FROM (
SELECT ivr_reason,' +
CONVERT(CHAR(10),tz_date_hour, 20) + ', total_usage
FROM [Genesys_var].[dbo].[app_subcf_results2]) AS D
PIVOT(MAX(total_usage) FOR tz_date_hour IN(' + @cols + N')) AS P;';
EXEC sp_executesql @sql;
GO
但是似乎没有任何效果我找不到任何相关的东西。
您不需要在 select 子句中使用 +
。应该是这样的:
SET @sql = N'SELECT *
FROM (
SELECT ivr_reason,
CONVERT(CHAR(10),tz_date_hour, 20) AS tz_date_hour,
total_usage
FROM [Genesys_var].[dbo].[app_subcf_results2]
) AS D
PIVOT(MAX(total_usage) FOR tz_date_hour IN(' + @cols + N')) AS P;';
EXEC sp_executesql @sql;
GO