简体   繁体   English

查询帮助 - 根据列值将两个表与子集连接起来

[英]Query help - joining two tables with subset based on column values

Lets say I have two tables as such:可以说我有两个这样的表:

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         ...        ...

How can I construct a view that subsets PiesBaked to First/Last Date for a Name如何构建一个将 PiesBaked 子集为名称的第一个/最后一个日期的视图

Result

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

Try this:尝试这个:

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
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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM