2011-11-14 18 views
0

iは、最新のか最後に挿入キャンペーンMySQLのストアドプロシージャのクエリ

の送信された電子メールが送信された「今だけの私の目的はしているキャンペーンを表示する」を返し、次のストアドプロシージャを持っています今では「0」よりも、「0」と大きいなど、すべてのキャンペーンを返しているので、私はあなたは

DELIMITER $$ 

DROP PROCEDURE IF EXISTS `couponcrusaderdev`.`sp_tblemailcampaignLoadTop4`$$ 

CREATE DEFINER=`anyone`@`000.000.00.00` PROCEDURE `sp_tblemailcampaignLoadTop4`(p_UserID Int(11)) 
    SQL SECURITY INVOKER 
BEGIN 
SELECT EC.*,(Select MailChimpCampaignID from tblcampaignschedule where EC.CampaignID=tblcampaignschedule.CampaignID) as MailChimpCampaignID,(Select count(MailChimpCampaignID) from tblcampaignschedule) as msent,CT.CampaignType, (Select tblcampaignschedule.ScheduleDateTime from tblcampaignschedule 
where EC.CampaignID=tblcampaignschedule.CampaignID order By ScheduleDateTime desc limit 1) as CampaignDateTime, 
(Select Count(*) from tblemailsent ES 
inner join tblcampaignschedule CS on CS.CampaignSceduleID= ES.CampaignSceduleID 
where ES.Status= 'ProcessedMessage' and CS.CampaignID = EC.CampaignID)as Sent 
FROM tblemailcampaign EC 
inner join tblcampalgntype CT on CT.CampaignTypeID= EC.CampaignTypeID 
inner join tblcompanies C On EC.CompanyID = C.CompanyID 
WHERE (p_UserID = 0 OR C.AddUserID = p_UserID) 
order by CampaignDateTime desc limit 4 
; 
END$$ 

DELIMI 

答えて

0

...

コード..」、次のSPへの変更は、それを行うにはされていることを確認できました使用する必要がありますHAVING

HAVING COUNT(sent) >= 0; 

マニュアル:返信が、私は、コードの上にNYでこれを置く場所uは上記のコードで私のためにそれを貼り付け、それを再送信することができますため
http://dev.mysql.com/doc/refman/5.0/en/group-by-hidden-columns.html

+0

おかげで...プラザ私は初心者です次の行で何が行われるべきか.......... CampaignDateTime descの制限による注文4 –

+0

「注文する」行の前。 – Oyeme

+0

そして、次の行で何を行う必要がありますか?HAVING COUNT(sent)> = 0を追加することでCampaignDateTime desc limit 4で注文します。それはそれが原因だと思う異常な結果を返します –