I am new to working with SQL.
My goal is to email the query results to create an email. I intend to create a stored procedure and schedule it twice a week (there will be no more than 20 letters, this will not be a heavy load on e-mail) on SQL Server 2008.
SELECT ProjectCodes.ProjectCode, COUNT(Projects.ProjectsID), ProjectApprovers.EmailApprover
FROM Projects
INNER JOIN ProjectCodes
ON Projects.ProjectCodesID=ProjectCodes.ProjectCodesID
INNER JOIN ProjectApprovers
ON Projects.ProjectCodesID=ProjectApprovers.ProjectCodesID
WHERE ProjectApprovers.IsPrimaryApprover=1
group by ProjectCodes.ProjectCode, ProjectApprovers.EmailApprover
This returns something similar to:
+-------------+-------+--------------+
| ProjectCode | Count | EmailAddress |
+-------------+-------+--------------+
| Code1 | 4 | Email1 |
| Code2 | 2 | Email2 |
| Code3 | 2 | Email3 |
| Code4 | 3 | Email4 |
+-------------+-------+--------------+
What I would like to do is basically accomplish this result by doing the following:
EXEC msdb.dbo.sp_send_dbmail
@recipients= 'email1', --email address from above query
@subject='Test email',
@body='You have X projects waiting' -- where X is the COUNT() term
for each of the lines.
My understanding is that I can do it a little simply for each record if I use the cursor, but all the documents and results I found show that this is not a good strategy.
What is the best way to do something like this?