2017-09-04 49 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

相關問題