673581 1632890
我有一个MySql查询,我想动态枢轴,公司名称作为列标头和公司财务字段作为行标头。
目前我有这个:
SELECT Company, TotalRevenue, Overhead, TotalJobCosts, GrossProfit
FROM comp_financials
,它给了我这个:
GrossProfit首先要做的是将列转换为行。方法简单;只需要使用UNION ALL
。像这样:
SELECT 1 as r,company, "TotalRevenue" val, TotalRevenue totals FROM comp_financials UNION ALL
SELECT 2, company, "Overhead", Overhead FROM comp_financials UNION ALL
SELECT 3, company, "TotalJobCosts", TotalJobCosts FROM comp_financials UNION ALL
SELECT 4, company, "GrossProfit", GrossProfit FROM comp_financials
我已经添加编号(.. as r
),以便以后在ORDER BY
中使用。val
值对应于我从中检索数据的列名。该查询将返回如下数据:
<表类>r 公司 val 总数 tbody><<tr>1 琼斯建设 TotalRevenue 4509458 1 芝加哥最佳建筑 总收益 2098001 2琼斯建设 开销 1067008 2 Chicago Best Construction Overhead 363750 3 琼斯建设 TotalJobCosts 2876568 3 芝加哥最佳建筑 TotalJobCosts 1424420 4琼斯建设 GrossProfit 1632890 4 芝加哥最佳建筑 总利润 673581 表类>