Как выбрать максимальную дату из двух полей?
если очень хочется с max, то можно сделать так select max(d) from (select f1 as d from x union select f2 from x) as t . Если просто хочется решить, то вы же можете просто сравнить два этих поля в запросе с помощью case или if
5 мая 2020 в 21:15
2 ответа 2
Сортировка: Сброс на вариант по умолчанию
MAX() работает с наборами записей, тогда как Вам нужно работать с набором скалярных значений в рамках одной записи. Для этого существует функция GREATEST():
SELECT GREATEST(date1, date2)
Отслеживать
ответ дан 6 мая 2020 в 4:44
31.1k 3 3 золотых знака 20 20 серебряных знаков 40 40 бронзовых знаков
SELECT id, date1, date2, CASE WHEN date1 >= date2 THEN date1 ELSE date2 END AS max_date FROM table
вот что мне было нужно
SELECT id, date1, date2, IF(date1 >= date2, date1, date2) AS max_date FROM table
называется — редко используемые конструкции языка 🙂
Отслеживать
32.2k 15 15 золотых знаков 61 61 серебряный знак 93 93 бронзовых знака
ответ дан 5 мая 2020 в 21:27
25 4 4 бронзовых знака
да, можете еще укоротить, используя IF вместо CASE
5 мая 2020 в 21:29
называется — редко используемые конструкции языка Нет, это называется — незнание имеющихся средств языка.
6 мая 2020 в 4:46
-
Важное на Мете
Похожие
Подписаться на ленту
Лента вопроса
Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.
Дизайн сайта / логотип © 2023 Stack Exchange Inc; пользовательские материалы лицензированы в соответствии с CC BY-SA . rev 2023.11.15.1019
Нажимая «Принять все файлы cookie» вы соглашаетесь, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой в отношении файлов cookie.
Выбрать максимальную дату
Есть таблица с тремя полями:
[id] — numeric
[ItemName] — varchar
[Date] — datetime.
Пример нескольких строк:
1. Стол 20.01.1998 00.00.00
2. Кресло 21.03.2001 00.00.00
3. Стол 23.02.1997 00.00.00
4. Табурет 25.11.2010 00.00.00
5. Табурет 27.11.2010 00.00.00
Как правильно выбрать из этой таблицы [ItemName] такие, которые имеют максимальную дату?
Пример результата запроса:
1. Стол 20.01.1998 00.00.00
2. Кресло 21.03.2001 00.00.00
5. Табурет 27.11.2010 00.00.00
Сам спросил, сам ответил:
1 2 3 4 5 6
SELECT * FROM Table_1 JOIN (SELECT ItemName, MAX(DATE) AS MDate FROM Table_1 GROUP BY ItemName) AS TempTable ON TempTable.MDate=Table_1.Date AND TempTable.ItemName = Table_1.ItemName ORDER BY ID
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:
Данные за Максимальную дату
Запрос select distinct p.t,t.kk,t.rt,t.date from tab t join ( select 1 t, 1 d1.
Как оставить максимальную дату из группировки
Здравствуйте. Подскажите как отобрать из исходной таблицы(3 колонки: FIO, Model, Data) данные.
Выбрать наименьшую дату из дат рождения
Есть таблица с базой клиентов, в которой есть столбец дата рождения формата date, надо выбрать.
Получить для каждого элемента максимальную дату и цену, соответствующую этой дате
Нужен такой хитрейший запрос: Вот есть скажем таблица: Element DDoc Price 1 01.01.01 .
1113 / 758 / 183
Регистрация: 27.11.2009
Сообщений: 2,264
1 2 3
SELECT TOP(1) WITH TIES * FROM [Table_1] ORDER BY ROW_NUMBER()OVER(PARTITION BY [ItemName] ORDER BY [Date] DESC);
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
Помогаю со студенческими работами здесь
Выбрать значения времени, которые ещё не выбраны на нужную дату
Вот такая заморока меня посетила. В таблице Т1 есть поля Дата и Время. Время в виде: 10:00.
Вывести среднюю и максимальную зарплату, и имя работника, получившего максимальную
Таблица сосотоит из трех столбцов: month, name и money. Надо вывести среднею зарплату.
Как выбрать максимальную дату в множества лицевых
Всем привет. Не могу сообразить, как выбрать максимальную дату начисления для каждого лицевого по.
Запрос на максимальную дату
Как правильно вытащить максимальную дату для каждого LOAN_ID. У меня есть таблица: .
Как выбрать месяц из даты sql
Техника извлечения месяца из даты не сильно отличается от получения года. Я отвечал на подобный вопрос вот тут. Также используется функция EXTRACT . Только вместо YEAR мы пишем MONTH :
SELECT EXTRACT(MONTH FROM TIMESTAMP '2022-08-26 12:24:56');
Как выбрать максимальную дату в sql
Помогите пожалуйста с куском запроса. В запросе нужно отсечь строки с повторами документа и номера, где дата не максимальная.
Таблица имеет вид:
ссылка_на_документ / дата / стоимость / номенклатура
док 1 —— дата1 —— стоимость —- номенклатура1
док 1 —— дата2 —— стоимость —- номенклатура1
док 1 —— дата3 —— стоимость —- номенклатура2
док 1 —— дата1 —— стоимость —- номенклатура2
док 2 —— дата1 —— стоимость —- номенклатура1
док 2 —— дата2 —— стоимость —- номенклатура1
а должно получиться:
док 1 —— дата1 —— стоимость —- номенклатура1
док 1 —— дата3 —— стоимость —- номенклатура2
док 2 —— дата1 —— стоимость —- номенклатура1
т.е. какая-то ОДНА дата и ОДНА стоимость соответственно.
реально в таблице данные по стоимости номенклатуры с учетом разных цен из регистра Цены — т.е. попали дублирующиеся строчки с разными датами и ценами.
>т.е. какая-то ОДНА дата и ОДНА стоимость соответственно.
для каждой номенклатуры в документе
Бьюсь над этим второй день. Что делалось 🙂
ВЫБРАТЬ РАЗЛИЧНЫЕ
ЗаказНарядТовары.Ссылка КАК Ссылка,
ЦеныСрезПоследних.Цена * ЗаказНарядТовары.Количество КАК СебестоимостьШтуки1,
ЗаказНарядТовары.Номенклатура,
ЦеныСрезПоследних.Период
ПОМЕСТИТЬ Табличка
ИЗ
Документ.ЗаказНаряд.Товары КАК ЗаказНарядТовары
ПОЛНОЕ СОЕДИНЕНИЕ РегистрСведений.Цены.СрезПоследних(, ТипЦен В (&ЦенаЗакупки)) КАК ЦеныСрезПоследних
ПО ЗаказНарядТовары.Номенклатура = ЦеныСрезПоследних.Номенклатура
И ЗаказНарядТовары.Ссылка.Дата >= ЦеныСрезПоследних.Период
ГДЕ
ЗаказНарядТовары.Ссылка.Дата МЕЖДУ &Дата1 И &Дата2
И ЗаказНарядТовары.Количество <> 0
И ЦеныСрезПоследних.Цена <> 0
СГРУППИРОВАТЬ ПО
ЦеныСрезПоследних.Номенклатура,
ЗаказНарядТовары.Ссылка,
ЦеныСрезПоследних.Цена * ЗаказНарядТовары.Количество,
ЗаказНарядТовары.Номенклатура,
ЦеныСрезПоследних.Период
После этого получаю таблицу как описала выше. Делаю в консоли запросов, чтобы результат видеть.
