2015-08-28 2 views
2

У меня есть таблица с 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; 

Это отлично работает, если я получил только поля с одним значением, как в третьей колонке (полный источник данных должен быть как одно-ценностного стиле) Но в моем случае я использую строки для MultiSelect ...

Если я пытаюсь соответствовать этому запросу на источник данных, заполненных с «» между значениями в результате завершения перепуталось

любых предложения, как запрос должен выглядеть, чтобы получить этот результат?

ответ

0

Вам нужно будет разделить строки внутри Text1/Text2, прежде чем вы сможете что-либо с ними сделать. В VBA вы зацикливаете набор записей, используйте функцию Split() и вставляете результаты в таблицу temp.

В Sql Server доступны более мощные параметры.
Coming здесь: Split function equivalent in T-SQL?,
вы должны прочитать эту страницу: http://www.sommarskog.se/arrays-in-sql-2005.html#tablelists

Смежные вопросы