エージェントにリンクされたすべての回答の重みの合計を取得する SQL クエリがあります。たとえば 1 などのエージェント ID を指定すると、うまくいきます。
しかし、私は知りたいです
エージェントIDを指定せずに可能ですか?データベースにあるすべてのエージェントにリンクされたすべての回答を取得します.zendを使用してそれを行う方法がわかりません?
エージェントの配列があり、すべてのエージェントのすべての重みを返して、特定の質問に対するエージェントの重みを配列形式で返す場合、SQL クエリをループできますか。
テーブルのテーブル構造
テーブルエージェントのテーブル構造
agent_id // すべてのエージェント ID 1 2 3
表回答の表構造
answer_id // すべての回答 ID 重み付け // 追加される各エージェントの合計は個別に 11 1 12 0 13 -1
テーブル顧客調査のテーブル構造
// 顧客 ID // 障害 ID // 調査 ID 1 1 4 2 3 5
テーブルフォールトのテーブル構造
fault_id エージェント ID
// 3 3
//4 5 // これはすべてランダム データです
テーブル応答のテーブル構造
// 回答 ID アンケート ID customer_id 回答 ID response_id sq_id cs_id answer_id
テーブル survey_question のテーブル構造
survey_id question_id
各回答はフォルトに関連付けられています。およびエージェントの障害。顧客がアンケートに回答します。お客様の対応に誤りがありました。custome response cs_id を response に。質問は特定のアンケートに関連付けられています。ややこしいので2日かかりました
- 20 個のランダムなエージェント ID があり、mysql でそれらをループして、各エージェント ID の結果を取得する必要があります。現在、私は1つのエージェントを取得しています。
SELECT SUM( weightage )
FROM answer a
WHERE a.answer_id
IN (
SELECT r.answer_id
FROM response r, survey_question sq
WHERE r.sq_id = sq.sq_id
AND sq.survey_id =4
AND sq.question_id =28
AND r.cs_id
IN (
SELECT cs.cs_id
FROM customer_survey cs, faults f
WHERE cs.fault_id = f.fault_id
AND agent_id =1
)
)`
単一のエージェントに対するこのクエリの出力は次のとおりです。
Array
(
[0] => Array
(
[SUM( weightage )] => 2
)
)
次のようなエージェント ID に基づいて、出力を次のようにしたい
Array
(
// agent id 1
[1] => Array
(
[SUM( weightage )] => 2
)
// agent id 2
[2] => Array
(
[SUM( weightage )] => -1
)
// agent id 3
[3] => Array
(
[SUM( weightage )] => 5
)
// agent id 4
[4] => Array
(
[SUM( weightage )] => 4
)
// agent id 5
[5] => Array
(
[SUM( weightage )] => 11
)
)