herhangi çalışanlar günlük saat şu anda benim kod tüm çalışanların saatlik tüm örtüşmektedir, 6.00 altında kalan yalnızca bu uyarıyı oluşturmak istiyorum, nasıl sadece her çalışanınAlert Group tarafından Sum'a dayalı IF beyanı üzerinde BA?
declare @totalhrs int
SELECT @totalhrs = SUM(duration)
FROM pl00.DBO.schedule
where (schedule.DATE = CONVERT(char(10), getdate()+2, 121)
and schedule.TYPE <> 'z')
group by EMP_ID, schedule.DATE
if(@totalhrs < 6)
begin
EXEC msdb.dbo.sp_send_dbmail
@profile_name = 'mail.pacificlawnsprinklers.com',
@recipients = '[email protected]',
@query = '
SET NOCOUNT ON;
SELECT EMP_ID, DateName(weekday, Cast(schedule.DATE AS date)),schedule.[DATE], SUM(duration) as TotalHrs
FROM pl00.DBO.schedule
where (schedule.DATE = CONVERT(char(10), getdate()+2, 121)
and schedule.TYPE <> "Z")
group by EMP_ID, schedule.DATE
',
@subject = 'Lights Lists to Review',
@attach_query_result_as_file = 0 ;
end
:
bu sorguyu deneyin. Bir e-posta göndermek için öncelikle tüm EMP_ID'lerinin bir listesine ihtiyacınız vardır. Ardından, EMP_ID sorgusuna başka bir yüklem ekleyin. Her bir alıcı için yol boyunca e-posta göndererek listeden geçebilirsiniz. –
Her kişiyi e-postayla göndermek istemiyorum. İlk önce, teknisyenlerin toplamı <6 değil, tüm teknisyenlerin toplamı varsa, kendimi uyarmak istiyorum, o zaman SADECE 6 –
Gotcha'dan daha az bir süre toplamı ile teknikler seçmek zorunda kaldım. Bunlardan herhangi birinin <6 süresinin olup olmadığını belirlemenin kolay yolu, EXISTS kullanmaktır. Daha sonra standart bir deyim kullanarak tüm isimleri alabilirsiniz. Gerçek kodlamayla ilgili yardım almak isterseniz buradan başlayın. http://spaghettidba.com/2015/04/24/how-to-post-at-sql-question-on-a-public-forum/ –