我在一個表[響應]中有逗號分隔的字段,我有另一個表,其中包含逗號分隔字段[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