Mysql将查询写入过滤器(column1-sum(something))>;0

Mysql将查询写入过滤器(column1-sum(something))>;0,mysql,Mysql,我有疑问: SELECT cf_1095,@sum:=sum(amount), accountingpaidamount, DATE_FORMAT(paymentdate ,'%d/%m/%Y') as tanggal, DATE_FORMAT(due_date ,'%d/%m/%Y') as tgljatuhtempo, vtiger_servicecontracts.subject as kodetb, vtiger_contactdetails.contactid as mem

我有疑问:

SELECT cf_1095,@sum:=sum(amount), accountingpaidamount,     
DATE_FORMAT(paymentdate ,'%d/%m/%Y') as tanggal,
DATE_FORMAT(due_date ,'%d/%m/%Y') as tgljatuhtempo, 
vtiger_servicecontracts.subject as kodetb,
vtiger_contactdetails.contactid as memberid,
campaignname as nokk,
vtiger_contactdetails.firstname as namadepan,
vtiger_contactdetails.lastname as  namabelakang,
vtiger_leaddetails.lastname as tipekartu,
cf_1085 as namabank,
cf_1095-sum(amount) as kuranggesek
FROM `vtiger_accounting_payments`, vtiger_accounting,
vtiger_servicecontracts,vtiger_servicecontractscf,     
vtiger_crmentity,vtiger_user2role, vtiger_role, 
vtiger_users,vtiger_leaddetails, vtiger_contactdetails, vtiger_campaign
WHERE
vtiger_crmentity.crmid=vtiger_accounting_payments.idtransaction
and vtiger_accounting.accountingrelated2=vtiger_servicecontracts.servicecontractsid
and vtiger_servicecontractscf.servicecontractsid=vtiger_servicecontracts.servicecontractsid
and accountingtype='Pelunasan Gesek'
and vtiger_accounting_payments.idtransaction=vtiger_accounting.accountingid
and vtiger_crmentity.deleted=0
and vtiger_user2role.userid=vtiger_users.id
and vtiger_crmentity.smcreatorid=vtiger_user2role.userid
and vtiger_user2role.roleid=vtiger_role.roleid
and vtiger_users.user_name='stafroyal'
and cf_1091=leadid
and vtiger_contactdetails.contactid=vtiger_servicecontracts.contactid 
and
vtiger_campaign.campaignid=cf_1155
and date_format(paymentdate,'%Y-%m-%d') < date_format(now(),'%Y-%m-%d') 
group by idtransaction
order by vtiger_servicecontracts.subject
因此,kuranggesek列上的零结果将被消除。但如果添加这些过滤器,我会得到错误:

Invalid use of group function
你能帮我修一下吗


感谢您在where子句中使用having子句,而不是使用聚合函数

WHERE
子句过滤MySQL选择的行。然后MySQL将这些行分组,并为您的COUNT函数聚合数字

拥有
类似于WHERE,只有在计算了计数值之后才会发生,因此它将按照您的预期工作

....
group by idtransaction
having kuranggesek>0
order by vtiger_servicecontracts.subject

使用
具有(cf_1095-sum(amount))>0来代替和filter@Devisy执行需要多少时间?嗨vipin大约需要5secs@jeevabalan1995依赖于应用程序。但是,我认为这个问题来自一些报告,你是对的。这不是我经常问的问题,我在我的查询中有这个问题。非常感谢你!
....
group by idtransaction
having kuranggesek>0
order by vtiger_servicecontracts.subject