2011-12-23 21 views
0

私の問題を見ていただきありがとうございます。MySQL Join SUMクエリ

  • tblEmployee
  • tblEvents
  • tblPoints

tblEmployee

EMPLOYEE_ID
LAST_NAME 01
FIRST_NAME:
は今、私は3つのテーブルを持っています メール
チーム

tblEvents

Events_id
EVENT_DATE
EVENT_NAME
ポイント
アクティブ

tblPoints

ここで

Points_id
EMPLOYEE_ID
Events_id

は、私は、現在実行しているクエリです:

SELECT tblEmployee.First_Name, tblEmployee.Last_Name, tblEvents.Points 
FROM tblEvents INNER JOIN (tblEmployee INNER JOIN tblPoints 
ON tblEmployee.Employee_id = tblPoints.Employee_id) 
ON tblEvents.Events_id = tblPoints.Events_id; 

従業員ごとに、このクエリは、ポイントテーブル内のすべての行を戻しますが、私はそれが1行のみを戻す必要がありますポイント列はSUMです。私はこれを試したが、すべてのポイントを合計する1つの行で終わる。何かご意見は?

答えて

2

はあなたのような何かを試してみました:

SELECT tblEmployee.First_Name, tblEmployee.Last_Name, SUM(tblEvents.Points) AS Points 
FROM tblEvents INNER JOIN (tblEmployee INNER JOIN tblPoints 
ON tblEmployee.Employee_id = tblPoints.Employee_id) 
ON tblEvents.Events_id = tblPoints.Events_id 
GROUP BY tblEmployee.Employee_id; 
+0

ご協力いただきありがとうございます。 – engy0

0

は、この仕事をしていますか?

select tblEmployee.first_name, 
     tblEmployee.Last_Name 
     sum(tblEvents.Points) 
from tblEmployee 
    join tblPoints on tblPoints.employee_id = tblEmployee.employee_id 
group by tblEmployee.first_name, 
     tblEmployee.Last_Name 

他のDBがエラーをスローすると、MySQLはグループなしで喜んでグループ化します。

私が持っている質問はなぜtblEventsに参加しているのですか?あなたはそのテーブルからどんな情報を求めていますか?

+0

tblEventsには、それぞれに関連付けられたポイント値を持つイベントのリストが保持されます。 tblPointsは、employee_idとevent_idを使用して、従業員の名前、イベント名、およびそのテーブル内の従業員に割り当てられたポイントを取得します。 – engy0