【发布时间】:2015-09-21 22:22:17
【问题描述】:
我想创建一个表格,其中包含工人的姓名、他建造的总平方米和支付的总成本。
我有两张桌子
tbl_orden 和 tbl_costos
obrero 是 tbl_costos 中的外键
这是我正在尝试的查询:
SELECT a.obrero AS MAESTRO, ROUND(SUM(metros_c),2) AS METROS, SUM(b.costo_semanal)
FROM tbl_orden as a, tbl_costos as b GROUP BY a.obrero
我正在尝试上述查询,但没有得到正确的结果。 metros_c 的 SUM 不正确,costo_semanal 的总和也不正确
tbl_order
- id (int) 主键
- name_obra (varchar)
- num_fab (int)
- 日期(日期)
- 类型(varchar)
- obrero (varchar)
- metros_c (float)
- 评论(varchar)
tbl_costos:
- id (int) 主键
- costo_semanal(浮点数)
- obrero(来自 tbl_order 的外键)
- fechai(日期)
- fechaf(日期)
我想要这个查询结果:
SELECT obrero AS Maestro, ROUND(SUM(metros_c),2) AS Metros_Cuadrados, ROUND(SUM(metros_c)/MONTH(CURDATE()),2) as Promedio_Mensual, ROUND(SUM(metros_c)/WEEK(CURDATE()),2) as Promedio_Semanal FROM `tbl_orden`
WHERE dated BETWEEN '01/01/2015' AND '01/01/2016' GROUP BY obrero ORDER BY metros_c asc
这个查询会导致上表的其他列:
SELECT SUM(costo_semanal) from tbl_costos GROUP BY obrero
第一个查询我得到 4 列,第二个我得到 1 个。我想要一个包含 5 列的结果表
【问题讨论】:
-
请分享您的表格结构、一些示例数据以及该数据的预期结果。