Auto inscrivez-vous pour obtenir de l'employé nom du gestionnaire
Bonjour, j'ai un Employé de Tableau avec les colonnes suivantes
Emp_id, Emp_Name and Mgr_id.
Je suis en train de créer une vue qui liste
Emp_id, Emp_name, Mgr_id and Mgr_name
(par la croix de rejoindre la table des Employés). J'ai essayé de jointure externe, jointure interne, etc, mais je ne suis pas en mesure d'obtenir ce droit.
Toute aide est très appréciée.
CREATE TABLE [dbo].[tblEmployeeDetails](
[emp_id] [bigint] NOT NULL,
[emp_name] [nvarchar](200) NULL,
[emp_mgr_id] [bigint] NULL, CONSTRAINT [PK_tblEmployeeDetails] PRIMARY KEY CLUSTERED (
[emp_id] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY]
- Regarder en arrière dans vos notes de cours pour les "auto-jointure"
- Veuillez mettre à jour votre question & fournir les détails complets.
- Il semble que nous avons besoin de deviner à vos exigences. Veuillez fournir de plus amples informations, sinon nous tous perdre notre temps.
Vous devez vous connecter pour publier un commentaire.
MODIFIER:
Left Join de travailler si emp_mgr_id est null.
Essayer ça, c'est une JOINTURE sur elle-même pour obtenir le gestionnaire 🙂
Cette définition utilise une jointure externe gauche ce qui signifie que même les employés dont le gestionnaire de l'ID est NULL, ou dont le gestionnaire a été supprimé (si votre application le permet) seront inscrits, avec leur gestionnaire des attributs retournés comme NULL.
Si vous avez utilisé une jointure interne au lieu de cela, seules les personnes qui ont les gestionnaires seront affichés dans la liste.
Essayer celui-ci.
Comme Jesse dit, l'utilisation des auto-jointure:
LEFT JOIN
pasINNER
. J'ai mis à jour ma réponse.essayer ..ce que vous devez faire
LEFT JOIN
à igore des valeurs null dans la tableEn outre, vous voudrez peut-être obtenir des gestionnaires et de leurs rapports compter avec -
*Voici le lien vers SQL jouer avec un exemple de travail.
http://www.sqlfiddle.com/#!17/392b5/9