我有以下问题:
根据以下规则找到表 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) 返回多个值。
有谁能够帮我?
非常感谢。
我有以下问题:
根据以下规则找到表 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) 返回多个值。
有谁能够帮我?
非常感谢。
使用 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.听起来像家庭作业(如果不是,请告诉我)。所以你会得到一个普遍的答案。更多细节可能需要您指定 db 类型。
JOIN桌子。将ORDER BY语句与语句结合使用TOP。