Mysql存储过程查询

Mysql存储过程查询,mysql,Mysql,我使用以下存储过程返回最近或最后插入的活动的已发送电子邮件 现在,我的目标是仅显示已发送的活动:count大于0如何更改以下sp以执行此操作,因为现在它将返回所有活动,包括0和大于0 代码是 DELIMITER $$ DROP PROCEDURE IF EXISTS `couponcrusaderdev`.`sp_tblemailcampaignLoadTop4`$$ CREATE DEFINER=`anyone`@`000.000.00.00` PROCEDURE `sp_tblemail

我使用以下存储过程返回最近或最后插入的活动的已发送电子邮件

现在,我的目标是仅显示已发送的活动:count大于0如何更改以下sp以执行此操作,因为现在它将返回所有活动,包括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
你应该使用

手册:

感谢您的回复,但是我应该将此代码放在上面代码的哪里?您可以将其粘贴到上面代码中并重新发送给我吗?请注意,我是一名初学者,下面这行应该怎么做。。。。。。。。。。按活动日期时间描述限制4订购,以及应使用以下行执行的操作。。。。。。。。。。通过添加COUNTsent>=0,按活动日期时间描述限制4排序;它返回异常结果我认为这是因为它是否应该放置GroupBy如果是,那么它的语法是什么?尝试使用以下方法:按活动日期时间分组测试>0按活动日期时间顺序描述限制4
 HAVING COUNT(sent) >= 0;