2014-01-31 3 views
1

Итак, у меня есть таблица холдингов, где каждый холдинг имеет столбец даты. напримерSQL получить последние записи из набора данных

id | holding_name | value | holding_date 
---------------------------------------------------- 
1 | iShares MSCI | 2032 | 2013-12-31 
2 | Vanguard Bonds | 5332 | 2013-12-31 
3 | iShares MSCI | 2241 | 2014-01-31 
4 | Vanguard Bonds | 6236 | 2014-01-31 

Если бы я хотел, чтобы выбрать только самые последние запасы я мог бы пойти

SELECT * FROM holdings WHERE holdings.holding_date = '2014-01-31' 

Но что, если я не знаю, что последняя дата 2014-01-31? Есть ли способ построить это в запросе?

+3

Этот вопрос, по-видимому, не соответствует теме, поскольку он не показывает никаких исследований. – Strawberry

+0

Я не уверен, как это делает его вне темы. Я признаю, что я мог бы углубиться в исследования, но я не знал, что искать. Он никогда не отклоняется от своей темы, но – harryg

+0

Итак, сколько можно провести [таблица холдинга] (http://en.wikipedia.org/wiki/Bag_of_holding)? –

ответ

6
SELECT * 
FROM holdings 
WHERE holding_date = (SELECT MAX(holding_date) from holdings) 
+0

Непонятно, является ли 'hold_date' поле' varchar' или 'datetime' здесь. Похоже, что «варчар» ... – crush

+3

Не имеет значения. В этом формате они сортируются одинаково в любом случае. – Barmar

+0

Правда, с первым годом. Почему бы не просто «ORDER BY hold_date DESC» и «LIMIT 1»? – crush

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