0

我猜我有这个相当复杂的问题。我的 Mysql DB 看起来像这样:

行程:

  • ID
  • 里程
  • 车牌号
  • 司机编号

驱动程序:

  • ID
  • 姓名

汽车:

  • ID
  • 模型

我需要实现的是一个表格,它为汽车但为单独的司机聚合数据,所以它看起来像这样:

  • 汽车:总里程,...(这辆车,所有司机的总和)
    • 司机:总里程,...(本车,仅限X1司机)
    • 司机:总里程,...(本车,仅限X2司机)
  • 汽车:总里程,...(这辆车,所有司机的总和)
    • 司机:总里程,...(本车,仅限X1司机)
    • 司机:总里程,...(本车,仅限X2司机)

等等。我完成了第一步,所以我按汽车的 ID 对数据进行了分组。我现在需要为每辆车的不同司机获取相同的统计数据。

可以轻松完成吗?

谢谢你的帮助

@编辑

当前查询

"SELECT SUM(`przejazdy`.`przebieg`) as przebieg, SUM(`przejazdy`.`norma`) as norma, SUM(`przejazdy`.`faktyczne`) as zuzycie, `wozy`.`nr wozu`, `kierowcy`.`nr kierowcy` FROM `przejazdy` JOIN `wozy` ON `wozy`.`id` = `przejazdy`.`nr wozu` JOIN `kierowcy` ON `kierowcy`.`id` = `przejazdy`.`nr kierowcy` GROUP BY `przejazdy`.`nr wozu`, `przejazdy`.`nr kierowcy` WITH ROLLUP";

它返回给我一个“平面”数组,不是很有用 - 我需要 2 级数组:

key: car's id -> 包含数据数组,包括司机的 id、里程和其他统计数据,数组“total”表示汽车的总数据

4

1 回答 1

0

尝试按汽车 ID 和驾驶员分组并按里程汇总,并在 GROUP BY 中使用 WITH ROLLUP:

SELECT carID, dirverID, sum(mileage) FROM ... GROUP BY 1, 2 WITH ROLUP;
于 2013-04-27T15:31:05.780 回答