2015-01-29 3 views
-1

У меня есть результаты запроса ниже по электронной почте каждый день в 90% случаев. Я хотел бы добавить, если заявление только отправить письмо Если (в результате строку число> 0)Оператор IF по результатам запроса

Select Orders.TransactionNumber, Orders.RepNumber, Orders.CustomerID, 
     Orders.ShipToId, orders.ItemCode, Orders.Quantity, Orders.ReceivedDate, 
     Orders.TransmitStatus from (select TransactionNumber from Orders 
group by TransactionNumber 
having count (TransactionNumber = 1) as transa 

inner join Orders on Orders.TransactionNumber = transa.TransactionNumber 

where ItemCode = 9987 and ReceivedDate > DateAdd(day, -4, GetDate()) 
order by ReceivedDate 

Добавьте сюда if (counted rows>0 send the email else end)

+1

Это запрос или хранимая процедура? Если это последний, вы можете просто ввести оператор IF непосредственно в sproc; если это первый, вам может потребоваться поставить оператор if в код, вызывающий запрос. –

+0

Где код электронной почты? Что нужно использовать для рассылки? PHP, ASP или VS Apps? – Sayka

+0

Взгляните на мой SP [здесь] (https://davegugg.wordpress.com/2015/01/21/send-database-mail-in-html-table-format/). Он не только дает возможность отправлять почту, если нет результатов, но также помещает электронную почту в таблицу html! –

ответ

1

Любые операции DML (SELECT, INSERT, UPDATE) в SQLServer, захваченные в глобальной переменной с именем @@ROWCOUNT. Используйте это и в своем случае.

Select Orders.TransactionNumber, Orders.RepNumber, Orders.CustomerID, 
Orders.ShipToId, orders.ItemCode, Orders.Quantity, Orders.ReceivedDate, 
Orders.TransmitStatus from (select TransactionNumber from Orders 
group by TransactionNumber 
having COUNT (TransactionNumber)=1) as transa 

Inner join Orders on Orders.TransactionNumber=transa.TransactionNumber 

where ItemCode=9987 and ReceivedDate > DateADD (day, -4, GetDate()) 
Order by ReceivedDate 

IF @@ROWCOUNT > 0 
PRINT 'send mail<your logic goes here>' 
+0

Это сработало для меня .... Спасибо за помощь! – Hogwilde1

0

Не удалось применить:

Orders.TransactionNumber != "" 

к вашему где утверждение, чтобы получить результаты запроса, которые не пусты?

+0

Предположим, что это должно быть '' ''. – abatishchev

Смежные вопросы