2017-02-09 205 views
-1

我有一個表顯示員工ID,姓名日期,時間和計數重複僱員人數。以下是我的sql代碼。現在我想獲得計數值的總和,但似乎我不能使用像sum(count(*))值,我知道我應該使用子查詢,但仍然不知道如何使它工作。任何人都有想法如何解決這個問題?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,其他人downvoted – Barmar