Неожиданный вывод при выполнении - PullRequest
0 голосов
/ 08 февраля 2019

У меня проблема в SQL Server, когда я пытаюсь select два столбца.

Вот код, который я написал:

declare @d varchar(max)

set @d = ''

begin
    select @d = @d + convert(nvarchar(MAX), R.Data, 121) + ('<table></td><td>' + convert(nvarchar(MAX), C.No) + '</td><td>' + C.Nome + '</td><td>' + convert(nvarchar(MAX), V.IdVendedor) + '</td><td>' + convert(nvarchar(MAX), V.Vendnm) + '</td></tr></table>') 
    from dbo.Reclamacoes R
    Inner Join dbo.PHC_CLIENTES_SAMSYS C On R.IdCliente = C.Id
    Inner Join dbo.PHC_VENDEDORES_SAMSYS V on R.IdVendedor = V.IdVendedor 

    select @d As Data, @d As HTML_COLUMN
end

Это выглядит так:

2019-02-07 00:00:00.0000000 " <table></td><td>2762.00</td><td>REGINA & MIGUEL, LDA. ( REMI )</td><td>78.00</td><td>AndreiaVeloso</td></tr></table> "

Как видите, данные смешиваются с тем, что должно появиться в другом столбце (я поставил "", что должно появиться в другом столбце).

И когдаЯ выполняю столбец, известный как «Данные», смешанный с «HTML_COLUMN. И я пытаюсь получить два столбца только с одной переменной.

Может кто-нибудь сказать мне, если это возможно в моем случае, чтобы иметь запроспоказ двух столбцов при наличии только одной переменной? Заранее спасибо.

Ответы [ 2 ]

0 голосов
/ 08 февраля 2019

Попробуйте это ..

DECLARE @HTML NVARCHAR(MAX) = '';

SET @HTML
    = N'<table border="1" >'
      + N'<tr><th>Data</th><th>Nome</th><th>IdVendedor</th><th>Vendnm</th>'
      + CAST((
                 SELECT
                     td = R.Data
                   , ''
                   , td = C.Nome 
                   , ''
                   , td = V.IdVendedor
                   , ''
                   , td = V.Vendnm
                FROM dbo.Reclamacoes                 R
                INNER JOIN dbo.PHC_CLIENTES_SAMSYS   C ON R.IdCliente = C.Id
                INNER JOIN dbo.PHC_VENDEDORES_SAMSYS V ON R.IdVendedor = V.IdVendedor
                 FOR XML PATH('tr'), TYPE
             ) AS NVARCHAR(MAX)) + N'</table>';

SELECT @HTML;
0 голосов
/ 08 февраля 2019

Вы можете сделать @d a Переменная таблицы и поместить в нее два столбца.

Пример из MSDN:

DECLARE @MyTableVar table(  
    EmpID int NOT NULL,  
    OldVacationHours int,  
    NewVacationHours int,  
    ModifiedDate datetime); 
...