Получение почты базы данных SQL для форматирования таблицы HTML с 2 столбцами - PullRequest
2 голосов
/ 09 марта 2011

Я использую SQL Server 2005 и отправляю Почту базы данных в формате HTML. Я получаю результаты, которые мне нужны, но мне трудно форматировать таблицу так, как я хочу.

Существует два отдельных оператора SELECT, которые заполняют строки таблицы. Проблема в том, что я хочу, чтобы они отображались рядом друг с другом, но они будут отображаться только один поверх другого. Я попытался поместить их в две таблицы в большей таблице, но это не сместит его. Я не использовал HTML около 10 лет, поэтому, вероятно, проблема в этом больше, чем в самом скрипте.

Вот раздел @body, который содержит два оператора select:

    N'<table border="1" cellpadding="0" cellspacing="0"><font face="arial">' +
    N'<th>Store Number</th>' +
    N'<td>'+ CAST ( ( SELECT store_num
              FROM store_results 
              WHERE successful = 'N'
                OR successful IS NULL 
              ORDER BY store_num ASC FOR XML PATH('tr'), TYPE ) AS NVARCHAR(MAX) )+'</td>'+
    N'</td>' +
    N'<td><table border="1" cellpadding="0" cellspacing="0"><font face="arial">' +
    N'<th>Reason</th>' +
    N'<td>'+CAST ( ( SELECT 
                CASE successful
                WHEN 'N' THEN 'Failed'              
                    ELSE 'Did Not Run'
                END
            FROM store_results where successful = 'N' OR successful is null
            ORDER BY store_num ASC FOR XML PATH('tr'), TYPE ) AS NVARCHAR(MAX) )+'</td>'+
    N'</td>' +
    N'</table>

1 Ответ

1 голос
/ 19 марта 2011

Я наконец понял это.Вы должны сначала установить TD заголовка, чтобы создать столбцы.Вместо использования просто отформатировать, чтобы он выглядел так, как вы хотите.Примерно так:

N'<table border="1" cellpadding="0" cellspacing="0"><font face="arial">' +
N'<tr><td>Store Number</td><td>Reason</td></tr>' +
N'<td>'+ CAST ( ( SELECT 
    td = store_num
    td = reason
        from store_results
        ORDER BY store_num ASC FOR XML PATH('tr'), TYPE ) AS NVARCHAR(MAX) ) +  
N'</table>

Вы можете отформатировать свои ячейки на основе результата запроса, вставив td / @ attribute = case ..., если вы хотите с ним поразмышлять.В итоге я поместил все свои результаты во временную таблицу ранее в sp, чтобы сделать код генерации html проще.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...