为不同产品创建月度销售汇总。赞恩边张贴在这里非常有帮助创建查询产生的一行单品:具有月份列和多个字段行的mysql交叉表
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查询和加载结果到一个数组,然后从该数组中显示。看起来效率更高,一次全部获取数据并逐行显示返回。
有没有办法做到这一点?
当你想给感谢或更多的信息,你应该使用评论 - 而不是答案。 – Damiqib 2013-04-27 16:28:32
Damiqib:对不起,这个网站是新手。将来会这样做。 – Bruce 2013-04-28 17:22:38