Problèmes création de requêtes spécifiques
Captainmarti1664
Messages postés
2
Date d'inscription
Statut
Membre
Dernière intervention
-
jordane45 Messages postés 38486 Date d'inscription Statut Modérateur Dernière intervention -
jordane45 Messages postés 38486 Date d'inscription Statut Modérateur Dernière intervention -
Bonjour je doit crer une base de donnés pour un de mes cours d'informatiques sur des peintres des tableaux et des musés.
Il faut donc que je crée des requêtes SQL en mode ébauche, j'arrive à creer les basiques assez facilement le problème est pour celles qui sont plus complexe. Sa m'ennuie parce que je pense pas me tromper sur beaucoup de chose mais elles ne sont jamais valide. Je vais vous marquer ce que je souhaite voir apparaître et ce que je tape.
Pour commencer j'ai 3 tables:
une peintres dont les champs sont: -CodeP, -Nom, -Prenom, -Naissance, -Desces, -Lieu_de_naissance, -Pays_de_naissance, -Lieu_de_deces, -Pays_de_deces
Une tableaux dont les champs sont: -Code_tableau, -Nom_tableau, -Annee, - CodeP, -CodeM
Une musee dont les champs sont: -CodeM, -Nom_musse, -Ville, -Pays.
Donc j'aimerai crée les requêtes suivantes:
La liste des tableaux peint après 1918 voila ce que j'inscris: SELECT "Nom_Tableau", "Annee", FROM "tableau" WHERE "Annee" => 1918
Les Peintres mort entre 1914 et 1918 voila ce que j'inscrit: SELECT "Nom" "Deces" FROM "peintres" WHERE "Deces" BETWEEN '1914' AND '1918'
La liste des lieux de décès plus les ville qui ont vue au moins deux peintre y mourir: SELECT "Lieu_de_deces", count(*)=2 FROM "peintres"
La liste des tableaux peint après 1918 celle la je n'arrive absolument pas a trouver comment l'écrire
pareil j'aimerai faire la liste des peintres et de leur tableaux classés par ordres alphabétique la j'essaye sa : SELECT "Nom" "Nom_tableau" "Annee" FROM "peintres" "tableaux" WHERE 'peintres.CodeP=tableaux.CodeP' ODER BY "Nom" "Nom_tableau"
voila bref je galère terrible depuis ce week-end si quelqu'un pouvais m'aider sa serait bien cool
Merci d'avance a tous, CaptainMart1664
Il faut donc que je crée des requêtes SQL en mode ébauche, j'arrive à creer les basiques assez facilement le problème est pour celles qui sont plus complexe. Sa m'ennuie parce que je pense pas me tromper sur beaucoup de chose mais elles ne sont jamais valide. Je vais vous marquer ce que je souhaite voir apparaître et ce que je tape.
Pour commencer j'ai 3 tables:
une peintres dont les champs sont: -CodeP, -Nom, -Prenom, -Naissance, -Desces, -Lieu_de_naissance, -Pays_de_naissance, -Lieu_de_deces, -Pays_de_deces
Une tableaux dont les champs sont: -Code_tableau, -Nom_tableau, -Annee, - CodeP, -CodeM
Une musee dont les champs sont: -CodeM, -Nom_musse, -Ville, -Pays.
Donc j'aimerai crée les requêtes suivantes:
La liste des tableaux peint après 1918 voila ce que j'inscris: SELECT "Nom_Tableau", "Annee", FROM "tableau" WHERE "Annee" => 1918
Les Peintres mort entre 1914 et 1918 voila ce que j'inscrit: SELECT "Nom" "Deces" FROM "peintres" WHERE "Deces" BETWEEN '1914' AND '1918'
La liste des lieux de décès plus les ville qui ont vue au moins deux peintre y mourir: SELECT "Lieu_de_deces", count(*)=2 FROM "peintres"
La liste des tableaux peint après 1918 celle la je n'arrive absolument pas a trouver comment l'écrire
pareil j'aimerai faire la liste des peintres et de leur tableaux classés par ordres alphabétique la j'essaye sa : SELECT "Nom" "Nom_tableau" "Annee" FROM "peintres" "tableaux" WHERE 'peintres.CodeP=tableaux.CodeP' ODER BY "Nom" "Nom_tableau"
voila bref je galère terrible depuis ce week-end si quelqu'un pouvais m'aider sa serait bien cool
Merci d'avance a tous, CaptainMart1664
A voir également:
- Problèmes création de requêtes spécifiques
- Creation de compte google - Guide
- Creation de site web - Guide
- Creation compte gmail - Guide
- Media creation tool - Télécharger - Systèmes d'exploitation
- Creation compte vinted - Guide
3 réponses
Bonjour,
Première chose... pour les comparaison ... on utilise SUPERIEUR OU EGAL et non pas EGAL OU SUPERIEUR.
donc
A remplacer par :
IL ne faut pas oublier de séparer chaque champ du SELECT ... par une virgule...et ne pas mettre de QUOTES autour des noms de champs et de tables....
Oula... tu ne peux pas faire de comparaison directement dans le select...(ça c'est dans le WHERE qu'il faut le gérer....)
Et à la limite.. pour ton besoin.. il faudrait passer par une sous requête.
Quelque chose du genre:
La liste des tableaux peint après 1918 voila ce que j'inscris: SELECT "Nom_Tableau", "Annee", FROM "tableau" WHERE "Annee" => 1918
Première chose... pour les comparaison ... on utilise SUPERIEUR OU EGAL et non pas EGAL OU SUPERIEUR.
donc
WHERE "Annee" => 1918
A remplacer par :
WHERE "Annee" >= 1918
Les Peintres mort entre 1914 et 1918 voila ce que j'inscrit: SELECT "Nom" "Deces" FROM "peintres" WHERE "Deces" BETWEEN '1914' AND '191
IL ne faut pas oublier de séparer chaque champ du SELECT ... par une virgule...et ne pas mettre de QUOTES autour des noms de champs et de tables....
SELECT Nom,Deces FROM peintres WHERE Deces BETWEEN '1914' AND '191'
La liste des lieux de décès plus les ville qui ont vue au moins deux peintre y mourir: SELECT "Lieu_de_deces", count(*)=2 FROM "peintres"
Oula... tu ne peux pas faire de comparaison directement dans le select...(ça c'est dans le WHERE qu'il faut le gérer....)
Et à la limite.. pour ton besoin.. il faudrait passer par une sous requête.
Quelque chose du genre:
SELECT Lieu_de_deces, COUNT(*) AS "NB" FROM peintres GROUP BY peintres HAVING COUNT(*) >= 2
Merci de ton aide j'ai suivi tes conseil mais j'ai toujours un soucis en fait
pour la liste des tableaux après 1918 je mets donc: "Nom_Tableau", "Annee", FROM "tableau" WHERE "Annee" >= 1918
problème le logiciel me dit qu'il y a une erreur de syntax je suppose au vue de tes explications que ce sont les QUOTES qui pose problème mais du coup je doit retirer lesquelles ?
pour la seconde je tape donc SELECT Nom,Deces FROM peintres WHERE Deces BETWEEN '1914' AND '1918'
mais il me marque cette fois,
Wrong data type: java.lang.IllegalArgumentException in statement [SELECT "Nom", "Deces" FROM "peintres" WHERE "Deces" BETWEEN '1914' AND '1918']
j'ai vérifié mes noms de champs si il correspondais bien a ce que je t'es transmit et je ne note aucune fautes mais la logiciel me marque sa quans j'exécute ma requêtes
Wrong data type: java.lang.IllegalArgumentException in statement [SELECT "Nom", "Deces" FROM "peintres" WHERE "Deces" BETWEEN '1914' AND '1918']
des idées s'il te plait ?
pour la liste des tableaux après 1918 je mets donc: "Nom_Tableau", "Annee", FROM "tableau" WHERE "Annee" >= 1918
problème le logiciel me dit qu'il y a une erreur de syntax je suppose au vue de tes explications que ce sont les QUOTES qui pose problème mais du coup je doit retirer lesquelles ?
pour la seconde je tape donc SELECT Nom,Deces FROM peintres WHERE Deces BETWEEN '1914' AND '1918'
mais il me marque cette fois,
Wrong data type: java.lang.IllegalArgumentException in statement [SELECT "Nom", "Deces" FROM "peintres" WHERE "Deces" BETWEEN '1914' AND '1918']
j'ai vérifié mes noms de champs si il correspondais bien a ce que je t'es transmit et je ne note aucune fautes mais la logiciel me marque sa quans j'exécute ma requêtes
Wrong data type: java.lang.IllegalArgumentException in statement [SELECT "Nom", "Deces" FROM "peintres" WHERE "Deces" BETWEEN '1914' AND '1918']
des idées s'il te plait ?
je suppose au vue de tes explications que ce sont les QUOTES qui pose problème mais du coup je doit retirer lesquelles ?
Toutes
Par contre.... avant d'essayer de coder tes requête directement depuis ton programme (en Java donc...semble t'il....) il faut commencer par les tester en DIRECT dans la BDD.
Soit par PhpMyadmin soit en utilisant un logiciel comme HeidiSql (regardes ici : https://codes-sources.commentcamarche.net/faq/10778-heidisql-tester-ses-requetes-sql
Et c'est seulement une fois que tu es sûr que tes requêtes sont bonnes.... que tu peux essayer de les intégrer dans ton programme..... et qu'on pourra se pencher sur le code côté JAVA.....