我目前有一個存儲過程(Utils.DailySalesTaxDue),用於計算字段(SalesTax)的總和。目前該過程將確定金額,然後執行另一個存儲過程(Utils.SendEmail)。在SQL中使用IF語句來確定是否發送電子郵件
有時候SalesTax的總和等於0.00美元。在這些情況下,我不想發送電子郵件。我假設需要一個IF語句。我有一個if語句,它使用通配符語句來檢查@ReportBody變量中的%$ 0.00%。它的工作原理,但我知道這可能不是最好的方式來做到這一點。這是我目前擁有的。
declare @ReportHTML varchar(max),
@Recipient varchar(255),
@EmailSubject varchar(255),
@ReportBody varchar(max)
select
@ReportBody = 'Sales Tax Total due is: <b>' + format(isnull(sum(SalesTax),0.00),'C','en-us') + '</b>'
from
Final.FactTransactionDay f
inner join Final.SaleOutcome so
on f.SaleOutcomeKey = so.SaleOutcomekey
where
f.StoreID = @StoreID and
f.=TransactionDateKey = @TransactionDateKey and
so.NetCount <> 0
/////Additional Code
--Do not send the email if claim amount is $0.00
if @ReportBody not like '%$0.00%'
begin
--Send email
exec Utils.SendEmail
@HTML = @ReportHtml,
@Recipients = @Recipient,
@From = '[email protected]',
@FromName = 'Sales',
@Subject = @EmailSubject
end
什麼將檢查總和(銷售稅)是否不等於$ 0.00更好的方法,如果它不等於然後關火Utils.SendEmail存儲過程?
我'總和(銷售稅)'的結果分配給不同的變量,並檢查結果,而不是對電子郵件的整個身體做了'LIKE'。 – Siyual