Попытка выбрать уникальные данные из таблицы, содержащей несколько записей для одного и того же идентификатора.
Я в основном пытаюсь получить данные security_name для всех идентификаторов безопасности, представленных в option_price_view.
Security_nameимеет несколько записей для одного идентификатора безопасности, последний для некоторых имеет тикер "ZZZZ" или ноль.Я хочу подготовить это так, чтобы, если есть только одна запись, возьмите ее, какой бы она ни была.Если их несколько, извлеките одно с самой поздней датой, и тикер не равен нулю, или <> "ZZZZ"
в таблице security_name есть следующие поля: Securityid, тикер, дата, описание эмитента
Я пробовал несколько вложенных выборок, чтобы попытаться отфильтровать "ZZZZ" или нулевые значения, но я не понимаю синтаксис для числа записей IF = 1, выберите его, иначе выберите следующую запись, упорядоченную по дате.
select * from security_name
where securityid in
(
select distinct securityid
from option_price_view
)
and ticker <> "ZZZZ"
and ticker is not null
Что здесь происходит, так это то, что любые записи в security_name, у которых нет нескольких записей, не будут заполняться.
ОБНОВЛЕНИЕ =================================================
Результат запроса
Результат таблицы Security_Name для этого идентификатора безопасности