1

同じ論理列を共有する、構造の異なる 3 つのテーブルがあります: price. 3 つのテーブルすべてのすべてのレコードから最大の価格を見つけたいと考えています。私は次のようなことを試みています:

SELECT MAX(price) FROM (

SELECT MAX(price) FROM pc
UNION
SELECT MAX(price) FROM printer
UNION
SELECT MAX(price) FROM laptop

);

しかし、構文エラーが発生します: Incorrect syntax near ';'.. 何が間違っていて、どのように見えるべきですか? これは、特定の RDBMS ではなく、SQL 標準と互換性がある必要があります。

4

2 に答える 2

3

サブクエリのエイリアスを指定する必要があります。

SELECT MAX(price) max_price
FROM 
(
    SELECT price FROM pc
    UNION ALL
    SELECT price FROM printer
    UNION ALL
    SELECT price FROM laptop
) subquery

サブクエリ内で最高価格を取得する必要はありません。

于 2013-05-12T10:57:34.130 に答える
2

このSQLを試してください。

SELECT MAX(price) FROM (

SELECT MAX(price) as price FROM pc
UNION
SELECT MAX(price) as price FROM printer
UNION
SELECT MAX(price) as price FROM laptop

) t;
于 2013-05-12T11:07:57.470 に答える