Если равно , то есть вероятность, что вы добавите два с одной и той же датой, вам, вероятно, потребуется:
SELECT balance FROM my_table ORDER BY date_added DESC,id DESC LIMIT 1;
(обратите внимание на «нисходящее» предложение в обоих полях).
Тем не менее, вам нужно будет принять во внимание то, что вы хотите, чтобы произошло, когда кто-то добавляет корректирующую запись от 2 nd февраля, которой присваивается дата 31 st января убедитесь, что январь завершен. У него будет ID больше, чем у 1 ст февраля.
Как правило, системы учета просто работают на дату. Возможно, если бы вы сказали нам , почему порядок важен, мы могли бы сделать другие предложения.
В ответ на ваш комментарий:
Мне бы очень хотелось услышать любые другие идеи или советы, которые вы могли бы получить, даже если они не по теме, так как я не знаю моделей баз данных бухгалтерского типа.
Я бы дал несколько советов - это все, о чем я мог подумать сразу, я обычно излагал гораздо больше «советов» с еще меньшим воодушевлением :-) Первые два, больше связанные с базой данных, чем связанные с бухгалтерским учетом, являются:
Во-первых, сделайте все в третьей нормальной форме и вернитесь, только если у вас есть проблемы с производительностью. Это избавит вас от лишних хлопот с дублирующимися данными, которые могут выйти из строя. Даже если вы вернетесь, используйте триггеры и другие возможности СУБД, чтобы гарантировать, что данные не выходят из строя.
Например, если вы хотите ускорить поиск по столбцу last_name, вы можете создать столбец upper_last_name (проиндексированный), а затем использовать его для поиска записей, соответствующих вашему поисковому термину в верхнем регистре. Это почти всегда будет быстрее, чем функция для каждой строки upper(last_name)
. Вы можете использовать триггер вставки / обновления, чтобы гарантировать, что upper_last_name всегда задан правильно, и это требует затрат только при изменении имени, а не при каждом поиске.
Во-вторых, не дублируйте данные даже между таблицами (например, вашей текущей схемой), если только вы не можете использовать те же приемы триггерного типа, чтобы гарантировать, что данные не выйдут из строя. Что будет делать ваш клиент, когда вы отправите ему счет-фактуру, если итоговый баланс не соответствует стартовому балансу плюс покупки? Это не сделает вашу компанию выглядеть очень профессионально: -)
В-третьих (и это больше связано с учетом), вам обычно не нужно беспокоиться о количестве транзакций при расчете сальдо на лету. Это связано с тем, что системы учета обычно имеют функцию пролонгации на конец года, которая сбрасывает начальные сальдо.
Так что обычно вам никогда не приходится обрабатывать данные более чем за год, которые, если вы не являетесь правительством США или Microsoft, не так уж обременительны.