過去6週間に評価を行ったEmployeesデータをすべて選択してクエリを編集しました。論理的には、2週間で評価を行った場合、各従業員は2回は必要ですが、このクエリでは1つのレコードが表示されます。Mysql JOINを使用して過去6週間のデータを取得
select
AssessmentEmployee.
EmployeeName,
AVG(AssessmentListing.AssessmentScore),
DATE_FORMAT((STR_TO_DATE(`AssessmentSubmittedDatetime`, '%d-%b-%Y %I:%i %p')) , '%Y-%m-%v') as _month
from AssessmentEmployee
LEFT JOIN AssessmentListing
ON AssessmentEmployee.AssessmentID=AssessmentListing.AssessmentID
WHERE (STR_TO_DATE(`AssessmentSubmittedDatetime`, '%d-%b-%Y %I:%i %p') >= DATE_FORMAT(NOW() - INTERVAL 6 Week, '%Y'))
group by AssessmentEmployee.EmployeeName
私は次の表を使用しています。
AssessmentEmployee
ID
AssessmentID
EmployeeName
他のテーブルには、私はスコア/ラストセックス週間で行わ評価及びそれらの平均スコアを持つ従業員を取得したい
ID
AssessmentID
AssessmentSubmittedDateTime
AssessmentScore
をAssessmentListingています。彼らは二回それを取るならば、それは2点の得点を平均化しますので、AssessmentListing
ID AssessmentID AssessmentSubmittedDatetime AssessmentScore
1 040416024720 04-Apr-2016 02:48 PM 50
「週番号」と「従業員名」でグループ化する必要があります。 – 1000111
'AssessmentEmployee.EmployeeName'で' group by 'と言うとき、 'EmployeeName'の各値のデータをすべて単一の行にまとめるように要求しています。もちろん、あなたは1つの行だけを取得します(あなたが期待していた2つの行ではありません)。 – Turophile
@Turophileそれは、アダムとジャックが過去2週間でやったと言うことができるようにしたいので、それは両方のために表示する必要がありますまた過去6週間のいずれかの週は過去の週を取るよりもレコードを持っていない場合、それは別の週を取るべきではない –