SQL一对多查询

时间:2016-03-09 08:21:16

标签: sql-server tsql sql-server-2012

我在尝试构建将执行以下操作的查询时遇到问题:

  • 单亲家长会有多个子记录
  • 需要根据返回的数量获取子记录的状态。即3个状态级别可用1,2& 3.如果返回的所有子记录都是1,那么我们需要返回1.但是,如果有更多的2或3,那么我们需要返回2或3。
  • 我们只需要查看最近1小时的数据

表1的表结构

ID int
parent_name nvarchar(255)

表2的表结构

ID int
parent_id int
status int
dte datetime

1 个答案:

答案 0 :(得分:1)

这样的东西? (我还没有测试过它)

SELECT MAX(c.status) FROM parent p 
INNER JOIN child c ON p.ID = c.parent_id 
WHERE c.dte > DATEADD(HOUR, -1, GETDATE())