能一次性用数据库查询出来吗?
要做转置,处理起来相当的麻烦,基本思路是先用一个SQL查出列(A、B、C等),再循环,生成另一个SQL,再执行生成的SQL得到结果……太麻烦不写了,自己百度搜转置
简单的方法就是用一般的SQL统计查询,然后再在程序里来拼出你想要的表。
SELECT b.etime,a.pname,SUM(b.ecost) as sum_cost FROM table1 as a,table2 as b WHERE a.pid=b.epid GROUP BY b.etime,b.epid
执行后结果如图:
拿回来自己再算总计。
楼主的图画得不错,差点把我绕进去了...
select * from ( select * from table2 left join table1 on table2.epid =table1.pid order by eid asc,etime asc) as sumTable group by etime,eid;
得
panme etime ecost
A 08-04 x
A 08-05 x
B 08-04 x
B 08-05 x
好了,到了这步,楼主不会用php转成那种格式吗?要用sql也可以,不过也是需要一样的逻辑,PHP难道不比sql好使吗?PHP是世界上最好的语言喔
SELECT etime,SUM(IF(epid=1,ecost,0)) AS A,
SUM(IF(epid=2,ecost,0)) AS B,
SUM(IF(epid=3,ecost,0)) AS C, SUM(ecost) AS Total
FROM mytable GROUP BY etime;
没测试。
2 回答2.5k 阅读✓ 已解决
5 回答1.5k 阅读
2 回答1.1k 阅读✓ 已解决
2 回答2.2k 阅读
1 回答1.5k 阅读✓ 已解决
3 回答695 阅读✓ 已解决
1 回答839 阅读✓ 已解决
我很在意!!!!
1. first step
output:
output:
附原始数据表:
总感觉数据哪里有问题,是题主算错了,还是我算错了。