对于每个结果,添加/组合一个结果MySql

时间:2012-06-30 23:03:09

标签: php mysql arrays add

我可以通过这个有效的查询获得以下结果:

$query = "SELECT tt.time_start, tt.time_end
FROM track_time as tt, project_track as pt, project_clients as pc, clients as cl
WHERE tt.track_id = pt.track_id
AND pt.project_id = pc.project_id
AND pc.client_id = cl.client_id
AND cl.client_id =".$db->prep($client_id);
$res = $db->query($query,'assoc');

**RESULTS**
time_start  time_end    client_id
1340927940  1340928420  1
1341066240  1341077040  1
1341086400  1341088560  1
1340954400  1340986800  7

我想要为每个客户实现的目的是为一个结果添加所有 time_start 值,将所有 time_end <加起来/ strong>一个结果的值,然后得到这两个结果之间的差异。这将允许我确定每个客户的总数。

我正在使用PHP并尝试各种foreach方法,没有运气和不正确的数组返回。有什么想法吗?

2 个答案:

答案 0 :(得分:1)

试试这个:

$query = "SELECT pc.client_id, 
                 (SUM(tt.time_start) - SUM(tt.time_end)) as `Difference`
          FROM  track_time as tt, project_track as pt, 
                project_clients as pc, clients as cl
          WHERE tt.track_id = pt.track_id
                    AND pt.project_id = pc.project_id
                    AND pc.client_id = cl.client_id
                    AND cl.client_id =" . $db->prep($client_id) . " 
          GROUP BY client_id";

答案 1 :(得分:0)

time_starttime_end似乎是时间戳值。所以;

$total = 0;
foreach( $array as $item)
{
     $total += strtotime( $item['time_start']);
}

之后,如果您以意图格式运行date()函数,我认为它应该可以正常工作。