A voir également:
- Requete sql
- Erreur lors de l'envoi de la requête facebook marketplace - Forum Facebook
- Logiciel sql - Télécharger - Bases de données
- Il y a eu un problème avec cette requête. nous travaillons à sa résolution aussi vite que nous le pouvons. - Forum Facebook
- Sql replace plusieurs valeurs - Forum Programmation
- Récupération serveur sql - Télécharger - Gestion de données
37 réponses
Melooo
Messages postés
1405
Date d'inscription
vendredi 28 novembre 2008
Statut
Membre
Dernière intervention
18 mars 2013
84
2 nov. 2010 à 11:12
2 nov. 2010 à 11:12
Aurais tu une requête de "brouillon" qu'on pourrait éventuellement modifier ?
SELECT NoCarte, Nom
FROM COURS C, INSCRIT I, PARTICIPATION P
WHERE C.NomCours = P.NomCours
AND I.NoCarte = P.NoCarte
AND Nom ='Bonnard';
FROM COURS C, INSCRIT I, PARTICIPATION P
WHERE C.NomCours = P.NomCours
AND I.NoCarte = P.NoCarte
AND Nom ='Bonnard';
Melooo
Messages postés
1405
Date d'inscription
vendredi 28 novembre 2008
Statut
Membre
Dernière intervention
18 mars 2013
84
2 nov. 2010 à 11:15
2 nov. 2010 à 11:15
Lui donner la réponse sans explication, ca lui permettra pas d'apprendre...
j'avais tenté ça :
SELECT INSCRIT .Nocarte, Nom FROM PARTICIPATION, INSCRIT as R ,INSCRIT, PARTICIPATION AS P Where Nom=' Bonnard' and PARTICIPATION.Nocarte= R. Nocarte and R.NomCours= INSCRIT. NomCours INSCRIT. Nocarte= P. Nocarte
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
SELECT NoCarte, Nom, SUM(NomCours) AS Nombre
FROM COURS C, INSCRIT I, PARTICIPATION P
WHERE C.NomCours = P.NomCours
AND I.NoCarte = P.NoCarte
AND Nom ='Bonnard'
HAVING Nombre > 1;
Tu affiches les noms et numéros de carte des inscrits puis tu compte le nombre de cours effectués par bonnard dans le select
Ensuite tu prends les 3 tables suivantes pour pouvoir relié les infos.
Puis dans le where tu réalise les relations entre les 3 tables, tu affecte bonnard à Nom vu que c'est de lui que tu veux avoir les infos.
Et enfin ds le having, tu regarde si le nombre de cours est bien supérieur à 1.
FROM COURS C, INSCRIT I, PARTICIPATION P
WHERE C.NomCours = P.NomCours
AND I.NoCarte = P.NoCarte
AND Nom ='Bonnard'
HAVING Nombre > 1;
Tu affiches les noms et numéros de carte des inscrits puis tu compte le nombre de cours effectués par bonnard dans le select
Ensuite tu prends les 3 tables suivantes pour pouvoir relié les infos.
Puis dans le where tu réalise les relations entre les 3 tables, tu affecte bonnard à Nom vu que c'est de lui que tu veux avoir les infos.
Et enfin ds le having, tu regarde si le nombre de cours est bien supérieur à 1.
Melooo
Messages postés
1405
Date d'inscription
vendredi 28 novembre 2008
Statut
Membre
Dernière intervention
18 mars 2013
84
2 nov. 2010 à 11:21
2 nov. 2010 à 11:21
Alors tu as plusieurs erreur dans ta requête :
Dans ton FROM tu met deux fois la même table.
Je pense que tu as fais sa pour les alias mais tu peux mettre directement :
Ce qui te permet d'utiliser C au lieu de Cours dans tes jointures
Ensuite tu veux savoir qui as participer a au moins 1 cours de Bonnard,
donc tu as besoin de la table participation, cours, et inscrit, et ensuite il te reste plus qu'a faire les jointures correspondantes.
Je sais pas si je suis bien claire, mais de toute façon tu as la requête de Baboun toute prête
Dans ton FROM tu met deux fois la même table.
Je pense que tu as fais sa pour les alias mais tu peux mettre directement :
FROM COURS C, INSCRIT I, PARTICIPATION P
Ce qui te permet d'utiliser C au lieu de Cours dans tes jointures
Ensuite tu veux savoir qui as participer a au moins 1 cours de Bonnard,
donc tu as besoin de la table participation, cours, et inscrit, et ensuite il te reste plus qu'a faire les jointures correspondantes.
Je sais pas si je suis bien claire, mais de toute façon tu as la requête de Baboun toute prête
Merci bien mais j'ai ces erreurs là :
Msg 207, Niveau 16, État 1, Ligne 6
Nom de colonne non valide : 'Nombre'.
Msg 4104, Niveau 16, État 1, Ligne 6
L'identificateur en plusieurs parties "Inscrit.Nocarte" ne peut pas être lié.
Msg 209, Niveau 16, État 1, Ligne 1
Nom de colonne 'NomCours' ambigu.
Msg 207, Niveau 16, État 1, Ligne 6
Nom de colonne non valide : 'Nombre'.
Msg 4104, Niveau 16, État 1, Ligne 6
L'identificateur en plusieurs parties "Inscrit.Nocarte" ne peut pas être lié.
Msg 209, Niveau 16, État 1, Ligne 1
Nom de colonne 'NomCours' ambigu.
Merci bien à toi de m'expliquer...mais sa requete ne marche pas lorsque je l'exécute...
regarde au dessus j'ai posté les erreurs
regarde au dessus j'ai posté les erreurs
Melooo
Messages postés
1405
Date d'inscription
vendredi 28 novembre 2008
Statut
Membre
Dernière intervention
18 mars 2013
84
2 nov. 2010 à 11:25
2 nov. 2010 à 11:25
NomCours ambigu c'est normal étant donné qu'il est présent dans plusieurs table donc tu dois spécifier dans quelle table tu va le chercher :
Essayes de mettre directement dans ton Having sa :
Partcipation.NomCours
Essayes de mettre directement dans ton Having sa :
SUM(NomCours) > 1
SELECT I.NoCarte, Nom, SUM(C.NomCours)
FROM COURS C, INSCRIT I, PARTICIPATION P
WHERE C.NomCours = P.NomCours
AND I.NoCarte = P.NoCarte
AND Nom ='Bonnard'
HAVING ((SUM(C.NomCours) > 1));
essaye ça
FROM COURS C, INSCRIT I, PARTICIPATION P
WHERE C.NomCours = P.NomCours
AND I.NoCarte = P.NoCarte
AND Nom ='Bonnard'
HAVING ((SUM(C.NomCours) > 1));
essaye ça
j'ai ça :
Msg 8117, Niveau 16, État 1, Ligne 1
Le type de données de l'opérande char n'est pas valide pour l'opérateur sum.
Msg 8117, Niveau 16, État 1, Ligne 1
Le type de données de l'opérande char n'est pas valide pour l'opérateur sum.
Melooo
Messages postés
1405
Date d'inscription
vendredi 28 novembre 2008
Statut
Membre
Dernière intervention
18 mars 2013
84
2 nov. 2010 à 11:31
2 nov. 2010 à 11:31
Essayes plutôt count que sum !
parce que la il essaye de faire la somme de tes cours,
exemple :
informatique + mathematiques = ????
parce que la il essaye de faire la somme de tes cours,
exemple :
informatique + mathematiques = ????
Oui je suis bête^^
SELECT I.NoCarte, Nom, COUNT(I.NoCarte)
FROM COURS C, INSCRIT I, PARTICIPATION P
WHERE C.NomCours = P.NomCours
AND I.NoCarte = P.NoCarte
AND Nom ='Bonnard'
HAVING (((SUM(I.NoCarte) )> 1)));
Ca devrait être pas mal ça je pense
SELECT I.NoCarte, Nom, COUNT(I.NoCarte)
FROM COURS C, INSCRIT I, PARTICIPATION P
WHERE C.NomCours = P.NomCours
AND I.NoCarte = P.NoCarte
AND Nom ='Bonnard'
HAVING (((SUM(I.NoCarte) )> 1)));
Ca devrait être pas mal ça je pense
Mdr merci bien à toi mais encore une erreur lol
Msg 102, Niveau 15, État 1, Ligne 6
Syntaxe incorrecte vers ')'.
j'ai essayé d'en enlever et tout mais non lol
Msg 102, Niveau 15, État 1, Ligne 6
Syntaxe incorrecte vers ')'.
j'ai essayé d'en enlever et tout mais non lol
ah attend il y en avait une de fermé en trop...
maintenant j'ai ça :
Msg 8117, Niveau 16, État 1, Ligne 1
Le type de données de l'opérande char n'est pas valide pour l'opérateur sum.
maintenant j'ai ça :
Msg 8117, Niveau 16, État 1, Ligne 1
Le type de données de l'opérande char n'est pas valide pour l'opérateur sum.
SELECT I.NoCarte, Nom, COUNT(I.NoCarte)
FROM COURS C, INSCRIT I, PARTICIPATION P
WHERE C.NomCours = P.NomCours
AND I.NoCarte = P.NoCarte
AND Nom ='Bonnard'
HAVING (((SUM(I.NoCarte) )> 1));
FROM COURS C, INSCRIT I, PARTICIPATION P
WHERE C.NomCours = P.NomCours
AND I.NoCarte = P.NoCarte
AND Nom ='Bonnard'
HAVING (((SUM(I.NoCarte) )> 1));
idem erreur :
Msg 8117, Niveau 16, État 1, Ligne 1
Le type de données de l'opérande char n'est pas valide pour l'opérateur sum.
Msg 8117, Niveau 16, État 1, Ligne 1
Le type de données de l'opérande char n'est pas valide pour l'opérateur sum.
Melooo
Messages postés
1405
Date d'inscription
vendredi 28 novembre 2008
Statut
Membre
Dernière intervention
18 mars 2013
84
2 nov. 2010 à 11:39
2 nov. 2010 à 11:39
remplacer le sum par le count même dans le having....
Avec la mienne ça devrai marcher^^
SELECT I.NoCarte, Nom, COUNT(I.NoCarte)
FROM COURS C, INSCRIT I, PARTICIPATION P
WHERE C.NomCours = P.NomCours
AND I.NoCarte = P.NoCarte
AND Nom ='Bonnard'
HAVING (((SUM(I.NoCarte)> 1)));
SELECT I.NoCarte, Nom, COUNT(I.NoCarte)
FROM COURS C, INSCRIT I, PARTICIPATION P
WHERE C.NomCours = P.NomCours
AND I.NoCarte = P.NoCarte
AND Nom ='Bonnard'
HAVING (((SUM(I.NoCarte)> 1)));
En remplaçant le SUM par le COUNT j'ai ça :
Msg 8120, Niveau 16, État 1, Ligne 1
La colonne 'INSCRIT.Nocarte' n'est pas valide dans la liste de sélection parce qu'elle n'est pas contenue dans une fonction d'agrégation ou dans la clause GROUP BY.
sinon en le laissant :
Msg 8117, Niveau 16, État 1, Ligne 1
Le type de données de l'opérande char n'est pas valide pour l'opérateur sum.
Msg 8120, Niveau 16, État 1, Ligne 1
La colonne 'INSCRIT.Nocarte' n'est pas valide dans la liste de sélection parce qu'elle n'est pas contenue dans une fonction d'agrégation ou dans la clause GROUP BY.
sinon en le laissant :
Msg 8117, Niveau 16, État 1, Ligne 1
Le type de données de l'opérande char n'est pas valide pour l'opérateur sum.