2016-08-17 4 views
0

У меня есть подготовленный оператор, который захватывает аренду в хранилище и помещает их в список, чтобы отслеживать его в конце, когда они появятся. Проблема, с которой я столкнулась, заключается в том, что когда оператор выводит список, если более одного человека имеет одинаковое количество дней до их появления, в списке отображается только один из этих арендаторов. У меня это моя подготовленное заявление:Подготовленный отчет не получает все результаты

SELECT rentals.rental_startdate, 
     rentals.rental_renewdate, 
     rentals.rental_duedate, 
     rentals.rental_latedate, 
     rentals.rental_status, 
     rentals.rental_balance, 
     units.unit_id, 
     units.unit_number, 
     units.unit_status, 
     users.user_id, 
     users.user_fname, 
     users.user_lname, 
     @var := DATEDIFF(rentals.rental_renewdate,CURRENT_DATE) AS days 
    FROM rentals 
INNER JOIN units ON units.unit_id = rentals.unit_id 
INNER JOIN users ON users.user_id = rentals.user_id 
WHERE rentals.rental_status=? 
GROUP BY rentals.rental_renewdate HAVING days>=0 AND days<=? 
ORDER BY rentals.rental_renewdate ASC 

Проблема, кажется, приходит из HAVING days>=0 AND days<=?. Дни равны периоду уведомления, который определяется в переменной как 5 дней. Когда я принимаю это, я вижу всех, кого мы ожидаем, если их аренда будет выплачена через 5 дней или 10, которые мы действительно не хотим, но она устраняет проблему только одного человека, который будет назначен через 3 дня, есть действительно 2. Неужели что-то выглядит неуместным, что может вызвать эту проблему? Я использую while($select -> fetch()) { для выбора строк.

+0

вы запустите запрос отдельно на мониторе тузд, чтобы увидеть, что результаты? Может быть, выборка работает отлично, а сам запрос - «потерять» записи из-за логической ошибки. –

+0

. Я думаю, что дни - это тип символа, поэтому вы получаете сравнение строк. – Jens

+0

@MarcB. Я сделал, у меня есть те же записи, что Я вижу на веб-сайте, что неверно. –

ответ

1

Вам нужно добавить данные имени в предложение GROUP BY.

GROUP BY users.user_fname, users.user_lname, rentals.rental_renewdate

Если сделать трюк

+0

что сделал, спасибо! –