Я пытаюсь обновить таблицу (Yahoostockdata)
с информацией, извлеченной из другой таблицы (incomestatement
), в зависимости от датыОбновления запрос: подзапрос возвращает более 1 значение
Yahoostockdata
содержит Yahoo цены за день и я. d хотел бы добавить количество акций за дату в зависимости от самой актуальной информации, доступной в incomestatement
за эту конкретную дату.
При выполнении запроса (без обновления) я получаю все номера, которые я хочу. UPDATE
заявление, я получаю сообщение об ошибке: suquery возвращено более чем 1 значение.
Msg 512, Level 16, State 1, Line 1 Подзапрос возвратил более 1 значения. Это недопустимо, когда подзапрос следует =,! =, <, < =,>,> = или когда подзапрос используется как выражение. Заявление было прекращено.
Может ли кто-нибудь помочь мне решить эту проблему? Я уже посмотрел на связанные вопросы, но не смог найти ответа. Заранее спасибо. Ниже код я использую:
Update YahooStockData
Set NumberOfShares = (Select [Weighted average shares outstanding (Diluted)]
from (Select *,ROW_NUMBER() over (partition by derived_1.MorningstarTicker,
derived_1.[date] order by derived_1.AsOfDate desc) as RN
from (Select Yahoostockdata.YahooTicker, IncomeStatement.MorningstarTicker,
yahoostockdata.[Date], AsOfDate,
Incomestatement.[Weighted average shares outstanding (Diluted)]
from IncomeStatement INNER JOIN
YahooStockData ON IncomeStatement.MorningstarTicker = YahooStockData.MorningstarTicker
Where YahooStockData.[Date] >= AsOfDate) as derived_1) as derived_2
Where RN = 1)
Есть ли что-то вы не понимаете, о «подзапрос возвращает более чем на 1 значение»? Подзапрос возвращает несколько строк. Вы можете наивно исправить это, используя 'top 1' в' select' или используя функцию агрегации, такую как 'min()' или 'max()'. Однако вам может потребоваться некоторый контроль над тем, какое значение действительно выбрано. –
Гордон, спасибо за ваш быстрый ответ. Top 1 и т. д., действительно, не решит его. В основном запрос дает мне точную копию всех строк, которые должны быть вставлены в таблицу yahoostockdata. Я был бы признателен за любые идеи или хорошие практики, как я могу это решить. – Xivan