Requête avec plusieurs conditions

Résolu/Fermé
nabil-bago Messages postés 255 Date d'inscription mercredi 22 mai 2013 Statut Membre Dernière intervention 24 novembre 2021 - Modifié le 23 oct. 2019 à 21:55
nabil-bago Messages postés 255 Date d'inscription mercredi 22 mai 2013 Statut Membre Dernière intervention 24 novembre 2021 - 24 oct. 2019 à 00:11
Bonjour,

je suis bloqué sur une requete sql server.
alors j'ai deux table
salarie(immatriculation,nom,prenom)
ATS(code,immatriculation,moi,annee,salaire)

je veux affiché les salaire d'un employer de différent mois de différente années
exemple je veux afficher le salaire d'un employer (immatriculation 11)
le mois de décembre 2018
le mois de janvier 2019
le mois de mars 2019

et voila la requete que j'ai essayer
select * from Salarie,ATS 
where (ats.immatriculation = salarie.immatriculation and  ATS.Immatriculation = 11 )
where (ats.mois= 'decembre' and annee= 2018)
where (ats.mois= 'janvier' and annee= 2019)
where (ats.mois= 'mars' and annee= 2019)


Merci

2 réponses

jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 4 650
23 oct. 2019 à 23:14
Bonjour,

Pour commencer... es-tu sûr que ta bdd est en SQL SERVER ? Si oui.. quelle version ? 2008 ? 2012 ? autre ?

Ensuite, ta requête n'est pas bonne.
Tu ne peux pas avoir plusieurs fois l'instruction "WHERE" dans ta requête.
Tu as sû utiliser des "AND" ... et bien... regarde aussi comment s'utilisent les "OR"

Au passage... utiliser des "string" pour les mois est une erreur...
Un mois.. c'est une valeur de 1 à 12 ... ce qui permet de faire des comparaisons si besoin...
On ne stocke jamais la valeur en "texte" .. ne serait-ce que pour les multi-langues..

On évite également de séparer les Années et les mois dans des colonnes différentes.
On utilisera, à la place, un champ de type DATE
(pour Janvier 2019 .. dans un champ date, tu aurais simplement écrit : 2019-01-01 .. pour le mois de Mars : 2019-03-01 .. etc...)
Là encore c'est pour faciliter les requêtes lorsqu'il faut manipuler/comparer des dates.

Je te laisse apporter les corrections et revenir vers nous si tu as toujours des soucis dans tes requêtes.








1
nabil-bago Messages postés 255 Date d'inscription mercredi 22 mai 2013 Statut Membre Dernière intervention 24 novembre 2021 13
24 oct. 2019 à 00:10
Merci beaucoup Jordan45,
je vois beaucoup claire après ta réponse, je viens de comprendre toutes mes erreur,

je vais mettre mois (en chiffre) et année ensemble et j’utiliserai des AND pour les conditions

Merci encore Jordan
0
nabil-bago Messages postés 255 Date d'inscription mercredi 22 mai 2013 Statut Membre Dernière intervention 24 novembre 2021 13
24 oct. 2019 à 00:11
et pour ma BDD oui c'est sur SQL server 2012
0
yg_be Messages postés 22724 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 25 avril 2024 1 476
Modifié le 23 oct. 2019 à 22:27
bonjour, quelle est ta question?
0
nabil-bago Messages postés 255 Date d'inscription mercredi 22 mai 2013 Statut Membre Dernière intervention 24 novembre 2021 13
23 oct. 2019 à 22:51
salut, la requête que j'ai essaye ne fonctionne pas, je cherche la requête pour affiché le résultat souhaité
merci
0
yg_be Messages postés 22724 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 25 avril 2024 1 476 > nabil-bago Messages postés 255 Date d'inscription mercredi 22 mai 2013 Statut Membre Dernière intervention 24 novembre 2021
23 oct. 2019 à 23:02
"ne fonctionne pas", cela ne veut rien dire: peux-tu être plus factuel?
la syntaxe de la requête est évidement incorrecte, quelle formation as-tu suivie?
peut-être devrais-tu commencer par des exercices plus simples?
je constate aussi que le texte de ta demande est incorrect. il manque les conjonctions de coordination dans la phrase " je veux afficher le salaire d'un employer (immatriculation 11) le mois de décembre 2018 le mois de janvier 2019 le mois de mars 2019"
0