2017-02-09 5 views
-1

私は従業員のID、名前の日付、時間を表示し、繰り返し従業員番号を示すテーブルを持っています。以下は私のSQLコードです。今私はカウント値の合計を取得したいが、私はサム(カウント(*))の値のように使用することはできないようだ、私は私はサブクエリを使用する必要があります知っているが、それでもそれを動作させる方法を取得しないでください。どの人がこれを解決するか考えていますか?sqlカウント値を合計する方法

select distinct a.employee_id,b.name,a.type,a.date,a.time,count(*) 
from deal_records a, staff_table b 
where a.employee_id = b.employee_id && a.date='2016-12-23' && b.name like "L%" 
group by a.employee_id ; 
+1

質問を編集し、サンプルデータと希望する結果を提供してください。 –

+2

最初のMySQLバージョンが起動される前でも冗長化された結合構文を使用しています。代わりに明示的なANSI結合を使用してください。あなたのクエリに関しては、それは間違っています。 'type'と' time'には何が含まれていると思われますか?おそらく 'employee_id'と' date'には複数の 'deal_record'があります(それ以外の場合はカウントする必要はありません)ので、値を取得するDBMSはどれですか?値を任意に選択します。付加的に 'DISTINCT'は余分なものです。なぜなら、列でグループ化されている(あなたのケースでは' employee_id'だけが)select節にあるからです。 –

答えて

2

group byを削除したことがありますか?

select count(*) 
from deal_records d join 
    staff_table s 
    on d.employee_id = s.employee_id 
where d.date = '2016-12-23' and 
     s.name like 'L%'; 
+0

単一テーブルの条件はWHERE句に記述する必要があります。 'ON'はテーブルに関する条件に合流する必要があります。 MySQLでは両方の形式が可能です。 – Barmar

+0

@Barmar。 。 。私はあなたが私にそれを落とさないと確信しています。私は審美的には異論はしませんが、内部結合の場合、onとwhereは同等です。 –

+0

私はupvoted、他の誰かが返信の – Barmar

関連する問題