我有两个包含类似数据的数据库表 - 其中一个是进程完成的工作量,另一个是该进程发生的错误数量。从mySQL查询中收集两个单独的列结果
我想显示正确的第一次工作的百分比。
我通过工艺计算的项目数查询:
SELECT Counter.Process, count(Counter.Process) AS count
FROM Counter WHERE (TIME BETWEEN '2012-07-01 00:00:00' AND '2012-07-06 23:59:59')
GROUP BY Counter.Process
ORDER BY count DESC
上面给了我类似的列表:
Process | count
-------------------
Process A | 40
Process B | 32
Process C | 102
Process D | 23
我有第二个表与它相同的字段用于记录错误,称为“错误”。
通过使用相同的查询(但明显改变表名),我可以得到一个进程和错误的列表。
我想要做的是创建一个PHP网页,显示每个进程的错误百分比。
我的问题是,如果我分别创建两个查询,当我使用PHP Where循环遍历它们时,我不知道如何使计算显示百分比。
我试着在两个SQL查询之间使用UNION,但是我无法让它显示出针对该过程的两个不同的计数读数。
理想情况下,我想一个方法来显示这样的数据:
Process | Counter.count | Errors.count
Process A 40 2
Process B 32 0
Process C 102 18
Process D 23 8
我真的很感激任何意见/建议,我怎么能做到这一点 - 如果你需要我的数据库的详细信息表,请让我知道
感谢您阅读
小号
不,他应该加入两个表,使用内部连接,并获得他需要的结果集。 – 2012-07-06 19:36:21
从我可以看到尼尔,你的建议确实是我需要的。真相,你能解释一下加盟会提供哪些Neils解决方案没有的?感谢您的帮助! – user1507535 2012-07-06 19:41:12
查询没有问题。如果你在流程专栏上有索引,那也很不错。否则,联接解决方案可能会更好。要使没有索引的计数需要在第一个表上对组中返回的每一行的错误表执行全表扫描。在这种情况下,联接解决方案可能会更好,因为每个表只能扫描一次。如果表中的数据不是很大,那么即使没有索引,查询也可以。 – 2012-07-06 19:55:05