XML 路径/材料组合中的对象名称无效

Invalid object name in a XML Path / Stuff combination

我试图从不同的行中获取一些值到单个列中,但我一直收到此错误:

Invalid object name 't'

查询相当大且复杂,所以我将其缩小到一个简单的部分,但仍然出现错误。

select 
   IDs = stuff( ( select ',' + convert(varchar, t2.ChassisID)
                  from   t as t2
                  where  t2.ChassisID = 42 --t.ChassisID
                  for XML path('')
                )
                , 1, 1, '' 
              )
from   ( select ch.ChassisID, p.GPS 
         from   tblChassis ch
           inner join tblPlace p on ch.BestemmingID = p.PlaceID
       ) t        
group by t.Gps

我尝试将 where 子句更改为固定数字 (42) 而不是 t.ChassidID,但仍然出现错误,因此只剩下一个地方可能导致我假设的错误,但我看不到为什么。

我可能遗漏了一些简单的东西,但我就是看不到它。
此查询有什么问题?

我正在使用 Sql Server 2014

尝试在 CTE 中声明过滤后的 table,然后两次引用此 CTE。

;WITH FilteredChassis AS 
(
     select 
        ch.ChassisID, 
        p.GPS 
     from   
        tblChassis ch
        inner join tblPlace p on ch.BestemmingID = p.PlaceID
)
select
    t.Gps,
   IDs = stuff( ( select ',' + convert(varchar, t2.ChassisID)
                  from   FilteredChassis as t2
                  where  t2.Gps = t.Gps
                  for XML path('')
                )
                , 1, 1, '' 
              )
from
    FilteredChassis AS t
group by 
    t.Gps

我已经通过gps完成了link,我相信这就是你需要的。