2013-02-12 91 views
1

我想弄清楚如何將這個交叉表查詢轉換爲它在mysql中的等價物。任何幫助將受到高度讚賞。轉換訪問樞軸查詢到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查詢。

回答

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 

你會與每個'yourResponse1'的替代StrategicResponse的實際值,等你會也還是需要通過這個查詢的月份是你想過濾WHERE條款。