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
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
A voir également:
- SQL
- Sql server recovery - Télécharger - Gestion de données
- Logiciel sql - Télécharger - Bases de données
- Sql pix - Forum Python
- Dupliquer une table sql ✓ - Forum Programmation
- Sql commence par ✓ - Forum Webmastering
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
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+
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+
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
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....
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....
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
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" ;)
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" ;)