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

Développement SQL Server Discussion :

Afficher une table en fonction d'une autre table


Sujet :

Développement SQL Server

  1. #1
    Membre régulier
    Homme Profil pro
    ETUDE
    Inscrit en
    septembre 2016
    Messages
    352
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : ETUDE
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : septembre 2016
    Messages : 352
    Points : 116
    Points
    116
    Par défaut Afficher une table en fonction d'une autre table
    Bonjour le forum;
    j'ai une table contract et une table licenciement je souhait faire une requête qui m'affiche la liste des contract s'il n'existe pas dans la table licenciement
    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
    29
    30
    31
    32
    33
    34
    CREATE TABLE [dbo].[contrat](
    	IdEmployer [int] IDENTITY(1,1) NOT NULL,
    	[Matricule] [varchar](60) NULL,
    	[Nom] [varchar](300) NOT NULL,
    	[sexe] [varchar](1) NOT NULL,
    	[dateNaissance] [datetime] NULL,
    	[daterecrutement] [datetime] NULL,
    	[datefincontrat] [datetime] NULL,
    	[Dateretraite] [datetime] NULL,
    	[lieu] [varchar](60) NULL,
    	[CNI] [varchar](60) NOT NULL,
    	[cnps] [varchar](60) NOT NULL,
    	[pere] [varchar](60) NULL,
    	[mere] [varchar](30) NULL,
    	[Nationalite] [varchar](60) NOT NULL,
    	[contact] [varchar](60) NOT NULL,
    	[Mail] [varchar](60) NULL,
    	[photo] [image] NULL,	
    	[Idtypeemploi] int foreign key references typeemploi([Idtypeemploi]) NOT NULL,
    	[Idcategorie] int foreign key references categorie([Idcategorie]) NOT NULL,
    	[IdEntite] int foreign key references Entite([IdEntite]) NOT NULL,
    	[Idcontrat] int foreign key references typecontrat([Idcontrat]) NOT NULL,
    	[IdDepartement] int foreign key references Departement([IdDepartement]) NOT NULL,
    	[IdPoste] int foreign key references poste([IdPoste]) NOT NULL,
    	[IdSituationFamilial] int foreign key references SituationFamilial([IdSituationFamilial]) NOT NULL,
    	[IdAgences] int foreign key references Agencesdaffectation([IdAgences]) NOT NULL,
    	[IdUtilisateur] int foreign key references UTILISATEUR([IdUtilisateur]) NOT NULL,
    	IdModepaiement int foreign key references Modepaiement(IdModepaiement) not null,
    PRIMARY KEY CLUSTERED 
    (
    	[IdEmployer] ASC
    )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
    ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
    GO
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    --------------------------------------------------------Licenciement---------------------------------------------
    create table Licenciement
    (
    IdTLicenciement int identity(1,1) primary key not null,
       Dates date not null,
    [IdEmployer] int foreign key references [dbo].[contrat]([IdEmployer]) not null,
    IdTypelicenciement int foreign key references Typelicenciement(IdTypelicenciement) not null,
    Preavis nvarchar(250),
    Observation nvarchar(250),
    Montant decimal(18,6)
    )
    pouvez me proposer une solution car avec les conditions de jointures je ne parviens pas?

  2. #2
    Membre confirmé
    Homme Profil pro
    db@
    Inscrit en
    septembre 2021
    Messages
    229
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : db@

    Informations forums :
    Inscription : septembre 2021
    Messages : 229
    Points : 644
    Points
    644
    Par défaut
    Consultez un cours sur les jointures externes.
    https://sqlpro.developpez.com/cours/sqlaz/jointures/

  3. #3
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    mars 2010
    Messages
    9 203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : bourreau
    Secteur : Finance

    Informations forums :
    Inscription : mars 2010
    Messages : 9 203
    Points : 34 618
    Points
    34 618
    Billets dans le blog
    3
    Par défaut
    Bonjour,

    Des cours sur la modélisation des données seraient aussi à suivre, car quand on voit la pléthore de foreign key dans une même table, la pléthore de colonnes "nullables" et le typage des données, on sait d'emblée que le modèle est très mal conçu.

    Un modèle de données mal conçu, c'est une intégrité non garantie, des requêtes complexes et contre performantes.

    Il y a un forum consacré à la modélisation, il se trouve ICI, n'hésitez pas à y poser des questions.

  4. #4
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    mai 2002
    Messages
    21 360
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : mai 2002
    Messages : 21 360
    Points : 51 165
    Points
    51 165
    Billets dans le blog
    1
    Par défaut
    C'est une requête basique...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT C.*
    FROM   [dbo].[contrat] AS C
           LEFT OUTER JOIN dbo.Licenciement AS L
              ON C.IdEmployer  = L.IdEmployer 
    WHERE  L.IdEmployer IS NULL;
    Je suis de plus en plus atterré par le niveau de méconnaissance du SQL ! Fait-on encore des cours de SQL dans les écoles ?

    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/ * * * * *

  5. #5
    Membre confirmé
    Homme Profil pro
    db@
    Inscrit en
    septembre 2021
    Messages
    229
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : db@

    Informations forums :
    Inscription : septembre 2021
    Messages : 229
    Points : 644
    Points
    644
    Par défaut
    Citation Envoyé par SQLpro Voir le message
    Je suis de plus en plus atterré par le niveau de méconnaissance du SQL !
    La jointure externe est rendue un niveau expert en SQL

  6. #6
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    mars 2010
    Messages
    9 203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : bourreau
    Secteur : Finance

    Informations forums :
    Inscription : mars 2010
    Messages : 9 203
    Points : 34 618
    Points
    34 618
    Billets dans le blog
    3
    Par défaut
    J'aime bien le nom de type varchar(300)

    Contrôle de police, vous vous appelez bien "martin abadie dos santos mac gregor le bihan patapopoulos di mello dupont maakinen van den brügen" comme mentionné sur votre carte d'identité format A4 ?

  7. #7
    Membre confirmé
    Homme Profil pro
    db@
    Inscrit en
    septembre 2021
    Messages
    229
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : db@

    Informations forums :
    Inscription : septembre 2021
    Messages : 229
    Points : 644
    Points
    644
    Par défaut
    Citation Envoyé par escartefigue Voir le message
    J'aime bien le nom de type varchar(300)


    Il y a tellement à redire..
    Juste une sélection :

    [sexe] [varchar](1) NOT NULL, => CHAR(1)
    [dateNaissance] [datetime] NULL, => DATE
    [photo] [image] NULL, => déprécié depuis la version 2005 de mémoire
    Observation nvarchar(250), => dans 99.9% des cas, l'unicode est inutile
    Montant decimal(18,6) => J'aimerai tellement comprendre la logique d'un montant d'argent avec 6 décimales...

  8. #8
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    mai 2002
    Messages
    21 360
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : mai 2002
    Messages : 21 360
    Points : 51 165
    Points
    51 165
    Billets dans le blog
    1
    Par défaut
    Surtout que le DATETIME est déconseillé....

    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/ * * * * *

  9. #9
    Membre éclairé
    Homme Profil pro
    Chef de projet
    Inscrit en
    mars 2017
    Messages
    280
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : mars 2017
    Messages : 280
    Points : 653
    Points
    653
    Par défaut
    Citation Envoyé par SQLpro Voir le message
    C'est une requête basique...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT C.*
    FROM   [dbo].[contrat] AS C
           LEFT OUTER JOIN dbo.Licenciement AS L
              ON C.IdEmployer  = L.IdEmployer 
    WHERE  L.IdEmployer IS NULL;
    Je suis de plus en plus atterré par le niveau de méconnaissance du SQL ! Fait-on encore des cours de SQL dans les écoles ?

    A +
    Le dernier "cours" que j'ai vu pour un de mes alternants présentait une table avec une colonne alphanumérique qui était clé unique, modifiable par l'utilisateur, et la table ne possédait pas d'identifiant automatique.
    J'imagine que cela donne un début de réponse...

Discussions similaires

  1. [technique] Cacher la vrai URL et afficher une autre URL ?
    Par schnito dans le forum Général Conception Web
    Réponses: 21
    Dernier message: 04/01/2012, 13h54
  2. Réponses: 20
    Dernier message: 18/05/2010, 19h42
  3. Afficher une autre image apres un refresh
    Par pierrot10 dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 29/06/2007, 09h45
  4. Réponses: 1
    Dernier message: 11/04/2006, 17h48
  5. afficher une autre page apres le clic d1 bouton submit
    Par tramacere dans le forum Langage
    Réponses: 7
    Dernier message: 25/01/2006, 17h00

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