2013-04-02 2 views
0

Мне нужна помощь в создании представления в SQL 2008, который создал бы одну запись, состоящую из данных из двух таблиц с одной из таблиц, содержащих несколько записей.Как создать представление/одиночную запись на основе нескольких таблиц/записей

Table 1 contains field A, B 
Table 2 contains field A,B,1 
         A,B,2 
         A,B,3 
         A,B,4 
         A,B,5

Ищу вид результата, который

A,B,1,2,3,4,5
+0

Это только я или эти данные не нормализуются? – Kermit

+0

Какие СУБД вы используете? – sgeddes

ответ

0

Одним из вариантов было бы посмотреть в использовании STUFF и FOR XML:

SELECT t.col1, t.col2, 
    STUFF((
    select ',' + cast(t2.id as varchar) 
    from yourothertable t2 
    where t.col1 = t2.col1 and t.col2 = t2.col2 
    for xml path('') 
     ), 1, 1, '') 
from yourtable t 

SQL Fiddle Demo

Если вы хотите объединить 3 столбца, достаточно легко сделать, используя e '+' Оператор.

SELECT t.col1 + ',' + t.col2 + 
    (
    select ',' + cast(t2.id as varchar) 
    from yourothertable t2 
    where t.col1 = t2.col1 and t.col2 = t2.col2 
    for xml path('') 
     ) 
from yourtable t; 
Смежные вопросы