IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage SQL Discussion :

Auto jointure : 1 seul SQL possible?


Sujet :

Langage SQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 7
    Par défaut Auto jointure : 1 seul SQL possible?
    Bonjour,

    Je rencontre la problématique suivante :
    soit la table employé suivante employe(id_emp, niv_emp, num_emp) avec les enregistrements suivants :
    id_emp niv_emp num_emp
    1 3 10
    2 4 101
    3 4 111
    4 4 121
    5 3 15
    6 4 151
    7 4 161
    8 4 170
    ...

    la zone niv_emp étant l'équivalent du niveau hiérarchique de l'employé.
    L'objectif est de ramener tous les employés de niveau 4 avec leur supérieur hiérarchique de niveau 3, avec la règle d'appartenance suivante :
    le supérieur hiérarchique d'un employe de niveau 4 est le num_emp (niv_emp=3) le plus proche des 2 premiers chiffres de num_emp(niv_emp=4) ET supérieur au 2 premiers chiffres de num_emp(niv_emp=3).

    De manière à obtenir le résultat suivant :
    num_emp_niv3 num_emp_niv4
    10 101
    10 111
    10 121
    15 151
    15 161
    15 170

    En espérant me faire comprendre.

    D'avance merci de votre aide.

  2. #2
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    22 002
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 22 002
    Billets dans le blog
    6
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    CREATE TABLE T_EMPLOYE_EMP 
    (id_emp  INT,
     niv_emp INT,
     num_emp INT)
     
    INSERT INTO T_EMPLOYE_EMP VALUES (1, 3, 10)
    INSERT INTO T_EMPLOYE_EMP VALUES (2, 4, 101)
    INSERT INTO T_EMPLOYE_EMP VALUES (3, 4, 111)
    INSERT INTO T_EMPLOYE_EMP VALUES (4, 4, 121)
    INSERT INTO T_EMPLOYE_EMP VALUES (5, 3, 15)
    INSERT INTO T_EMPLOYE_EMP VALUES (6, 4, 151)
    INSERT INTO T_EMPLOYE_EMP VALUES (7, 4, 161)
    INSERT INTO T_EMPLOYE_EMP VALUES (8, 4, 170)
     
    SELECT E1.*, (SELECT MAX(E2.num_emp)
                  FROM   T_EMPLOYE_EMP E2
                  WHERE  E2.num_emp <= CEILING(CAST(E1.num_emp AS FLOAT) / 10.0) ) AS SUP
    FROM   T_EMPLOYE_EMP E1
    WHERE  NUM_EMP >= 100
     
    id_emp      niv_emp     num_emp     SUP
    ----------- ----------- ----------- -----------
    2           4           101         10
    3           4           111         10
    4           4           121         10
    6           4           151         15
    7           4           161         15
    8           4           170         15
    Bref, apprendre SQL...
    Mon site web, comme mes bouquins sont là pour vous aider !!!

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 7
    Par défaut merci
    Merci beaucoup,

    très agréablement surpris de la rapidité et du professionnalisme.
    Je ne peux tester la solution car j'ai basculé sur un autre projet.
    Je ne manquerai pas de tester le réponse.
    merci encore.

Discussions similaires

  1. Auto-jointure externe sur SQL server
    Par djam21 dans le forum Designer
    Réponses: 6
    Dernier message: 01/12/2011, 17h42
  2. [kettle-pdi] jointure sans SQL possible ?
    Par kaljerhom dans le forum kettle/PDI
    Réponses: 2
    Dernier message: 20/04/2011, 15h20
  3. [Hibernate] Auto jointure possible?
    Par GyZmoO dans le forum Hibernate
    Réponses: 0
    Dernier message: 02/12/2009, 17h52
  4. Ecriture Requete SQL auto-jointure
    Par telynor dans le forum Langage SQL
    Réponses: 5
    Dernier message: 28/05/2007, 23h50
  5. [SQL Serveur] update auto jointure
    Par profy dans le forum Langage SQL
    Réponses: 4
    Dernier message: 29/05/2006, 16h10

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo