我在一个表[响应]中有逗号分隔的字段,我有另一个表,其中包含逗号分隔字段[suppliers]中可以存在的所有选项。来自另一个表的SQL查询循环
所以这是一个创纪录的列“供应商”在[回应]表中的内容的一个示例:
Supplier A, Supplier B, Supplier C, Supplier D
等。
我将最终希望能够查看所有的答案降喜欢用他们的计数的列表:
- 供应商C:16
- 供应商B:14
- 供应商d:8
- 等
我目前得到这些数字与笨重的手工子选择未在布局获取数据我想,当我们有大约300家供应商
select
(select count(*) from dbo.responses) as TotalCount,
(select count(*) from dbo.responses where [suppliers] like '%Supplier C%') as [Supplier C],
(select count(*) from dbo.responses where [suppliers] like '%Supplier B%') as [Supplier B]
我没有在数据怎么进来(逗号分隔场)总量控制和[供应]将是非常漫长的表是我手动建立了希望我能够以某种方式循环这些项目并得到一个计数。
关于如何获得此信息的任何想法都会导致供应商被选中的排序列表最多?
感谢
我觉得我很接近,但现在它只是计数记录在“供应商”是唯一的答案选择,并没有清点任何被划逗号的一部分列表,所以我觉得我在关于逗号的语法中有错误。
SELECT r.suppliers, COUNT(*) FROM responses AS r JOIN Suppliers s ON ','+CompanyName+',' LIKE '%,'+r.suppliers+',%' GROUP BY r.suppliers
数据库RESP是什么样的。您正在使用SQL方言吗? – marderh
看起来像MS SQL服务器 – Bruellhusten
是的,这是在MS Sql服务器2003 – bmcnally