T-SQL查询通过日期表自联接

时间:2011-05-11 09:27:33

标签: sql sql-server-2005 tsql

我正在尝试编写一个通过日期表将表连接到自身的查询。日期表中每行填充一天,日期超过200年(不要问我没有设计它)。它有一个日期列和一个上一个工作日期的列(即如果它是星期一,则上一个星期五将是上一个星期五)。

另一个表格让我们称之为价格有一个日期列和一个ID来确定每天一次的价格类型。我需要通过日期表将价格与自己联系起来,以便每天使用类型列来确定哪一个属于彼此。

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

任何想法?

2 个答案:

答案 0 :(得分:1)

类似的东西:

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

答案 1 :(得分:1)

也许是这样的:

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