Как мне присоединиться к «фиксированному вектору» в SQL? - PullRequest
0 голосов
/ 17 декабря 2008

Под «фиксированным вектором» я подразумеваю статический список значений, например от 1 до 24.

Текущий запрос выглядит так (упрощенно)

SELECT Period, Profit FROM Projections

Но данные "редкие", поэтому для каждого периода не существует ни одной строки.

Какой запрос даст мне строку для периодов 1-24 каждый раз, с нулями (или NULL), где нет данных?

Я хотел бы сделать это только с помощью запроса, чтобы избежать путаницы клиентского кода.

Спасибо!

Ответы [ 2 ]

1 голос
/ 17 декабря 2008

Вы можете создать udf с именем udfRange (start int, count int) или что-то в этом роде и присоединиться к выходу функции слева.

Или что-то действительно быстрое и грязное, вы можете присоединиться к под-выбору, который выглядел как

SELECT DATA.Period, P.Profit
FROM (
SELECT 1 AS Period
UNION SELECT 2
...
UNION SELECT 24) AS DATA 
LEFT JOIN Projections P ON DATA.Period = P.Period
1 голос
/ 17 декабря 2008

Почему бы не создать таблицу поиска «Периоды» со значениями 1–24 (и любые другие столбцы, которые могут иметь отношение, например, описание периода или его имя), а затем выполнить внешнее левое соединение между таблицей поиска Периоды и таблица ваших прогнозов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...