2017-09-04 46 views
0

我有以下代码。 我需要做的是当我从数据库中获取记录时,我只需要我的下一个过程的最高记录。 我曾尝试使用LIMIT,TOP等,但与所有数据库不兼容。 在这种情况下,任何帮助表示赞赏。 下面是查询从查询结果中为所有数据库提取最高记录

SELECT a,b,c,d,COUNT(*) AS cnt_next 
FROM table 
WHERE emp_cd='ASDF1234' and a < '01/08/2017' 
GROUP BY a,b,c,d 
ORDER BY b 
DESC 
+0

没有的某种抽象级别的更多信息,你就把自己一个几乎不可能完成的任务。我怀疑你的当前查询在任何RDBMS中都是有效的! – Strawberry

+0

RDBMS口味之间有许多不同之处,它们都是由不同制造商以不同议程开发的不同步骤。编写适用于所有RDBMS的通用SQL代码几乎是不可能的。 –

回答

0

SQL Server 2012中使用 “OFFSET 1个ROWS FETCH NEXT 1行仅对”。不知道这是否会帮助,但值得一试!

+0

我目前使用2个数据库。这种方法只适用于一种 – prajakta

0

RDBMS之间有许多不同之处,所以对于一个与所有数据库兼容的查询来说是不可能的。 如果您使用的是Mysql和Postgresql,则此查询可以在这两个RDBMS上运行。

SELECT * 
FROM 
(SELECT a,b,c,d,COUNT(*) AS cnt_next 
FROM table 
WHERE emp_cd='ASDF1234' and a < '01/08/2017' 
GROUP BY a,b,c,d 
ORDER BY b DESC) data 
LIMIT 1 

其它RDBMS,你会发现在这个link

相关问题