par
guigui69 » 19 févr. 2015, 13:03
Bonjour à tous,
J'ai une requête qui récupère les informations des mes salariées, dans la table en question j'ai plusieurs ligne pour un salarié.
Il y a plusieurs ligne car la personne peut avoir évoluée (changement de poste /hausse du salaraire etc..)
Voici ma requete
Code : Tout sélectionner
SELECT DISTINCT concessions.nom as nomconcessions,
rhp2.nom as nom, rhp2.prenom as prenom,
rhpn.nom_nationalite as nationalite,
rhp2.adresse as adresse,
rhp2.cp as cp,
rhp2.ville as ville,
DATE_FORMAT(date_entree,'%d/%m/%Y')as`date_entree`,
DATE_FORMAT(date_sortie,'%d/%m/%Y')as`date_sortie`,
DATE_FORMAT(date_naissance,'%d/%m/%Y')as`date`,`sexe`,
(Select min(date_debut)
FROM `rh_personnel_suivi` rhps
INNER JOIN rh_personnel rhp ON rhp.id_rhp = rhps.id_rhp
WHERE
rhp.id_rhp=rhp2.id_rhp
) as tttt,(Select max(if(date_fin='0000-00-00','2099-12-31',date_fin))
FROM `rh_personnel_suivi` rhps
INNER JOIN rh_personnel rhp ON rhp.id_rhp = rhps.id_rhp
WHERE
rhp.id_rhp=rhp2.id_rhp)
as tttt2,
nom_emploi as emploi,
CONCAT(nom_classification,'-', nom_echelon) as classification,
nom_contrat as type,
date_vm,
rhps.id_concessions
FROM `rh_personnel_suivi` rhps
INNER JOIN concessions on concessions.id_concessions=rhps.id_concessions
INNER JOIN rh_personnel rhp2 ON rhp2.id_rhp = rhps.id_rhp
INNER JOIN rh_personnel_nationalite rhpn ON rhpn.id_rhpn=rhp2.id_rhpn
INNER JOIN rh_personnel_classification rhpc ON rhpc.id_rhpc = rhps.id_rhpc
INNER JOIN rh_personnel_echelon rhpe ON rhpe.id_rhpe = rhps.id_rhpe
INNER JOIN rh_personnel_type_suivi rhpts ON rhpts.id_rhpts = rhps.id_suivi
INNER JOIN rh_personnel_type_emploi rhpte ON rhpte.id_rhpte = rhps.id_rhpte
INNER JOIN rh_personnel_type_contrat_travail rhptct ON rhptct.id_rhptct = rhps.id_rhptct
WHERE rhps.id_concessions IN ('1')
ORDER BY concessions.nom, rhp2.nom, rhps.id_rhps
Mais je cherche comment faire pour qu'il me ressort uniquement le dernier ligne (enregistrement) par salarié. En champs j'ai un ID_unique de rh_personnel_suivi ou bien la date (date_debut) qui est forcement plus grande que la précédent.
Est-ce que sais possible ou pas ?
Merci d'avance pour vos explications
guigui69
Bonjour à tous,
J'ai une requête qui récupère les informations des mes salariées, dans la table en question j'ai plusieurs ligne pour un salarié.
Il y a plusieurs ligne car la personne peut avoir évoluée (changement de poste /hausse du salaraire etc..)
Voici ma requete
[code]
SELECT DISTINCT concessions.nom as nomconcessions,
rhp2.nom as nom, rhp2.prenom as prenom,
rhpn.nom_nationalite as nationalite,
rhp2.adresse as adresse,
rhp2.cp as cp,
rhp2.ville as ville,
DATE_FORMAT(date_entree,'%d/%m/%Y')as`date_entree`,
DATE_FORMAT(date_sortie,'%d/%m/%Y')as`date_sortie`,
DATE_FORMAT(date_naissance,'%d/%m/%Y')as`date`,`sexe`,
(Select min(date_debut)
FROM `rh_personnel_suivi` rhps
INNER JOIN rh_personnel rhp ON rhp.id_rhp = rhps.id_rhp
WHERE
rhp.id_rhp=rhp2.id_rhp
) as tttt,(Select max(if(date_fin='0000-00-00','2099-12-31',date_fin))
FROM `rh_personnel_suivi` rhps
INNER JOIN rh_personnel rhp ON rhp.id_rhp = rhps.id_rhp
WHERE
rhp.id_rhp=rhp2.id_rhp)
as tttt2,
nom_emploi as emploi,
CONCAT(nom_classification,'-', nom_echelon) as classification,
nom_contrat as type,
date_vm,
rhps.id_concessions
FROM `rh_personnel_suivi` rhps
INNER JOIN concessions on concessions.id_concessions=rhps.id_concessions
INNER JOIN rh_personnel rhp2 ON rhp2.id_rhp = rhps.id_rhp
INNER JOIN rh_personnel_nationalite rhpn ON rhpn.id_rhpn=rhp2.id_rhpn
INNER JOIN rh_personnel_classification rhpc ON rhpc.id_rhpc = rhps.id_rhpc
INNER JOIN rh_personnel_echelon rhpe ON rhpe.id_rhpe = rhps.id_rhpe
INNER JOIN rh_personnel_type_suivi rhpts ON rhpts.id_rhpts = rhps.id_suivi
INNER JOIN rh_personnel_type_emploi rhpte ON rhpte.id_rhpte = rhps.id_rhpte
INNER JOIN rh_personnel_type_contrat_travail rhptct ON rhptct.id_rhptct = rhps.id_rhptct
WHERE rhps.id_concessions IN ('1')
ORDER BY concessions.nom, rhp2.nom, rhps.id_rhps
[/code]
Mais je cherche comment faire pour qu'il me ressort uniquement le dernier ligne (enregistrement) par salarié. En champs j'ai un ID_unique de rh_personnel_suivi ou bien la date (date_debut) qui est forcement plus grande que la précédent.
Est-ce que sais possible ou pas ?
Merci d'avance pour vos explications
guigui69