1

特定のレコード ステータス [アクティブ、終了など] に応じてすべてのレコードを合計するのに優れたクロス集計クエリがあります。

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 の合計が必要だと思います。

どんな助けでも大歓迎です。

4

2 に答える 2

1
Select
  c.ReferralName,
  Sum(CASE WHEN (d.CaseStatusName) = 'Active'    THEN b.LeadCost ELSE 0 END) As Active,
  Sum(CASE WHEN (d.CaseStatusName) = 'Completed' THEN b.LeadCost ELSE 0 END) As Completed,
  Sum(CASE WHEN (d.CaseStatusName) = 'Submitted' THEN b.LeadCost ELSE 0 END) 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
于 2012-09-12T14:12:49.757 に答える
0

あなたの要件を理解しているかどうかはわかりませんが、以下CASEに基づいて状態を確認するために使用することをお勧めしd.CaseStatusNameます。

SELECT
  c.ReferralName,
  CASE
    WHEN d.CaseStatusName = 'Active'
      THEN b.LeadCost
    ELSE 'SomethingElse'
  END AS casecolumn
...
于 2012-09-12T14:11:25.163 に答える