在此查询中使用 Blob 列要求查询主题必须具有键或唯一索引
Using a Blob Column in this Query Requires that the Query Subject Must Have Either a Key or a Unique Index
我有以下代码:
SELECT boo_event 'Orden de Trabajo' ,STUFF((SELECT ', ' + CAST(boo_person AS VARCHAR(100)) [text()]
FROM R5BOOKEDHOURS
WHERE boo_event = t.boo_event
FOR XML PATH(''), TYPE).value('.','NVARCHAR(MAX)'),1,1,' ') Empleados , STUFF((SELECT ', ' + CAST(boo_hours AS VARCHAR(100)) [text()]
FROM R5BOOKEDHOURS
WHERE boo_event = t.boo_event
FOR XML PATH(''), TYPE).value('.','NVARCHAR(MAX)'),1,1,' ') Horas
FROM R5BOOKEDHOURS t
GROUP BY boo_event
它在 SQL Server Studio 上完美运行,但是当我尝试在 COGNOS Reporting Studio 上使用它时,出现此错误:
-- 在此查询中使用 Blob 列要求查询主题必须具有键或唯一索引--
我不确定这是否只是该工具的错误,或者我们可以通过稍微更改代码来解决。
将NVARCHAR(MAX)
改为NVARCHAR(4000)
:
SELECT boo_event 'Orden de Trabajo' ,STUFF((SELECT ', ' + CAST(boo_person AS VARCHAR(100)) [text()]
FROM R5BOOKEDHOURS
WHERE boo_event = t.boo_event
FOR XML PATH(''), TYPE).value('.','NVARCHAR(4000)'),1,1,' ') Empleados , STUFF((SELECT ', ' + CAST(boo_hours AS VARCHAR(100)) [text()]
FROM R5BOOKEDHOURS
WHERE boo_event = t.boo_event
FOR XML PATH(''), TYPE).value('.','NVARCHAR(4000)'),1,1,' ') Horas
FROM R5BOOKEDHOURS t
GROUP BY boo_event;
我有以下代码:
SELECT boo_event 'Orden de Trabajo' ,STUFF((SELECT ', ' + CAST(boo_person AS VARCHAR(100)) [text()]
FROM R5BOOKEDHOURS
WHERE boo_event = t.boo_event
FOR XML PATH(''), TYPE).value('.','NVARCHAR(MAX)'),1,1,' ') Empleados , STUFF((SELECT ', ' + CAST(boo_hours AS VARCHAR(100)) [text()]
FROM R5BOOKEDHOURS
WHERE boo_event = t.boo_event
FOR XML PATH(''), TYPE).value('.','NVARCHAR(MAX)'),1,1,' ') Horas
FROM R5BOOKEDHOURS t
GROUP BY boo_event
它在 SQL Server Studio 上完美运行,但是当我尝试在 COGNOS Reporting Studio 上使用它时,出现此错误:
-- 在此查询中使用 Blob 列要求查询主题必须具有键或唯一索引--
我不确定这是否只是该工具的错误,或者我们可以通过稍微更改代码来解决。
将NVARCHAR(MAX)
改为NVARCHAR(4000)
:
SELECT boo_event 'Orden de Trabajo' ,STUFF((SELECT ', ' + CAST(boo_person AS VARCHAR(100)) [text()]
FROM R5BOOKEDHOURS
WHERE boo_event = t.boo_event
FOR XML PATH(''), TYPE).value('.','NVARCHAR(4000)'),1,1,' ') Empleados , STUFF((SELECT ', ' + CAST(boo_hours AS VARCHAR(100)) [text()]
FROM R5BOOKEDHOURS
WHERE boo_event = t.boo_event
FOR XML PATH(''), TYPE).value('.','NVARCHAR(4000)'),1,1,' ') Horas
FROM R5BOOKEDHOURS t
GROUP BY boo_event;