我有以下问题:
根据以下规则查找表A中的最高行:
表A
列:V_Date日期,类型int,H_Date日期
1)找到最高的V_Date
2)如果V_Dates相同,则找到具有最高优先级的行,其中优先级在表B中定义,列为Type int,Priority int
3)如果V_Date和Priority相同,找到具有最高H_Date的那个(那么它保证是唯一的)
优先级不明显,因此max(prio)返回多个值。
有人能帮助我吗?
非常感谢。
答案 0 :(得分:2)
使用ORDER BY并将结果限制为一行:
SELECT *
FROM TableA
JOIN TableB ON TableA.Type = TableB.Type
ORDER BY V_Date DESC, Priority DESC, H_DATE DESC
LIMIT 1
确切的语法可能因具体数据库而异。
LIMIT 1
。SELECT TOP(1)
。SELECT * FROM (subquery here) WHERE rownum = 1
。答案 1 :(得分:0)
听起来像是家庭作业(如果不是,请告诉我)。所以你会得到一般答案。更多细节可能需要您指定数据库类型。
JOIN
表格。将ORDER BY
语句与TOP
语句结合使用。