1

このクロス集計クエリを mysql の同等のクエリに変換する方法を見つけようとしています。どんな助けでも大歓迎です。

TRANSFORM Sum(QryMainCrosstab.Bene_Act) AS SumOfBene_Act
SELECT QryMainCrosstab.DistrictCode, QryMainCrosstab.District_Name AS District
FROM QryMainCrosstab
WHERE (((QryMainCrosstab.Month)=[Forms]![frmResponseReport]![txtMonth]))
GROUP BY QryMainCrosstab.DistrictCode, QryMainCrosstab.District_Name
PIVOT QryMainCrosstab.StrategicResponse;

QryMainCrossTab は、別の SQL クエリです。

4

1 に答える 1

0

MySQL にはピボット関数がありませんが、集計関数とCASE式を使用して複製できます。

コードは次のようになります。

SELECT q.DistrictCode, 
  q.District_Name AS District,
  sum(case when q.StrategicResponse = 'yourResponse1' then q. Bene_Act end) SumResponse1,
  sum(case when q.StrategicResponse = 'yourResponse2' then q. Bene_Act end) SumResponse2,
  sum(case when q.StrategicResponse = 'yourResponse3' then q. Bene_Act end) SumResponse3,
  sum(case when q.StrategicResponse = 'yourResponse4' then q. Bene_Act end) SumResponse4
FROM QryMainCrosstab q
WHERE q.Month = yourValue
GROUP BY q.DistrictCode, q.District_Name

StrategicResponseの実際の値を などのそれぞれに置き換えます。句'yourResponse1'でフィルタリングする月をこのクエリに渡す必要もあります。WHERE

于 2013-02-12T10:26:40.323 に答える