Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/40.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 基于状态的“合计货币”列?_Mysql_Crosstab - Fatal编程技术网

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
...

-非常感谢汤姆,这正是我所需要的,而且工作做得很完美。非常感谢你的时间和知识。没问题。我必须经常做这类事情,所以我把它放在我的脑海里。-非常感谢汤姆,这正是我所需要的,而且工作做得非常完美。非常感谢你的时间和知识。没问题。我必须经常做那种事情,所以我就把它摆在我的面前。