Cela joindra le résultat de votre requête en tant que csv, changez-le simplement en filename.xls si vous préférez ce format. Je pense que csv fonctionne mieux, avec Excel, vous pourriez recevoir un avertissement indiquant que le fichier est dans un format différent de celui spécifié par l'extension.
J'ai également utilisé CHAR(9) ou TAB pour le séparateur de résultat de la requête, vous pouvez le remplacer par ce qui vous convient.
J'ai également ajouté SET NOCOUNT ON à votre requête, si vous ne l'avez pas, vous obtiendrez (1000 lignes affectées) (quel que soit le nombre de lignes renvoyées par votre requête) à la fin de votre fichier 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