MySQL SELECT WHERE多个值

时间:2016-03-01 20:18:18

标签: php mysql json

我有一张这样的桌子 micro-benchmark results

创建谷歌图表,所以我需要几个数据库查询来创建JSON。一切都已完成,但很难用DB查询。

  1. 解决了这个问题。
  2. 需要选择所有可计费小时数和所有非可计费小时数,其总和按日期分组。因此,每天可以获得可计费和非计费小时数。
  3. 目前我有单一查询,

    $json = array();
    $sql = "SELECT SUM(TIME_TO_SEC(`hours`)) as seconds,date FROM `am_am2_time_tracking` WHERE is_billable = 1 GROUP BY date";
    $result = $conn->query($sql);
    while($row = $result->fetch_assoc())
    {   
        $bil_hours = floatval($row['seconds'] / 60 / 60);
        $json[] = array('date'=>$row['date'],'bill_hours'=>$bil_hours);
    }
    echo json_encode($json);
    

    给了我这个json:

    [{"date":"2016-02-03","bill_hours":12.5},{"date":"2016-02-04","bill_hours":6},{"date":"2016-02-12","bill_hours":3},{"date":"2016-02-13","bill_hours":4},{"date":"2016-02-18","bill_hours":1.25},{"date":"2016-02-19","bill_hours":1},{"date":"2016-02-26","bill_hours":1.75},{"date":"2016-02-27","bill_hours":0.5}]
    

    但不是创建新的查询,而是寻找更好的方法在单个json中同时使用这两个小时。

1 个答案:

答案 0 :(得分:0)

您是否尝试进行以下查询

$sql = "SELECT SUM(TIME_TO_SEC(`hours`)) as seconds,date FROM `am_am2_time_tracking` GROUP BY date, is_billable";