Есть таблица: Дата, Количество, Сумма
Как вывести только последние записи на общее количество= $sum_count не прибегая к циклам
т.е. что то вроде:
SELECT `date`, `count`, `sum` FROM `table` WHERE sum(`count`)<=$sum_count ORDER BY `date` DESC
или
SELECT `date`, `count`, `sum` FROM `table` ORDER BY `date` DESC LIMIT sum(`count`)<=$sum_count
даже бы если такая конструкция и работала - она вывела бы на одну запись меньше, если sum(`count`)!=$sum_count
или все таки я обязан циклом
$count=0;
while ($count<=$sum_count) {
$count+=$row['count'];
//что-то делать
}
Исходник таблицы
CREATE TABLE IF NOT EXISTS `table` (
`date` date NOT NULL,
`count` int(11) NOT NULL,
`sum` int(11) NOT NULL,
`id` int(11) NOT NULL AUTO_INCREMENT,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=4 ;
INSERT INTO `table` (`date`, `count`, `sum`, `id`) VALUES
('2000-01-01', 10, 10, 1),
('2001-01-01', 10, 10, 2),
('2002-01-01', 10, 10, 3);