1

在 Visual Studio 2008 中使用 SQL Server CE,我尝试像这样查询数据库:

select          
   [INTESTAZIONE Ente], 
   [INTESTAZIONE Tipo],
   [INTESTAZIONE Anno], 
   [INTESTAZIONE Protocollo], 
   COUNT([Mittenti Mittente]) AS [N.MITTENTI],
   [Mittenti Mittente] AS [MITTENTI],
   STUFF(
           (SELECT ',' + [Mittenti Mittente] AS [ELENCO MITTENTI]
            FROM ElencoMittenti
            WHERE [ElencoMittenti.[Mittenti  Mittente]] = [Elenco_Ricorsi.[Mittenti Mittente]]
            FOR XML PATH('')), 1, 1, '' ) AS [RISULTATO]
from    
   Elenco_Ricorsi
group by 
   [INTESTAZIONE Ente], [INTESTAZIONE Tipo],[INTESTAZIONE Anno], 
   [INTESTAZIONE Protocollo], [Mittenti Mittente]

我需要STUFF((SELECT.....)命令来构建一个数组作为这个查询的结果。

此查询给出错误:

错误中的令牌 = SELECT”,问题来自嵌套的“选择”

我已经读过这也可以用 SQL Server Compact Edition 来做,所以我认为我在查询中犯了一些错误。

4

1 回答 1

2

引用表格时,您的括号位于错误的位置,您需要将方括号括在 [tablename].[columnname] 周围,我提供了一个应该可以使用的修改版本:

        SELECT  [INTESTAZIONE Ente] ,
        [INTESTAZIONE Tipo] ,
        [INTESTAZIONE Anno] ,
        [INTESTAZIONE Protocollo] ,
        COUNT([Mittenti Mittente]) AS [N.MITTENTI] ,
        [Mittenti Mittente] AS [MITTENTI] ,
        STUFF(( SELECT  ',' + [Mittenti Mittente] AS [ELENCO MITTENTI]
                FROM    ElencoMittenti
                WHERE   [ElencoMittenti].[Mittenti  Mittente] = [Elenco_Ricorsi].[Mittenti Mittente]
              FOR
                XML PATH('')
              ), 1, 1, '') AS [RISULTATO]
FROM    Elenco_Ricorsi
GROUP BY [INTESTAZIONE Ente] ,
        [INTESTAZIONE Tipo] ,
        [INTESTAZIONE Anno] ,
        [INTESTAZIONE Protocollo] ,
        [Mittenti Mittente]
于 2012-12-18T15:28:14.740 回答