同じテーブル内の他の応答によってフィルター処理する必要があるテーブルがあります。私は動作する次のスクリプトを使用しますが、'Customer.customer_id' (時々ある) の重複がある場合、結果は歪められます。私の質問は、これを回避するためにこのコードを書き直して、「Customer」テーブルから個別の結果のみを選択するより良い方法があるかどうかです。
以下の例のテーブルでは、customer_id '10' のエントリが重複しているため、' Two ' 応答のみが返されます (以下のクエリに基づく)。
サンプルテーブル:
[res_id] [question_id] [customer_id] [survey_id] [res_answer]
1 20 10 155 male
1 20 11 155 male
1 20 10 155 male
1 20 12 155 female
現在のクエリ:
SELECT
Responses.res_id AS responseID
,Responses.res_col AS answer
,Responses.res_created AS dateCreated
,Responses.res_notes AS note
,Responses.question_id AS questionID
,Responses.customer_id AS customerID
,Responses.res_answer AS subQuestion
,Responses.survey_id AS surveyID
,Responses.res_void AS void
,Customer.res_answer AS filter
FROM
Responses, Responses AS Customer
WHERE
rs.customer_id = Customer.customer_id
AND
Responses.survey_id ='155'
AND
Customer.survey_id = '155'
AND
Responses.question_id = '20'
AND CAST(Customer.res_answer AS VARCHAR(500)) = 'male'
AND Responses.res_void = '0'