Mysql 使用不同的查询创建表
我想创建一个包含工人姓名、他建造的总平方米以及他支付的总成本的表 我有两张桌子 tbl_orden和tbl_costos obrero是tbl_costos中的外键 这是我正在尝试的查询:Mysql 使用不同的查询创建表,mysql,sql,database,Mysql,Sql,Database,我想创建一个包含工人姓名、他建造的总平方米以及他支付的总成本的表 我有两张桌子 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 我正在尝试上面的查询,但是我没有
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
我正在尝试上面的查询,但是我没有得到正确的结果。Metro_c之和不正确,costo_语义之和也不正确
tbl_订单
id int主键
name_obra varchar
num_fab int
日期
类型varchar
奥布雷罗·瓦尔查尔
地铁浮球
注释varchar
tbl_costos:
id int主键
costo_语义浮点
tbl_订单中的obrero外键
费柴日期
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列的结果表您可以将每个列放入一个内联视图中,然后将它们连接起来以执行此操作:
select x.*,
y.sum_costo_semanal
from (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) x
join (select obrero,
sum(costo_semanal) as sum_costo_semanal
from tbl_costos
group by obrero) y
on x.obrero = y.obrero
请分享你的表格结构,一些样本数据,以及这些数据的预期结果。哇,不得不改变一些小事情,但答案是正确的!谢谢那个么,若我想在Y表中添加更多的列呢?但不是全部??因为我不能做y.sum\u costo\u semanal,y.whatever,y.others,你只需要对添加列如何影响总和非常敏感,因为你选择的任何其他列也必须添加到group by子句中,这将相应地改变金额。如果您想要每个对象的和,而不是该对象的和以及您所指的任何其他列的和,那么您必须使用第三个内联视图,并可能将其命名为Z。这一切都取决于您希望如何在Y中对该和进行分组