2014-01-28 2 views
0

У меня есть таблица продуктов и одна таблица цен. Регулярно обновляется цена. Теперь я хочу показать цену сегодня, и если она не была обновлена ​​сегодня, то она показывает предыдущую цену.Mysql Query для отображения результата, если мы вчера получаем данные вчера

Как мы можем выполнить это, используя один запрос?


В комплекте с комментариями OP в:

На самом деле у меня есть две таблицы
1) products, 2) product_price и

Мы ежедневно ввести цену продукта в product_price таблице как

+---------+-------+-------+ 
| Product | Price | Date | 
+---------+-------+-------+ 
| A  | 33k | 26Jan | 
| B  | 34.0k | 26Jan | 
| B  | 34.5k | 26Jan | 
| A  | 32k | 27Jan | 
| A  | 34k | 27Jan | 
| C  | 34.5 | 27Jan | 
+---------+-------+-------+ 

Выход Ожидаемый:

+---------+-------+-------+ 
| Product | Price | Date | 
+---------+-------+-------+ 
| A  | 32k | 27Jan | 
| B  | 34.0k | 26Jan | 
| C  | 34.5k | 27Jan | 
+---------+-------+-------+ 
+0

Пожалуйста, покажите структуру таблицы также. –

+0

Итак, вам просто нужна последняя цена. – Strawberry

+0

На самом деле у меня есть две таблицы 1) продукты 2) product_price, и мы ежедневно вводили цену продукта в таблице product_price, как продукт (s3) цена (34k) дата (27Jan); продукт (s3) цена (34.5k) дата (28Jan); продукт (s3) цена (34k) дата (29Jan). Теперь предположим, что сегодня 30, и это не вход в таблицу product_price , тогда нам нужно dispaly 34k, которая равна 29. – user3239664

ответ

0

Попробуйте это:

select 
    product, min(price) as price, date as dt 
from 
    product_prices 
where 
    -- use the following if your date field is of type date 
    date <= curdate() 
    -- use the following if date field is in string format (26Jan) 
    -- date <= date_format(curdate(), '%m%b') 
group by 
    product; 
+0

@ user3239664: нравится то, что ? –

+0

 Product Price Date A 1 26Jan B 1 26Jan A 2 27Jan C 3 27Jan Output A 2 B 1 C 3 
user3239664

+0

Не можете ли вы отредактировать сообщение в своем запросе? –

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