Bonjour,
J'ai cherché dans le forum, dans la faq, sur le web (pas tout lu quand même), mais je reste bloqué. Donc s'il vous plait j'ai besoin d'un coup de main.
En effet, je souhaite mettre à jour des champs oui/non : un qui indique si l'interimaire est actif, ie. à un contrat en cours chez nous, un autre s'il a un visa valide s'il est étranger.
Premier cas : Le contrat
J'ai une table [APL_rodosha] où sont stockés les rodo_code (numéro auto, clé), noms, prénoms, etc... ainsi que le champ "active" (case à cocher).
Dans mon autre table, [contract] j'ai "contract_numb" (num auto, clé), "code facturation" (clé primaire aussi), rodo_code, contract_end (date légale de fin de contrat), activity_end (fin effective du contrat = dernier jour de travail de l'intérimaire), etc...
J'ai donc dans ma table [contract] pour un même travailleur intérimaire plusieurs contrats (finis, en cours...). (On souhaite garder dans la base les contrats finis pour retracer son parcours chez nous).
Pour ceux qui ont leur contrat fini, c-à-d qu'une date a été imputée dans le champ activity_end, et sans aucun autre contrat en cours, je souhaiterais que la case à cocher soit décochée (valeur 0). Et inversement : s'il a ou pas de contrat fini, mais qu'il a un contrat en cours (c-à-d que pour ce contrat le champ activity_end est vide), la case à cocher doit être cochée.
Le problème c'est qu'avec le code sql suivant j'ai un intérimaire qui est marqué comme inactif alors qu'il a un autre contrat en cours.
Voici mon code SQL :
Code sql : Sélectionner tout - Visualiser dans une fenêtre à part UPDATE APL_rodosha INNER JOIN contract ON APL_rodosha.rodo_code=contract.rodo_code SET APL_rodosha.active = IIf(contract.activity_end Is Not Null,0,1);
Second cas : Les visas
Je pense que la problématique est sensiblement la même, donc je ne remets pas le code (que de tout de façon je n'ai pas fait)
La différence c'est que j'aurai plus de conditions à tester.
- nationalité différente de "japonais" (dans la table [APL_rodosha])
- type de visa différent de "visa de résident permanent" (dans table [visa_hold])
- date de fin de visa par rapport à date en cours (date()) (dans la table [visa_hold])
Donc ma question principale est qu'est ce qui cloche ?
La question secondaire par rapport au second cas, est-ce que c'est mieux d'imbriquer des iif ou de faire autre chose?
Merci d'avance.
Partager