2015-01-29 5 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

@@ROWCOUNT이라는 전역 변수에 캡처 된 SQLServer의 모든 DML (SELECT, INSERT, UPDATE) 작업. 귀하의 경우에도 그것을 사용하십시오.

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 != "" 

에 where 문은 비어 있지 않은 질의 결과를 얻는가?

+0

'' ''이라고 가정합니다. – abatishchev