2016-09-29 3 views
0

Я работаю на складе, связанных project.while поиск элемента запаса по конкретной даты, она показывает каждую запись пункт history.Like мои базы данных «детали» ниже,Получение последних обновленных данных за единицу в MySQL

details table

я сделал один поисковый запрос, но он показывает запись из истории, мой запрос:

select details.itemname, details.total from details 
inner join (select DISTINCT itemname, max(date) as MaxDate 
from details group by itemname) tm on details.itemname = tm.itemname 
and details.date <='2016-09-28' 

но результат должен прийти, как это:

enter image description here

+0

Этот запрос получает все от деталей, которые были подробно до сегодняшнего дня. Я еще не разработал лучший запрос, но тот, который находится в вашем внутреннем соединении, намного ближе к тому, что вы хотите, чем полный запрос. – CptMisery

ответ

0

Возможно, это возможно, что вы ищете?

select details.itemname, details.total 
from details 
order by details.date desc 
limit 1; 
+0

спасибо за ваше предложение. Но этот запрос показывает только последнюю запись элемента. Как и в случае с этим, он показывает только запись «Перо», которая равна 150. Но не показывает данные CFL и BULB. – saurabh

0

Решение проблемы.

select details.itemname, details.total from details 
    inner join 
    (select DISTINCT itemname, id, max(date) as MaxDate 
    from details GROUP by details.itemname) tm 
    on (details.itemname = tm.itemname and details.date = tm.MaxDate) 
    and details.date <='9/28/2016' 

Проблема была связана с зависимостью. Между Max() и GROUP BY.

Смежные вопросы