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

Я использую 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>

person TK-42-1    schedule 09.03.2011    source источник
comment
Есть ли шанс, что вы могли бы поместить небольшой образец HTML, который в настоящее время генерируется, в вопрос? (Показана, возможно, одна строка для каждой таблицы)   -  person Martin Smith    schedule 09.03.2011
comment
Отправляемое электронное письмо зашифровано, и я не могу извлечь конечный результат HTML, но я связался с экраном выходной таблицы в комментариях к ответу ниже.   -  person TK-42-1    schedule 10.03.2011


Ответы (1)


Я наконец понял это. Сначала необходимо настроить 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.

person TK-42-1    schedule 19.03.2011