0

Oracleのテーブルから列の値と同じ列数が必要です。

以下はクエリです。

select username,
       count(username) 
  from ind_emp_leaves 
 where  status != 'Approved' 
   and  (leavefromdate BETWEEN to_date('08-09-2013','dd/MM/yyyy') 
                           AND to_date('11-09-2013','dd/MM/yyyy')) OR
        (LEAVETODATE  BETWEEN to_date('08-09-2013','dd/MM/yyyy') 
                          AND to_date('11-09-2013','dd/MM/yyyy')) 

上記のクエリはエラーを表示しています:

SQL エラー: ORA-00937: 単一グループのグループ関数ではありません

ユーザー名フィールドがないとカウント値が表示されますが、ユーザー名値とユーザー名カウントの両方が必要です。

4

3 に答える 3

1

ユーザーごとのカウントが必要であると仮定すると、これは正しい結果を与えるはずです:

select username, count(*) from ind_emp_leaves 
where  (status != 'Approved') 
  and  ((leavefromdate BETWEEN to_date('08-09-2013','dd/MM/yyyy') 
     AND to_date('11-09-2013','dd/MM/yyyy')) 
  OR (LEAVETODATE  BETWEEN to_date('08-09-2013','dd/MM/yyyy') 
     AND to_date('11-09-2013','dd/MM/yyyy')))
group by username

leavedate の部分に括弧を追加したことに注意してください。「ステータス != 'Approved'」の部分を最初の間隔だけでなく、両方の間隔でチェックする必要があると想定しています。

于 2013-09-06T06:29:18.380 に答える