2017-11-27 10 views
0

こんにちは皆さん、私を助けてください。 入力データと出力データを含む下の画像を見つけてください 各competence_question_idの最大日付のみを表示するsqlリクエストをコードする必要があります。また、この日付のcompetence_answer_idの値も表示します(私はresponse_idでグループ化していますが、 sqlリクエスト最大グループ別

は、事前にありがとう

SELECT response_id, competence_question_id, competence_answer_id, MAX(date_created) 
FROM competence_vote_history 
WHERE response_id = 53178 
GROUP BY response_id, competence_question_id, competence_answer_id 
ORDER BY response_id, competence_question_id 

the table one with input data

the table two with output data

+1

MySQL <> SQL Server。正しいRDBMSにタグを付けます。 –

+1

テーブルとデータをテキストとして投稿[READ THIS](http://meta.stackoverflow.com/questions/285551/why-may-i-not-upload-images-of-code-on-so-when-asking -a-question/285557#285557) –

答えて

0

Fを試してみてください所望の結果についてのollowingクエリー。

SELECT competence_question_id, competence_answer_id, date_created, answer_value 
FROM competence_vote_history i 
WHERE response_id = 53178 
    AND date_created = (
     SELECT MAX(date_created) 
     FROM competence_vote_history 
     WHERE response_id = i.response_id 
     AND competence_question_id = i.competence_question_id) 
ORDER BY response_id, competence_question_id 
0

DATE_CREATED列は日付が繰り返されていない場合、あなたは(MAX(DATE_CREATED)はcompetence_question_idで得られる)派生テーブルを使用することができますが、元のテーブルに参加しました:

SELECT V.* 
    FROM (
     SELECT competence_question_id, MAX(date_created) AS MAXdate_created 
      FROM competence_vote_history 
      WHERE response_id = 53178 
     GROUP BY competence_question_id 
     ) AS dT INNER JOIN competence_vote_history V on dT.competence_question_id = V.competence_question_id 
                AND dT.MAXdate_created = V.date_created 
ORDER BY response_id, competence_question_id