Я делаю отчет о продажах с помощью PHP. Дата и время транзакции указаны в столбце LastUpdateTime
с форматом: m-d-Y H:i:s
. Теперь я хочу сделать отчет за 1 неделю, поэтому мне нужна сумма TotalAmount всей транзакции за 1 день, поэтому я использую группу по DAY
из LastUpdateTime
. Вот мой код, но он не работает:GROUP BY day of Datetime SQL
<?php
include 'report/go.php'; //DB connect
$today =time();
$from_time = date('d-m-Y', strtotime('last Monday'));
$to_time = date('d-m-Y', strtotime('next Monday - 1 MIN'));
$sql = "SELECT
SUM(TotalAmount) AS TotalPerDay , LastUpdateTime, DATEPART(dd,LastUpdateTime)
FROM Tickets
WHERE LastUpdateTime BETWEEN '$from_time' and '$to_time'
GROUP BY DATEPART(dd,LastUpdateTime)
";
$stmt = sqlsrv_query($conn, $sql);
if($stmt === false)
{
die(print_r(sqlsrv_errors(), true));
}
while($row = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC))
{
$money = $row['TotalPerDay'];
$date = date_format($row['LastUpdateTime'], "d-m-Y");
echo $money." - ".$date."<br>";
}
?>
Возвращена ошибка:
Колонка «Tickets.LastUpdateTime» недопустим в списке выбора, поскольку он не содержится ни в статистической функции или Группового пунктом
Пожалуйста, помогите :) Спасибо большое :)
Поместите 'LastUpdateTime' в' Group By'? – Matt
Это либо должно быть в виде агрегатной функции, например. 'SUM/count/min/max' или в' group by' – Matt
Я просто хочу Group By DATE of LastUpdateTime. потому что я ищу общий доход каждый день. –