MySql pivot显示未知数量的列标头



我有一个MySql查询,我想动态枢轴,公司名称作为列标头和公司财务字段作为行标头。

目前我有这个:

SELECT Company, TotalRevenue, Overhead, TotalJobCosts, GrossProfit 
FROM comp_financials

,它给了我这个:

GrossProfit6735811632890

首先要做的是将列转换为行。方法简单;只需要使用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琼斯建设TotalRevenue45094581芝加哥最佳建筑总收益20980012琼斯建设开销10670082Chicago Best ConstructionOverhead3637503琼斯建设TotalJobCosts28765683芝加哥最佳建筑TotalJobCosts14244204琼斯建设GrossProfit16328904芝加哥最佳建筑总利润673581

最新更新