需要有关算术平均查询的帮助

时间:2015-02-20 17:23:10

标签: php mysql

我有一个像这样工作的系统:

来自许多公司部门的用户在许多其他公司中投票。

示例:来自汽车公司的约翰1票超市公司,购物中心等。

每个行业有超过1家公司。我的意思是,有汽车公司1,汽车公司2等。

来自汽车公司2的约翰不能投票给其竞争对手 - 汽车公司2.汽车公司2甚至不会出现在投票页面上。

然而,我遇到了问题。在管理页面上显示结果时,它正在计算所有投票。因此,对于汽车公司2,它将计算所有选票(包括约翰),但约翰的票数将为0.

我不想要它,你知道我的意思吗?


示例:汽车公司2得到了这些结果:10,8,4,9和0(约翰的投票)所以数学将是(10 + 8 + 4 + 9 + 0)/ 5,当它应该是(10 + 8 + 4 + 9)/ 4。请记住:并非每个部门都有竞争公司 这是我的问题。

SELECT sum(vt.nota) totalvoto, (sum(vt.nota) * 10/pc.pessoas_votos)/10 media, pc.id, pc.pessoas_votos, pc.nome_peca, vt.nota, vt.data, vt.hora, pc.id_subcategoria, emp.nome_empresa FROM pecas pc, votos vt, empresas emp where pc.id = vt.id_peca 
and vt.id_categoria = 2 
and pc.empresa = emp.id

我尝试了很多东西,但我无法让它发挥作用。是否会将Notes的DEFAULT值设为NULL并在查询中搜索与NULL不同的值?
抱歉我的英语不好 - 这不是我的主要语言加上我很着急。谢谢大家!

编辑: 投票存储在“投票”表中。表结构:

id, usuario, id_peca, nota, data, hora

如果ID是自动增值,则usuario是谁投票,id_peca是他投票的公司,nota是他给公司的注释,数据和hora是日期加时间。

当公司“x”收到票据8,4,0(因为其中一个选民是直接竞争者)时,它获得了4(8 + 4 + 0/3)的媒体,当它应该收到(8 + 4) / 2)。更改数据库中列的默认值将解决它,对吧?我的意思是,将默认值更改为“DEFAULT”并在查询上使其搜索除了注释值为“DEFAULT”之外的所有内容。

0 个答案:

没有答案