简体   繁体   English

简单的SQL查询以选择一个最大值

[英]Simple SQL query to select a max

I need a small help with a SQL query. 我需要有关SQL查询的小帮助。

I have two tables: tbltrans and tbltrans_temp . 我有两个表: tbltranstbltrans_temp I want to select the maximum of tbltrans_temp max(tbltrans_temp.transid) . 我想选择最大的tbltrans_temp max(tbltrans_temp.transid)

If tbltrans_temp is empty and it returns null, it should then take the max of tbltrans.transid . 如果tbltrans_temp为空并且返回null,则应采用tbltrans.transid的最大值。

If both tables are empty, it should just return 0. 如果两个表都为空,则应仅返回0。

I tried the following but didn't get the result expected. 我尝试了以下操作,但未获得预期的结果。

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

This works using COALESCE : 这可以使用COALESCE

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

Try: 尝试:

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

You were close -- just remove the join: 您很接近-只需删除联接即可:

select ifnull(ifnull(max(t1.transid), max(t2.transid)),0)  
from tbltrans_temp t1, tbltrans t2

http://sqlfiddle.com/#!5/2897f/1 http://sqlfiddle.com/#!5/2897f/1

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM