0

我不知道如何使用 PHP 语言将 MySQL 数据库中具有相同值的行组合和求和。我有 ID、机器、Worker1、Worker2、Worker3、Hours1、Hours2、Hours3 的数据库。例如,如果 Worker1 是 John,那么他的工作时间是 Hours1;如果 Worker2 是 John,那么他的工作时间是 Hours2。数据库包含很多工人和很多机器,这只是一个简单的例子:

表名 = 条目

ID 机器 Worker1 Worker2 Worker3 Hours1 Hours2 Hours3
1 M1约翰亚当5 7
2 M2亚当布鲁斯10 1
3 M1马克约翰3 2
4 M1约翰嫁给亚当8 9 6
...

我需要的是从 MySQL 和 PHP 语言中选择这样的报告,以将具有相同名称的工作单元合并到一个单元中,并将所选机器的所有时间汇总在一个单元中:

机器 = M1
-----------------------------------------
工作时间
 约翰福音 15
 亚当 13
 标记 3
 结婚 9
----------------------
全部的; 40          

感谢您的帮助和时间。

4

2 回答 2

0

您需要在 sql 中使用 group by。

SELCT SUM(Hours1),Worker1 FROM table_name WHERE Machine='M1' GROUP BY Worker1

您可能还想查看http://www.w3schools.com/sql/sql_groupby.asp

于 2013-11-13T05:28:56.357 回答
0

选择工人,总和(小时)作为小时数

(选择 sum(Hours1) as Hour,Worker1 as Worker from entry where Machine='M1' group by Worker1

联盟

select sum(Hours2) as Hour,Worker2 as Worker from entry where Machine='M1' group by Worker2 UNION

select sum(Hours3) as Hour , Worker3 as Worker from entry where Machine='M1' group by Worker3) t1

其中worker IS NOT NULL group by Worker ORDER BY Hours DESC

SqlFiddle 链接

于 2013-11-13T05:59:30.007 回答