Выборка данных из таблицы по дате изменения?

Ссылка скопирована
1 ответ

Есть таблица с полями:
ID, Code, IDStatus, DateExport
ID - Идентификатор записи
Code - Артирул товара (Значение может повторяться)
IDStatus - Этап выполнения этого расчета
DateExport - При установке определенного статуса (в моем случае статус Экспортирован (IDStatus=10)), поле заполняется текущей датой и временем.

Нужно получить записи, где дата DateExport наиболее свежая в рамках каждого Code.
Пример:
Иходная таблица:

ID	Code	IDStatus	DateExport 553	ФР-000123	10	10.12.2022 556	ФР-000321	10	20.11.2022 559	ФР-000231	10	21.11.2022 562	ФР-000123	10	02.12.2022 565	ФР-000321	10	25.11.2022 568	ФР-000123	10	03.12.2022 571	ФР-000231	10	20.11.2022 574	ФР-000123	10	05.12.2022

Результат:

ID	Code	IDStatus	DateExport 553	ФР-000123	10	10.12.2022 565	ФР-000321	10	25.11.2022 559	ФР-000231	10	21.11.2022

Дополнительно:

Дык что вы попробовали и что не получилось?

  • Решение зависит от конкретной СУБД. А в некоторых СУБД - даже от точной версии.

    Причём кто-то эту информацию указать не удосужился.

  • SELECT Code, Max(DateExport)
    FROM Р_Товары
    WHERE IDStatus=10
    GROUP BY Code;
    Сейчас пробую так, но из этого не получается получить ID этой записи
    СУБД - Access
  • dimain_com, а база какая?
  • Дмитрий, база MS Access
  • dimain_com, ух-е. я вообще не в курсах что там можно.
  • В теории работает этот запрос:
    SELECT *, (SELECT TOP 1 ID FROM Р_Товары WHERE Code= T.Code AND DateExport= T.Max_DateExport)
    (SELECT Code, Max(DateExport) AS [Max_DateExport],
    FROM Р_Товары
    WHERE [IDStatus]=10
    GROUP BY Code) AS T

    Но база при этом вылетает...

  • Ответы:

    груп бай коде
    ордер бай дэйт деск

    • При таком решении нельзя вывести ID записи у которой самая свежая дата экспорта
    • dimain_com,

      SELECT Code, Max(DateExport)
      Сейчас пробую так, но из этого не получается получить ID этой записи

      Не понял, а что мешает добавить id к полям вывода???
      SELECT ID, Code, Max(DateExport)...

    • ThunderCat,
      Такая ошибка:

      Выборка данных из таблицы по дате изменения?

      Или в MS Access нельзя будет выполнить такой запрос?

    Нужно решить такую задачу?

    Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.

    Заказать помощь
    Лучший ответ
    1
    Виктор Sys Ответ

    Для выборки данных из таблицы по дате изменения вам следует использовать SQL запрос с условием WHERE, указывающим на столбец с датой изменения. Вот пример такого запроса для языка программирования PHP:

    connect_error) {
        die("Ошибка подключения: " . $conn->connect_error);
    }
     
    // SQL запрос для выборки данных по дате изменения
    $date = "2022-01-01"; // Пример даты
     
    $sql = "SELECT * FROM название_таблицы WHERE дата_изменения = '$date'";
    $result = $conn->query($sql);
     
    if ($result->num_rows > 0) {
        // Вывод данных
        while($row = $result->fetch_assoc()) {
            echo "ID: " . $row["id"]. " - Имя: " . $row["имя"]. " - Дата изменения: " . $row["дата_изменения"]. "<br>";
        }
    } else {
        echo "Нет результатов";
    }
     
    $conn-&gt;close();
    ?&gt;

    В данном примере мы устанавливаем соединение с базой данных, выполняем SQL запрос с условием WHERE, где указываем столбец с датой изменения и значение этой даты. После чего выводим результаты запроса, если они есть. Не забудьте заменить "имя_пользователя", "пароль", "название_базы_данных", "название_таблицы", "дата_изменения" на соответствующие значения из вашей базы данных.

    Другие ответы (0)

    Пока нет других ответов. Будьте первым, кто поможет автору.

    Ответить на вопрос

    комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *

    Вам также может быть интересно