Самостоятельное объединение запросов T-SQL через таблицу дат - PullRequest
0 голосов
/ 11 мая 2011

Я пытаюсь написать запрос, который присоединяет таблицу к себе через таблицу дат. Таблица дат заполняется днем ​​в строке с датами более 200 лет (не спрашивайте, я не проектировал это). В нем есть столбец для даты и один для предыдущей рабочей даты (т. Е. Если в понедельник предыдущая дата будет в предыдущую пятницу).

В другой таблице назовем его «Цены» имеют столбец даты и идентификатор для определения типа цены, которая поступает один раз в день. Мне нужно объединить цены с самим собой через таблицу дат, чтобы каждый день, наряду с предыдущим днем, использовал столбец типа, чтобы определить, какие из них связаны друг с другом.

Todays Date | Todays Price | Previous Working Day Date | Previous Working Day Price | Price Type

Есть идеи?

Ответы [ 2 ]

1 голос
/ 11 мая 2011

Может быть так:

SELECT
  today.Date,
  today.Price,
  yesterday.Date,
  yesterday.Price,
  today.PriceType
FROM Price today
  INNER JOIN dates d ON today.Date = d.Date
  INNER JOIN Price yesterday
    ON d.YesterdayDate = yesterday.Date AND today.PriceType = yesterday.PriceType
1 голос
/ 11 мая 2011

Что-то вроде:

SELECT today.Date, today.Price, lwd.Date, lwd.Price, today.TypeId
FROM Price AS today
JOIN Date AS d
ON   d.Date = today.Date
JOIN Price AS lwd
ON   lwd.Date = d.PreviousWorkingDate
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...