2013-07-06 81 views
1

我需要一個小小的SQL查詢幫助。簡單的SQL查詢選擇最大值

我有兩個表格:tbltranstbltrans_temp。我想選擇tbltrans_temp max(tbltrans_temp.transid)的最大值。

如果tbltrans_temp爲空且返回空值,則應取最大值tbltrans.transid

如果兩個表是空的,它應該只是返回0

我嘗試以下,但沒有得到預期的結果。

select ifnull(ifnull(max(t1.transid), max(t2.transid)), 0) 
from tbltrans_temp t1 
left join tbltrans as t2 
+2

這是SQLServer的或SQLite的? –

+1

@MarkBannister - 我會猜SQLite,因爲SQL Server不支持'IFNULL'。但是,兩者都應該支持'COALESCE'。 – sgeddes

回答

1

這個工程使用COALESCE

select coalesce(maxtemptrans, maxtrans, 0) 
from (select max(transid) maxtemptrans from tbltrans_temp) t, 
    (select max(transid) maxtrans from tbltrans) t2 
0

嘗試:

select coalesce((select max(transid) from tbltrans_temp), 
       (select max(transid) from tbltrans), 
       0)