Mysql 基于状态的“合计货币”列?
我有一个交叉表查询,根据特定记录状态[活动、结束等]对所有记录求和非常有效Mysql 基于状态的“合计货币”列?,mysql,crosstab,Mysql,Crosstab,我有一个交叉表查询,根据特定记录状态[活动、结束等]对所有记录求和非常有效 Select c.ReferralName, Sum((d.CaseStatusName) = 'Active') As Active, Sum((d.CaseStatusName) = 'Completed') As Completed, Sum((d.CaseStatusName) = 'Submitted') As Submitted, Count(b.CaseID) As Total, S
Select
c.ReferralName,
Sum((d.CaseStatusName) = 'Active') As Active,
Sum((d.CaseStatusName) = 'Completed') As Completed,
Sum((d.CaseStatusName) = 'Submitted') As Submitted,
Count(b.CaseID) As Total,
Sum(b.LeadCost) As Cost
From
tblcontacts a Inner Join
tblcases b On a.ContactID = b.ContactID Inner Join
tblreferral c On c.RefferalID = a.ContactReferrelSource Inner Join
tblcasestatus d On d.CaseStatusID = b.CaseStatusName
Group By
c.ReferralName With Rollup
这非常有效,但我现在还想运行一个查询,将d.CaseStatusName之和替换为b.LeadCost之和,但无法找到实现它的方法
我想我需要的是,如果d.CaseStatusName='Active'等,b.LeadCost的总和
非常感谢您的帮助。我不确定是否理解您的要求,但您可能希望使用
案例
根据d.CaseStatusName
检查条件:
SELECT
c.ReferralName,
CASE
WHEN d.CaseStatusName = 'Active'
THEN b.LeadCost
ELSE 'SomethingElse'
END AS casecolumn
...
我不确定是否理解您的要求,但您可能希望使用
CASE
检查基于d.CaseStatusName
的条件:
SELECT
c.ReferralName,
CASE
WHEN d.CaseStatusName = 'Active'
THEN b.LeadCost
ELSE 'SomethingElse'
END AS casecolumn
...
-非常感谢汤姆,这正是我所需要的,而且工作做得很完美。非常感谢你的时间和知识。没问题。我必须经常做这类事情,所以我把它放在我的脑海里。-非常感谢汤姆,这正是我所需要的,而且工作做得非常完美。非常感谢你的时间和知识。没问题。我必须经常做那种事情,所以我就把它摆在我的面前。