特定の在庫アイテムを販売したかどうかを確認するクエリがあります
select * from merchand_history where stock_code = 'zzz007' and create_timestamp >= getdate() order by create_timestamp desc
ユーザーにメールを送信するsqlジョブ(アラートメカニズムを使用していると思います)が欲しいのですが、そのクエリによって返された行がある場合のみです。
これを行う方法を考えてハイブマインドに提出することはできません。私は本当にSQLのみのソリューションが必要です...
以下のようなストアドプロシージャを作成して、ジョブとして実行するようにスケジュールします。
create procedure [dbo].[sp_send_merchant_email]
as
Begin
declare @recordCount int
select @recordCount = isnull(count(*), 0)
from merchand_history
where stock_code = 'zzz007' and create_timestamp >= getdate()
order by create_timestamp desc
IF (@recordCount > 0)
begin
EXEC msdb.dbo.sp_send_dbmail
@profile_name = 'YourProfile',
@recipients = '[email protected]',
@query = 'select * from merchand_history
where stock_code = ''zzz007'' and create_timestamp >= getdate()
order by create_timestamp desc' ,
@subject = 'Merchant Email ',
@Body = 'Email Merchant..... ' ,
@attach_query_result_as_file = 1 ;
End
else
begin
EXEC msdb.dbo.sp_send_dbmail
@profile_name = 'YourProfile',
@recipients = '[email protected]',
@BODY = 'No data returned ',
@subject = 'Merchant Email'
End
End;