2011-03-09 3 views
2

SQL Server 2005를 사용 중이며 HTML로 서식이 지정된 데이터베이스 메일을 보내고 있습니다. 필요한 결과를 얻고 있지만 원하는대로 표 형식을 지정하는 데 어려움이 있습니다.SQL 데이터베이스 메일로 2 열로 HTML 테이블 서식 지정하기

테이블 행을 채우는 두 개의 별도 SELECT 문이 실행 중입니다. 문제는 서로 관련되어있을 때 나란히 표시하기를 원하지만 다른 하나 위에 표시하는 것입니다. 나는 그것들을 더 큰 테이블 안에 두 개의 테이블에 넣으려고했으나 그것을 뒤집지는 않을 것입니다. 나는 약 10 년 만에 HTML을 사용하지 않았으므로 스크립트 자체보다는 그 이상의 문제 일 것입니다.

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> 
+0

현재 생성되는 HTML의 작은 샘플을 질문에 넣을 수 있습니까? (각 테이블에 대해 하나의 행을 표시하는 것일 수도 있음) –

+0

보내는 전자 메일이 암호화되어 있으며 최종 결과 HTML을 추출 할 수 없지만 아래 출력에 주석의 출력 테이블 화면에 연결되어 있습니다. –

답변

1

나는 마침내 알아 낸 :

다음은 두 개의 선택 문을 포함하는 @body 섹션입니다. 열을 만들려면 머리글 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/@ 속성에 고집 = 케이스하여 쿼리의 결과에 따라 세포를 포맷 할 수 있습니다 ... 당신이 그것을 공상 얻을 싶어합니다. 나는 HTML 생성 코드를 더 간단하게 유지하기 위해 모든 결과를 임시 테이블에 넣는 것을 끝내었다.