0

我正在尝试为部门表中的每个部门获取一个最新Approved的风险评估(它是一bit列)。

我还需要Approved对所有部门进行所有非风险评估,但我认为我可能会将其作为单独的查询或合并两个结果集来完成。

这是我的架构的简化版本,它的价值。

部门到风险评估表图

4

2 回答 2

1

如果您有 SQL 2005 或更高版本,则可以使用 CTE 来实现此目的

with cte as (
   select row_number() over (partition by DeptId, order by Submitted desc) as row,
   id,
   DeptId,
   RiskAssessment,
   Submitted,
   Approved
   from RiskAssesment where approved = 1
)

select
   id,
   deptid,
   RiskAssessment,
   Submitted,
   Approved
   from cte where row = 1
于 2013-05-07T13:02:05.640 回答
0

要获得latest Approved任务,您需要将批准时间存储到列中,RiskAssessment然后您可以使用 Group by 和 max 来获得预期结果。

对于第二部分

所有部门的所有未批准的风险评估我认为不需要子查询会更容易。

Select DEPTID, id where Approved=0

如果这不是你的意思,我想我没有很好地理解你的问题。

于 2013-05-07T13:11:19.363 回答