Службы отчетов SQL Server - PullRequest
       7

Службы отчетов SQL Server

0 голосов
/ 23 октября 2008

как показать все значения определенного поля в текстовом поле ??? то есть. например когда вы запустите SP, вы получите 3 строки. и я хочу показать (например, имя_эмпла) в текстовом поле каждое значение отделяется запятой. (баран, джон, сита).

Ответы [ 3 ]

1 голос
/ 23 октября 2008

У меня была эта проблема на днях. Если вы используете SQL 2005, вы можете использовать функцию CROSS APPLY.

Вот образец;

Structure; 
ID TYPE TEXT
1 1 Ram
2 1 Jon
3 2 Sita
4 2 Joe


Expecteed Output;
ID TYPE TEXT
1 1 Ram, Jon
2 2 Sita, Joe

Query; 
SELECT t.TYPE,LEFT(tl.txtlist,LEN(tl.txtlist)-1)
FROM(SELECT DISTINCT TYPE FROM Table)t
CROSS APPLY (SELECT TEXT + ','
             FROM Table
             WHERE TYPE=t.TYPE
             FOR XML PATH(''))tl(txtlist)

Надеюсь, это поможет :)

Помните, что вам нужно выбрать это как что-то в вашем sp, а затем привязать это к текстовому полю в вашем отчете Удачи!

0 голосов
/ 05 декабря 2008

Вопрос должен быть «Как объединить строки» http://databases.aspfaq.com/general/how-do-i-concatenate-strings-from-a-column-into-a-single-row.html

CROSS APPLY работает или FOR XML - хорошая альтернатива курсору

SELECT 
CustomerID, 
SalesOrderIDs = REPLACE( 
    ( 
        SELECT 
            SalesOrderID AS [data()] 
        FROM 
            Sales.SalesOrderHeader soh 
        WHERE 
            soh.CustomerID = c.CustomerID 
        ORDER BY 
            SalesOrderID 
        FOR XML PATH ('') 
    ), ' ', ',') 

FROM Sales.Customer c СОРТИРОВАТЬ ПО CustomerID

Вы также можете использовать таблицу чисел / чисел

0 голосов
/ 28 ноября 2008

В 2005 году перекрестное приложение выглядит как хорошее решение (я не использовал его сам). Обычно я решал эту проблему, создавая UDF, которая объединяет значения путем циклического перемещения курсора.

...