Créer une base de données salariés- comment faire certain liens?

Fermé
Firafou - 28 sept. 2015 à 10:24
DelNC Messages postés 2234 Date d'inscription samedi 25 octobre 2014 Statut Membre Dernière intervention 22 février 2020 - 13 oct. 2015 à 12:01
Bonjour à tous, sauveteurs potentiels!

Il m'a été demandé de faire une base de salariés sur Acces, avec l'ensemble des infos relatives aux salariés, notamment les augmentations et les promotions.

J'ai donc faire mes tables de données Salariés, Augmentations et Promotions, de mêmes que mes tables de propriétés types le Service, le Status, etc.

Je ne sais pas bien quoi en faire maintenant pour les lier et en faire un outil intéressant! Mais aussi pour pouvoir sortir un reporting avec les dernières aumgent et promo, le rythme, etc.

Please, aidez moi! :)
A voir également:

3 réponses

DelNC Messages postés 2234 Date d'inscription samedi 25 octobre 2014 Statut Membre Dernière intervention 22 février 2020 2 002
Modifié par DelNC le 29/09/2015 à 10:58
Bonjour Firafou,

voilà un exemple de requête pour savoir le nom d'augmentation reçues pour chaque personnes


SELECT COUNT(appli_augm.id_user), users.nom
FROM `appli_augm`, users
WHERE appli_augm.id_user = users.id_user
Group by appli_augm.id_user


Pour avoir la liste des augmentation par personne

SELECT appli_augm.date, users.nom
FROM `appli_augm` , users
WHERE appli_augm.id_user = users.id_user
AND users.nom = 'titi'
ORDER BY appli_augm.id_user
LIMIT 0 , 6


Pour avoir la liste des augmentation pour un employé par ordre de la plus recente à la plus ancienne

SELECT appli_augm.date , users.nom
FROM `appli_augm`, users
WHERE users.nom = 'titi'
ORDER BY `appli_augm`.`date` DESC



Je ne pense pas si c'est possible de classer à la fois par date et par personne

Pour les opérations sur les dates, je recherche la solution
1
C'est déjà beaucoup! Merci beaucoup. Je m'y penche de nouveau et reste dans l'attente de vos découvertes!
0
DelNC Messages postés 2234 Date d'inscription samedi 25 octobre 2014 Statut Membre Dernière intervention 22 février 2020 2 002
29 sept. 2015 à 11:27
Pour avoir les enregistrements des 6 dernières années

SELECT users.nom, (
appli_augm.date
)
FROM appli_augm, users
WHERE DATE_SUB( curdate( ) , INTERVAL 6 YEAR ) <= appli_augm.date
AND users.id_user = appli_augm.id_user


NB adaptez les noms des champs selon vos tables.
0
DelNC Messages postés 2234 Date d'inscription samedi 25 octobre 2014 Statut Membre Dernière intervention 22 février 2020 2 002
28 sept. 2015 à 12:03
Bonjour,

si vous avez besoin de plusieurs type d'augmentation et de promotions, vous pouvez faire ceci

promotions
id_promotion, type_promotions, montant

augmentations
id_augmentation, nom, montant

application_augmentation
id_application_augmentation, id_employe, id_augmentation

application_promotion
id_application_promotion, id_employe, id_promotion


Pour les services
table services
id_service, nom, ....


tables employés
id_employe, nom, prenom, ....


services_employe (un employe dans la vie professionnelle peut être dans différents services
id_serv_employe, id_employe, id_service, ...


Pour les éléments comme les postes, services, statuts il vaut mieux faire une tables pour chacun des éléments et faire un e table de jointure ou on regroupe les éléments.
Dans la table de jointure, il faut utiliser les clés primaires de chacune des tables.
0
Bonjour DelNC,

Merci beaucoup pour votre retour!

Il se trouve que j'ai effectivement mes tables suivantes:
la table Slarié, la table AugmentationSalarié et la table PromotionSalarié, (les 2 dernieres sont du type ID augmentation, MatriculeSalarié, Date augmentation, montant et remarques.

J'ai aussi des tables Pôle, service, statut et niveau que j'ai regroupé dans la table Salarié,

Je ne sais pas comment faire en sorte que les 6 dernières augmentations ressortent par exemple, et qu'il y ait une alerte si quelqu'un n'a pas été augmenté depuis 3 ans. Pouvoir sortir un Etat avec les dernières actions sur les 6 dernières années pour avoir une vie d'ensemble,

Merci par avance :)
0
Re Bonjour et encore merci DelNC pour vos conseils,

J'ai réussi a créer quelque chose qui tient à peu près debout!

Il y a juste une chose sur laquelle je bloque: j'arrive avec ma requête à faire ressortir les salariés n'ayant pas été augmenté depuis 3 ans (grâce à ma table Augmentation) mais je n'arrive pas a faire apparaitre ceux qui n'ont jamais été augmenté du tout! (puisqu'ils ne sont pas liés à la table Augmentation),

Auriez vous une solution mirable?? :)

Merci!
0
DelNC Messages postés 2234 Date d'inscription samedi 25 octobre 2014 Statut Membre Dernière intervention 22 février 2020 2 002
13 oct. 2015 à 12:01
Bonjour,

je pense qu'il faut utiliser une sous requête Not in.

Je vais voir si j'y arrive
0