2014-10-19 465 views
0

SQL的新手,并试图找到第二个最后一个优先级(整数)。 SQL下面保持返回最新优先级倒数第二个记录SQL查询

select priority_level 
from wers_assessment a 
where 
    a.client_id=rc.client_id and 
    assessment_id = (
    select max(assessment_id) 
    from wers_assessment aa 
    where aa.client_id = a.client_id and priority_level < (
     select max(assessment_id) 
     from wers_assessment aa 
     where aa.client_id = a.client_id 
    ) 
) 
+0

'priority_level <( select max(assessment_id)'''priority_level'与'assessment_id'的关系是什么? – 2014-10-19 01:00:19

+0

查询中的查询嗯。 – 2014-10-19 01:03:30

+0

我没有看到任何“rc。”的定义。那“aa。”? – russ 2014-10-19 01:59:12

回答

0

请发布一些数据!不能帮助很多与您所提供的..但抛开你想要做什么,要点是这个

(SELECT priority_level 
FROM wers_assessment a 
WHERE a.client_id=rc.client_id 
    AND assessment_id = 
    ( SELECT MAX(assessment_id) 
     FROM wers_assessment aa 
     WHERE aa.client_id = a.client_id 
    ) 
ORDER BY priority_level DESC 
LIMIT 2 
) 
ORDER BY priority_level ASC 
LIMIT 1 

注意这是使用UNION语法通过在单一做了双顺序选择