SQL

Fermé
ealzind Messages postés 2 Date d'inscription mercredi 18 septembre 2013 Statut Membre Dernière intervention 18 septembre 2013 - 18 sept. 2013 à 12:48
Morgothal Messages postés 1236 Date d'inscription jeudi 22 avril 2010 Statut Membre Dernière intervention 19 mai 2015 - 18 sept. 2013 à 22:01
Bonjour, je dispose d'une base de données qui contient plusieurs tables ; il s'agit des réponses d'étudiants à des QCM avec les questions et les coordonnées des étudiants etc... Bref, Je compte créer une jointure entre 2 tables et selectionner le maximum des subversions de questions. Je réalise la requête suivante et je ne comprend pas pourquoi ça se bloque:

select 'question_id','task_id', max('question_subversion')
from 'etests_questions_01'
inner join 'etests_questions_01_items'
ON 'etests_questions_01'.'question_id'= 'etests_questions_01_items'.'question_id'
Group by 'question_id'

Si quelqu'un a une idée n'hésitez pas.
Merci
A voir également:

2 réponses

Morgothal Messages postés 1236 Date d'inscription jeudi 22 avril 2010 Statut Membre Dernière intervention 19 mai 2015 183
18 sept. 2013 à 14:31
Bonjour,
Difficile de comprendre la requête sans avoir le design des tables...

Sinon, quelle est le message d'erreur ?

Autre chose, tu as 3 champs dans le select (une fonction d'agrégat et 2 champs "en dur", j'imagine que ce sont des noms de champs qui ne devraient pas être entre quotes), tu devrais donc avoir 2 champs dans le group by.

En attente de plus de précisions ;)

A+
0
ealzind Messages postés 2 Date d'inscription mercredi 18 septembre 2013 Statut Membre Dernière intervention 18 septembre 2013
18 sept. 2013 à 14:50
J'ai résolu le problème de celle-ci en ajoutant les noms des tables: nom de la table.nom de la colonne mais je n'ai pas pu avoir ce que je veux....
Pour mieux s'exprimer, j'ai des identifiants des questions(question_id) dont chacune a une subversion(question_subversion) et une colonne dans laquelle il ya les identifiant du user qui a crée cette question(user_id), dans une table qui s'appelle etests_questions_01.
Dans une autre table qui s'appelle etests_questions_01_items j'ai l'identifiant de la question (question_id) et les subversions et une tâche associée à chaque question (task_id)
Dans une troisième table qui s'appelle etests_tasks_1 j'ai le task_id et une praxéologie associée à la tâche (task_praxeology= 1, 2 ou 3)
Enfin, je dois selectionner les questions de la plus grande subversion pour chaque question et éliminer les questions créer par le user 256.
Puis je dois avoir le nombre de questions (de la selection ci-dessus) associées à chaque praxéologie , par exemple task-praxeology 1 count 100
J'ai essayé de decouper mon problème en deux parties en utilisant la requête de tantôt et en créant une vue dans sql mais mon second problème est que je ne peux pas faire des jointures au sein d'une vue...
J'ai opté à la requête suivante:


SELECT 'etests_questions_01'.'question_id' , 'etests_questions_01_items'.'task_id' , max( 'etests_questions_01_items'.'question_subversion' ) , 'etests_questions_01_items'.'item_correct' ,count('etests_tasks_1'.'task_praxeology'), 'etests_questions_01'.'question_user_creation'
FROM 'etests_questions_01_items'
INNER JOIN 'etests_questions_01' ON 'etests_questions_01'.'question_id' = 'etests_questions_01_items'.'question_id'
right outer join'etests_tasks_1' ON 'etests_tasks_1'.'task_id'='etests_questions_01_items'.'task_id'
GROUP BY 'etests_questions_01'.'question_id'
Where 'etests_questions_01'.'question_user_creation' !=256
AND 'etests_questions_01_items'.'item_correct' =1




Mais elle ne marche pas....
0
Morgothal Messages postés 1236 Date d'inscription jeudi 22 avril 2010 Statut Membre Dernière intervention 19 mai 2015 183
18 sept. 2013 à 22:01
La comme ça, je me demande toujours pourquoi tu rajoutes les quotes " ' " ?
Ensuite en en TSQL, "différent de" s'exprime avec "<>".
Si tu veux grouper des lignes avec un MAX() ou un COUNT(), il faut que tous les autres champs du SELECT soient dans le GROUP BY.
La clausse GROUP BY se met après le WHERE.

Je continue de chercher une "requête-solution" ;)
0