1

このクエリを実行しようとすると:

select branch_no, max (avg_salary)
from (select allocatedto, avg (salary)
      from staff, worker
      where staff.staff_no = worker.staff_no
      group by allocatedto) 
      as branch_avg (branch_no, avg_salary);

次のエラーが表示されます。

Error: near "(": syntax error
4

3 に答える 3

1

SQLite では、サブクエリの AS 句は列名を割り当てることができません (そもそも必要ありません)。

(サブ) クエリの出力列の名前を変更するには、SELECT 句で AS を使用する必要があります。

SELECT branch_no,
       max(avg_salary) AS avg_salary
FROM (...);
于 2016-03-04T18:16:48.920 に答える
1
select my_alias1,my_alias2 from (select col1,col2,...) as A (my_alias1,my_alias2)

上記の構文は で有効ですSQL Server

派生テーブルの列に別名を付けるには、派生テーブル内で使用する必要がありASます。これを試して

SELECT Max (avg_salary)
FROM   (SELECT allocatedto  AS branch_no,
               Avg (salary) AS avg_salary
        FROM   staff
               INNER JOIN worker
                       ON staff.staff_no = worker.staff_no
        GROUP  BY allocatedto) AS branch_avg;

またINNER JOIN、古いスタイルのカンマ区切り結合の代わりに使用を開始します

于 2016-03-04T18:14:13.760 に答える
0

SQL Server のバージョンが 2008 R2 であると仮定し、

select branch_no, max (avg_salary)
from (select allocatedto, avg (salary)
      from staff, worker
      where staff.staff_no = worker.staff_no
      group by allocatedto) 
    as branch_avg (branch_no, avg_salary)
group by branch_no;
于 2016-03-04T18:18:06.230 に答える