我尝试了一些选项,但我似乎被卡在列名字符串上。在创建列名时,'似乎被截断了。你能帮我解决吗?
declare @columns as varchar(7)
declare @AMG_Pivot as varchar(max)
select @columns=
coalesce(@columns + ',','') + quotename ([MM-YYYY])
from
(
SELECT DISTINCT convert(varchar(2), month ([MEMBER_MONTH_DAY])) + '-' + convert(varchar(4), year([MEMBER_MONTH_DAY])) as [MM-YYYY]
FROM Sindle.DBO.AMG_MM) A
SET @AMG_Pivot =
'
SELECT PHS_ORG, PCP_Name, [PLAN_TYPE_C_NAME], [AGE_TYPE], '+@columns+', [PATIENT_ID]
FROM Sindle.DBO.AMG_MM
PIVOT (COUNT([PATIENT_ID]) FOR [MM-YYYY] IN ( ' +@columns+ ')) PT
Order By phs_org,PCP_NAME,PLAN_TYPE_C_NAME,AGE_TYPE'
EXEC (@AMG_Pivot)
这是我收到的错误消息
Msg 105,Level 15,State 1,Line 9 字符串'6-2016后)的未闭合引号)PT 通过phs_org,PCP_NAME,PLAN_TYPE_C_NAME,AGE_TYPE'订购。
= = = = = = = = = = = =
我正在尝试将我的支点转换为带有动态标题的支点,但我不断收到两个错误。
我的原始查询 - 此操作符合预期
SELECT *
FROM ( SELECT PHS_ORG, PCP_Name, [PLAN_TYPE_C_NAME], [AGE_TYPE], convert(varchar(2), month ([MEMBER_MONTH_DAY])) + '-' + convert(varchar(4), year([MEMBER_MONTH_DAY])) as [MM-YYYY], [PATIENT_ID]
FROM Sindle.DBO.AMG_MM) T
PIVOT (COUNT([PATIENT_ID]) FOR [MM-YYYY] IN ([6-2015],[7-2015],[8-2015],[9-2015],[10-2015],[11-2015],[12-2015],[1-2016],[2-2016],[3-2016],[4-2016],[5-2016],[6-2016])) PT
Order By phs_org,PCP_NAME,PLAN_TYPE_C_NAME,AGE_TYPE
不幸的是,当我尝试设置列名时,我遇到了两个错误
declare @columns as varchar(7)
declare @AMG_Pivot as varchar(max)
select @columns=
coalesce(@columns+',','') + quotename ('MM-YYY')
from
(
SELECT DISTINCT convert(varchar(2), month ([MEMBER_MONTH_DAY])) + '-' + convert(varchar(4), year([MEMBER_MONTH_DAY])) as [MM-YYYY]
FROM Sindle.DBO.AMG_MM) A
SET @AMG_Pivot = '
SELECT *
FROM
(
SELECT PHS_ORG, PCP_Name, [PLAN_TYPE_C_NAME], [AGE_TYPE], '+@columns+', [PATIENT_ID]
FROM A) t
PIVOT (COUNT([PATIENT_ID]) FOR [MM-YYYY] IN ('+@columns+')) PT
Order By phs_org,PCP_NAME,PLAN_TYPE_C_NAME,AGE_TYPE'
EXEC (@AMG_Pivot)
以下是我遇到的错误。我们将不胜感激。
Msg 105, Level 15, State 1, Line 11
Unclosed quotation mark after the character string 'MM-YYY)) PT
Order By phs_org,PCP_NAME,PLAN_TYPE_C_NAME,AGE_TYPE'.
Msg 102, Level 15, State 1, Line 11
Incorrect syntax near 'MM-YYY)) PT
Order By phs_org,PCP_NAME,PLAN_TYPE_C_NAME,AGE_TYPE'.
如果我将EXEC语句更改为SELECT语句,我只需获取一个包含文本的字符串:
SELECT * 从 ( SELECT PHS_ORG,PCP_Name,[PLAN_TYPE_C_NAME],[AGE_TYPE],'+ @ columns +',[PATIENT_ID] 从A)t
[MM-YYYY] IN('+ @ columns +')的PIVOT(COUNT([PATIENT_ID]))PT 通过phs_org,PCP_NAME,PLAN_TYPE_C_NAME,AGE_TYPE
订购