2013-01-22 6 views
5

私は2つのテーブルから最大のIDを照会する必要があり、どちらか大きい方のIDを取る必要があります。私はsqlserverを使用しています。両方のテーブルから最大数を取得するSQL?

クエリ:

SELECT MAX(a.ID) 
FROM tableA a 

SELECT MAX(b.ID) 
FROM tableB b 

tableAの最大IDが20とtableBさの最大IDが30であれば、テーブル、クエリの両方のUNIONのみ30

がすることが可能です返す必要があります両方のクエリを単一のクエリに結合して最大IDを返しますか?

+0

SELECT MAX(CASE WHEN a.ID > b.ID THEN a.ID ELSE b.ID END) FROM tableA a CROSS JOIN tableB b 

デモをソートせずに次の2つの行、30の両方を期待していますか?または1行、30? – Meff

+0

いいえ..私は30だけ必要です – user1016403

答えて

6

これはあなたが言ったことに基づいて、UNION両方のテーブルと最大値を取得します。

SELECT max(ID) 
FROM 
(
    select max(ID) ID from tableA 
    UNION 
    select max(ID) ID from tableB 
) s 

または

SELECT max(ID) 
FROM 
(
    select ID from tableA 
    UNION 
    select ID from tableB 
) s 
3
SELECT MAX(id) 
FROM (SELECT ID FROM tableA 
     UNION 
     SELECT ID FROM tableB) AS D 
関連する問題