Esto adjuntará el resultado de su consulta como un csv, simplemente cámbielo a filename.xls si prefiere ese formato. Creo que csv funciona mejor, con Excel puede recibir una advertencia que dice que el archivo está en un formato diferente al especificado por la extensión.
También usé CHAR(9) o TAB para el separador de resultados de la consulta, puede cambiarlo a lo que funcione para usted.
También agregué SET NOCOUNT ON a su consulta, si no tiene eso, obtendrá (1000 filas afectadas) (cualquiera que sea la cantidad de filas que devuelva su consulta) al final de su archivo de Excel.
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