Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2835 connectés 

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  problème pour trouver la bonne requête...

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

problème pour trouver la bonne requête...

n°2097836
clements42
Posté le 26-08-2011 à 22:12:08  profilanswer
 

bonsoir,
 
je rencontre des difficultés pour trouver quelle requête sql me renverrait le bon résultat à ma problématique que voici :
 
un salarié à un instant T fait partie d'un service. Il change régulièrement de service.  
j'ai une table (base access) dans laquelle je stocke les changement de services, qui comporte ces champs :
 
id_salarie | date_changement | ancien_service | nouveau_service
 
exemple de données :
 
32 | 05/12/2010 | 12 | 7
32 | 15/12/2010 | 7 | 8
 
Je souhaiterais savoir, à partir d'une date, dans quel service se trouvait un salarié donné à ce moment là (un salarié ne peut pas rester moins de 2 jours dans un même service).
Je pensais que c'était tout simple, mais je tourne un peu en rond. :/
 
si certains ont des pistes...
 
Merci  :hello:

Message cité 1 fois
Message édité par clements42 le 26-08-2011 à 22:12:31
mood
Publicité
Posté le 26-08-2011 à 22:12:08  profilanswer
 

n°2097837
Profil sup​primé
Posté le 26-08-2011 à 22:25:04  answer
 

select ancien_service From Table where date_changement between date and "date -1 jour" ?

n°2097840
mrbebert
Posté le 26-08-2011 à 22:40:12  profilanswer
 

clements42 a écrit :

...
 
Je souhaiterais savoir, à partir d'une date, dans quel service se trouvait un salarié donné à ce moment là (un salarié ne peut pas rester moins de 2 jours dans un même service).
 
...

Souvent, en SQL, si on ne trouve pas la réponse, c'est qu'il faut changer la question :)  
En fait, tu cherche le service qu'à rejoint l'employé lors de son dernier changement ayant eu lieu avant la date qui t'intéresse :

SELECT nouveau_service
FROM table_des_changements
WHERE date_changement < '01/01/2011'
ORDER BY date_changement DESC
LIMIT 1


 
(le LIMIT 1, c'est du MySQL, doit bien y avoir un équivalent sous Access)


---------------
Doucement le matin, pas trop vite le soir.
n°2097845
clements42
Posté le 26-08-2011 à 23:05:20  profilanswer
 

Merci bien à vous deux. J'ai trouvé une solution qui ressemble très fortement à la tienne mrbebert. D'ailleurs, il me semble bien que ton "desc" dans le order by est inutile, non ?

n°2097847
mrbebert
Posté le 26-08-2011 à 23:16:31  profilanswer
 

Ah non. La date la plus récente, c'est la 1ère quand on tri par ordre décroissant. Si tu ne mets pas le ORDER BY, le SGBD est susceptible de te renvoyer n'importe quelle ligne.


---------------
Doucement le matin, pas trop vite le soir.
n°2098046
Oliiii
Posté le 29-08-2011 à 08:55:16  profilanswer
 

Ca depend du clustered index en fait, peut etre que c'est le cas dans la table de clements.
Mais evidement il vaut mieux eviter de se baser la dessus et faire comme mrbebert dit et mettre le order by.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  problème pour trouver la bonne requête...

 

Sujets relatifs
probleme de parametre avec requete préparéee dans une méthode MVCProbleme formulaire ACCESS
terminateprocess() boucle problèmerequête sql multi tables
Validations de données : problème pour créer une listeProblème avec le composant FLVPlayback
Problème formulaire contact, site flash![Javascript/PHP] Problème de retour chariot dans un cookie
[C] Problème fscanf avec string 
Plus de sujets relatifs à : problème pour trouver la bonne requête...


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR