Как подсчитать количество записей за день с помощью MySQL [дубликат]Php

Кемеровские программисты php общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Как подсчитать количество записей за день с помощью MySQL [дубликат]

Сообщение Anonymous »

Как подсчитать записи по дате. Я просто передаю две даты, используя BETWEEN в моем запросе MySQL, например, для 01.05.2017 и 10.05.2017

Таблица:

Код: Выделить всё

 tid    vid     dates       type
-------------------------------------
1  TN01VD2365  2017-05-01  Cash
2  TN01VD1254  2017-05-02  Cash
3  TN03JG2589  2017-05-01  Credit
4  TN12KL5874  2017-05-01  Cash
5  TN14DS4569  2017-05-05  Compliment
6  TN45KJ6987  2017-05-06  Credit
7  TN45AS6542  2017-05-06  Cash
8  TN78DF6589  2017-05-10  Complimant
мне нужен такой результат

Код: Выделить всё

dates        typeCash       typeCredit      typeCompliment
---------------------------------------------------------------
2017-05-01       2           1             0
2017-05-02       1           0             0
2017-05-05       0           0             1
2017-05-06       1           1             0
2017-05-10       0           0             1
Моя попытка

Код: Выделить всё

  $json="";

$created_date1="5-1-2017";
$created_date2="5-10-2017";

if(isset($created_date1))
{
$x=explode("-",$created_date1);
$created_date1=$x[1]."-".$x[0]."-".$x[2];
$created_date1 = strtotime($created_date1);
$created_date1 = date('Y-m-d',$created_date1);
}
if(isset($created_date2))
{
$y=explode("-",$created_date2);
$created_date2=$y[1]."-".$y[0]."-".$y[2];
$created_date2 = strtotime("$created_date2");
$created_date2 = date('Y-m-d',$created_date2);
}
$date2=$created_date2;
$i=0;
while($created_date10)
{
$trip_per_day="select
a.eid,a.name,
count(b.tid) as trips_per_day,
COUNT(IF(b.type_of_trip='Credit',1,null)) as credit_trips,
COUNT(IF(b.type_of_trip='Compliment',1,null)) as compliment_trips
b.dates
from third_table b
LEFT JOIN add_employees a ON b.emp_id=a.eid
where b.dates between '$created_date1' and '$created_date2'
group by b.tid";

$run_qry=mysql_query($trip_per_day);
$row = mysql_fetch_array($run_qry);
$name = $row['name'];
$trip_per_day = $row['trips_per_day'];
$cash_trips = $row['cash_trips'];
$credit_trips = $row['credit_trips'];
$compliment_trips = $row['compliment_trips'];

$arr[$i]["name"]=$name;
$arr[$i]["date"]=$created_date1;//particular data
$arr[$i]["trips_per_day"] = $trip_per_day;//for trip_per_day
$arr[$i]["cash_trips"] = $cash_trips;//for cash_trips
$arr[$i]["credit_trips"] = $credit_trips;//for credit_trips
$arr[$i]["compliment_trips"] = $compliment_trips;//for compliment_trips
}
$inc_qry="select '".$created_date1."' + INTERVAL 1 DAY";
$query=mysql_query($inc_qry);
while($val=mysql_fetch_array($query))
{
$created_date1=$val[0];
}
$i++;
}
$json['all_counts_reports']=$arr;
$json=json_encode($json);

$array = json_decode($json,true);
$array['all_counts_reports']=array_values($array['all_counts_reports']);
//var_export(json_encode($array));
echo $result = str_replace('', '', json_encode($array));
это даст неправильный вывод, а также непреодолимый цикл. Как получить подсчет дней за днем, используя промежутки между датами в MySQL. пожалуйста, направь меня.

Подробнее здесь: https://stackoverflow.com/questions/438 ... sing-mysql
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Php»