我有一个包含2列的表格,其中填充了字符串
CREATE TABLE [tbl_text]
(
[directoryName] nvarchar(200),
[text1] nvarchar(200),
[text2] nvarchar(200)
)
字符串构建如下
| Text1 | Text2 |
|------------|----------|
|tz1 tz3 tz2 | al1 al2 |
| tz1 tz3 | al1 al3 |
| tz2 | al3 |
| tz3 tz2 | al1 al2 |
现在我想计算TestN或TextN导致
的次数| Text1 | al1 | al2 | al3 |
|-------|------|------|------|
| tz1 | 2 | 1 | 1 |
| tz2 | 2 | 2 | 1 |
| tz3 | 3 | 2 | 1 |
我尝试使用像这样的SQL查询来解决它:
TRANSFORM Count(tt.directoryName) AS Value
SELECT tt.Text1
FROM tbl_text as tt
GROUP BY tt.Text1
PIVOT tt.Text2;
如果我只使用一个像第三列这样的值的字段(完整的数据源必须像一个单值样式),这样可以正常工作 但在我的情况下,我使用字符串进行多选...
如果我尝试将此查询符合充满"的数据源。 "在值之间,结果完全搞砸了
查询如何获得此结果的任何建议?
答案 0 :(得分:0)
您必须先将Text1 / Text2中的字符串拆分,然后才能对它们执行任何操作。在VBA中,您循环记录集,使用Split()函数并将结果插入临时表。
在Sql Server中,有更强大的选项可用
来自这里:http://www.sommarskog.se/arrays-in-sql-2005.html#tablelists,
你应该阅读这个页面:
Here