为不同的产品创建月度销售摘要。Zane Bien 在此处发布非常有助于创建查询以为单个产品生成一行:
Income Source Jan Feb Mar -- Total Pct
Report Fees 11285 12745 17980 ... 236970 95.9954
这是该查询:
SELECT "Report Fees" AS `Income Source`,
SUM( IF( MONTH( b.ord_billed_time ) =1, b.ord_fee_report, 0 ) ) AS Jan,
SUM( IF( MONTH( b.ord_billed_time ) =2, b.ord_fee_report, 0 ) ) AS Feb,
SUM( IF( MONTH( b.ord_billed_time ) =3, b.ord_fee_report, 0 ) ) AS Mar,
"..." AS `--` ,
SUM( b.ord_fee_report ) AS Total,
AVG( b.ord_fee_report / b.ord_fee_total ) *100 AS Pct
FROM orders b
WHERE b.ord_billed_time IS NOT NULL
AND b.ord_cancelled_time IS NULL
AND b.ord_fee_report IS NOT NULL
AND year( b.ord_billed_time ) = 2012
AND b.clientID = 8
有没有办法扩展这个单一的查询,以便我得到 8 行,一个用于每种不同的收入类型,以及一个“总计”行?像这样的东西:
Income Source Jan Feb Mar -- Total Pct
Report Fees 11285 12745 17980 ... 236970 95.9954
Income Type2 5401 3320 1394 ... 13456 0.321
Income Type3 98 421 14 ... 1102 0.001
...
Total 333333 22222 11111 ... 9999999 100.0
收入类型存储在订单表中的单独列中:ord_fee_x、ord_fee_y、ord_fee_z 等。
现在我正在运行 8 个查询并将结果加载到一个数组中,然后从该数组中显示。一次获取所有数据并逐行显示返回的数据似乎更有效。
有没有办法做到这一点?