求一个SQL实现同一销售区域下,列出所有销售过的客户
表大致结构如下
销货单号|客户单位 | 销售区域 | 销售省份| 产品唯一码|数量
0001 A 华中 湖北 sn1 1
0001 A 华中 湖北 sn2 1
0001 A 华中 湖北 sn3 1
0002 B 华中 湖南 sn4 1
0002 B 华中 湖南 sn5 1
0003 C 华南 福建 sn6 1
0004 D 华南 广东 sn7 1
希望实现的效果
销售区域|销售总量|客户单位
华中|5|A,B
华南|2|C,D
小弟琢磨了两天,没搞定,故只好来此请教大家
[最优解释]
SELECT 销售区域, SUM(数量) AS 销售总量, dbo.quyu_str(cast(销售区域 as Nvarchar(30))) AS 客户单位
FROM tb
group by 销售区域
看起来像是字段 销售区域 的数据问题。
[其他解释]
select 销售区域,SUM(数量) as 销售总量,STUFF((select ','+客户单位 from TB where 销售区域=a.销售区域 group by 客户单位 FOR xml path('')),1,1,'') as 客户单位
from TB as a
group by 销售区域
[其他解释]
FROM TB
WHERE 销售区域 = @id RETURN STUFF(@r, 1, 1, '') END
SELECT 销售区域, SUM(数量) AS 销售总量, dbo.quyu_str(销售区域) AS 客户单位
FROM tb
group by 销售区域
但结果总是不对,第三列全是null,只有那些区域填错了,填的是0,1,''的能正常显示出客户,其他区域是汉字的都是null
[其他解释]
[img=http://my.csdn.net/my/album/detail/1384746][/img]