简单 SQL子查询嵌套 语法有关问题

简单 SQL子查询嵌套 语法问题.
这是我度过来的范例 达到的目的和这个范例一样
create table tb(id int, value varchar(10))

insert into tb values(1,'aa')

insert into tb values(1,'bb')

insert into tb values(2,'aaa')

insert into tb values(2,'bbb')

insert into tb values(2,'ccc')
GO

SELECT id, value = stuff((SELECT ',' + value FROM tb AS t
 WHERE     t .id = tb.id FOR xml path('')), 1, 1, '')
FROM         tb
GROUP BY id
 

简单 SQL子查询嵌套 语法有关问题


而我的实际的SQL语句如下

select itemCode_C,P_itemCode_C,sys_tbxh_C,sys_tbxhgg_C from ProjectInformation,Project_PMana_New
where ProjectInformation.itemCode_C = Project_PMana_New.P_itemCode_C
group by itemCode_C,P_itemCode_C,sys_tbxh_C,sys_tbxhgg_C
order by itemCode_C


简单 SQL子查询嵌套 语法有关问题
目的就是 itemCode_C 相同的  sys_tbxhgg_C 字段全部拼接.
但是上面案例 我用子查询代替 就是报错

我换了俩种写法貌似都不行截图如下:
简单 SQL子查询嵌套 语法有关问题
简单 SQL子查询嵌套 语法有关问题


------解决思路----------------------
LZ  不妨考虑一下 使用 with 子句,把你的结果先整理出来,再参考这个例子。
------解决思路----------------------
楼主第一个方法语法错了,你应该先把你的结果保存到临时表 再把你的临时表代替你的tb表
------解决思路----------------------
你的group by 中,为啥 sys_tbxhgg_C 也添加进去了額, 去掉这个字段试试。  
------解决思路----------------------
額, 上面是我弄错,你试试这个


;with cte as 
(
select 
    t1.itemCode_C, t2.P_itemCode_C,  
sys_tbxh_C,  sys_tbxhgg_C 
from ProjectInformation as t1
inner join Project_PMana_New as t2
  on t1.itemCode_C = t2.P_itemCode_C
group by t1.itemCode_C, t2.P_itemCode_C,
    sys_tbxh_C,sys_tbxhgg_C
)

SELECT 
    itemCode_C, P_itemCode_C,  
sys_tbxh_C, sys_tbxhgg_C  = stuff((SELECT ',' + sys_tbxhgg_C FROM cte AS t
 WHERE t.itemCode_C = cte.itemCode_C FOR xml path('')), 1, 1, '')
FROM  cte
GROUP BY itemCode_C, P_itemCode_C, sys_tbxh_C
ORDER BY itemCode_C