$query = "SELECT A.Date, B.Fee
FROM [Client] A JOIN [Price] B
ON A.SID = B.SID
WHERE A.Date BETWEEN '$from' AND '$to' AND A.ClientID = '$client'
ORDER BY A.Date";
Я использую вышеуказанный запрос для отображения платы за транзакции за период (как правило, ежемесячно), а там, где нет транзакции за день, она должна отображать плату за транзакцию за последний день, в то время как в этот день нет данных транзакции. Например, я хочу показать это:
2015-01-05 | 234,567
2015-01-06 | 123,456
2015-01-07 | 123,456 // this is taken from 0106 cause no transaction on Sat
2015-01-08 | 123,456 // this is taken from 0106 cause no transaction on Sun
2015-01-09 | 345,678
Хотя данные в базе данных:
2015-01-05 | 234,567
2015-01-06 | 123,456
2015-01-09 | 345,678
Я использую приведенный ниже код, чтобы отобразить данные, и в настоящее время делать трюк, я повторно запрашиваю данные с даты + 1 и дату + 2 и отображаю данные на фридее. Проблема в том, что она не будет делать это, когда будет праздник (и я не думаю, что это эффективно).
$stmt = $con->prepare($query);
$stmt->execute();
$rows = $stmt->fetchAll();
$num = count($rows);
foreach ($rows as $row) {
echo date('d-m-Y', strtotime($row['Date']));
echo number_format($row['Fee'], 0, ",", ".");
}
Я надеюсь на решение.
Хорошо, я понял это с помощью комментария выше, и здесь sqlfiddle:
http://sqlfiddle.com/#!3/2d6b8/1
Кредит отправляется @Turophile. Спасибо.