Справка по запросу - объединение двух таблиц с подмножеством на основе значений столбца - PullRequest
2 голосов
/ 13 июля 2011

Допустим, у меня есть две таблицы как таковые:

People

Id   Name       FirstDate LastDate
--   --------   --------- --------
A1   Bob        1/1/2007  5/6/2007
A2   Joe        1/4/2008  9/1/2008
..   ..         ...       ...

PiesBaked

Name        Date       Value
--------    ----       -----
Bob         1/1/2007    7
Bob         1/2/2007    9
..          ...        ...
Joe         ...        ...

Как создать представление, которое подставляет PiesBaked для первой / последней даты для имени

Result

Id   Name    Date      Value
--   ----    ----      -----
A1   Bob     1/1/2007   7
A1   Bob     1/2/2007   9
..    ..     ...        ...
A1   Bob     5/6/2007   ...
..   ...     ...        ...

Ответы [ 2 ]

3 голосов
/ 13 июля 2011
select p.id, p.name, pb.Date, pb.value
  from people p
 inner join piesBaked pb 
         on pb.name = p.name 
        and pb.date between p.firstDate and p.lastDate
 order by p.id, pb.Date
3 голосов
/ 13 июля 2011

Попробуйте это:

SELECT a.Id, a.Name, b.Date, b.Value
  FROM People a INNER JOIN PiesBaked b
    ON a.Name = b.Name
   AND b.Date BETWEEN a.FirstDate AND a.LastDate
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...