SQL, как отображать время, когда его нет в ключе? - PullRequest
0 голосов
/ 12 мая 2019

ERD и код упражнения приведены ниже. Проблемы, с которыми я сталкиваюсь:

  1. Я не знаю, как показать "если акция не была продана, показать NULL для даты последней торговли. Я пытался nvl(transaction_time, 'NULL'), но я не думаю, что это правильно.

  2. В упражнении запрашивается дата и время последней торговли акцией, но внешний ключ "transaction_time" показывает только дату. Как бы я получить доступ к времени в коде SQL? Должен ли я сделать время по умолчанию, как SYSDATE?

Я думаю, у меня все остальное правильно, о чем спрашивает вопрос, кроме этих двух вещей. Хотя я могу ошибаться. Заранее спасибо

Для каждой акции, котирующейся на каждой фондовой бирже, отобразите название биржи, символ акции и дату и время, когда эта акция была в последний раз продана. Сортировать вывод по названию биржи, биржевому символу. Если акция не была продана, покажите NULL для даты последней торговли.

SELECT
    stock_exchange.stock_ex_id,    
    stock_exchange.name stock_exchange_name,
    stock_exchange.symbol,
    trade.transaction_time    
FROM stock_exchange
    JOIN trade
        ON trade.stock_ex_id = stock_exchange.stock_ex_id
ORDER BY stock_exchange.name, stock_exchange.symbol;

ERD

1 Ответ

1 голос
/ 12 мая 2019

Используйте внешнее объединение, чтобы найти акции, которые не были проданы. Тип данных Oracle DATE включает в себя элемент времени, вам просто нужно изменить формат даты, чтобы отобразить элемент времени:

SELECT stock_exchange.stock_ex_id, 
       stock_exchange.name stock_exchange_name,
       stock_exchange.symbol,
       to_char(max(trade.transaction_time), 'yyyy-mm-dd hh24:mi:ss')  as last_traded_time
FROM stock_exchange 
LEFT JOIN trade
     ON trade.stock_ex_id = stock_exchange.stock_ex_id
group by stock_exchange.stock_ex_id, 
       stock_exchange.name,
       stock_exchange.symbol
ORDER BY stock_exchange.name, stock_exchange.symbol;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...