У меня есть следующая проблема:
найдите самую высокую строку в таблице A согласно следующим правилам:
Таблица A
Столбцы: Дата V_Date, интервал Типа, Дата H_Date
1) найдите самый высокий V_Date
2) если V_Dates являются тем же, находят строку с самым высоким Приоритетом, где Приоритет определяется в Таблице B с интервалом столбцов Type, Приоритетным интервалом
3) если V_Date и Приоритет будут тем же, найдите тот с самым высоким H_Date (затем, то это, как гарантируют, будет уникально),
Приоритеты не отличны, таким образом, макс. (prio) возвращает больше чем одно значение.
Кто-либо может помочь мне?
Большое спасибо.
Похоже на домашнее задание (если это не так, скажите мне). Так вы получите общий ответ. Для получения дополнительных сведений может потребоваться указать тип базы данных.
ПРИСОЕДИНЯЙТЕСЬ
к таблицам. Используйте оператор ORDER BY
в сочетании с оператором TOP
.
Используйте ORDER BY и ограничьте результат одной строкой:
SELECT *
FROM TableA
JOIN TableB ON TableA.Type = TableB.Type
ORDER BY V_Date DESC, Priority DESC, H_DATE DESC
LIMIT 1
Точный синтаксис может отличаться в зависимости от конкретной базы данных.
LIMIT 1
, как указано выше. SELECT TOP (1)
. SELECT * FROM (здесь подзапрос) WHERE rownum = 1
.