Tím se připojí výsledek vašeho dotazu jako csv, stačí jej změnit na název_souboru.xls, pokud dáváte přednost tomuto formátu. Myslím, že csv funguje lépe, v Excelu se může zobrazit varování, že soubor je v jiném formátu, než jaký určuje přípona.
Také jsem použil CHAR(9) nebo TAB pro oddělovač výsledků dotazu, můžete to změnit na cokoliv, co vám vyhovuje.
K vašemu dotazu jsem také přidal SET NOCOUNT ON, pokud jej nemáte, dostanete (1000 ovlivněných řádků) (bez ohledu na počet řádků, které váš dotaz vrátí) na konci vašeho excelového souboru.
DECLARE
@tab char(1) = CHAR(9)
EXEC msdb.dbo.sp_send_dbmail
@profile_name = 'Adventure Works Administrator',
@recipients = '[email protected]',
@query = 'SET NOCOUNT ON
SELECT COUNT(*) FROM AdventureWorks2012.Production.WorkOrder
WHERE DueDate > ''2004-04-30''
AND DATEDIFF(dd, ''2004-04-30'', DueDate) < 2' ,
@subject = 'Work Order Count',
@attach_query_result_as_file = 1,
@query_attachment_filename='filename.csv',
@[email protected],
@query_result_no_padding=1