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

Schéma Discussion :

Maintenance de camions


Sujet :

Schéma

  1. #601
    Membre averti Avatar de ordigil
    Homme Profil pro
    Recherche et développement sur la protection de la vie privée.
    Inscrit en
    Juillet 2018
    Messages
    695
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Recherche et développement sur la protection de la vie privée.
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juillet 2018
    Messages : 695
    Points : 379
    Points
    379
    Par défaut
    Mais ils n'ont pas sorti dans l'ordre comme dans votre premier tableau




    Citation Envoyé par fsmrel Voir le message
    Of course. Cherchez dans le script « -- tentative de doublon : on rejette »
      0  0

  2. #602
    Membre averti Avatar de ordigil
    Homme Profil pro
    Recherche et développement sur la protection de la vie privée.
    Inscrit en
    Juillet 2018
    Messages
    695
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Recherche et développement sur la protection de la vie privée.
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juillet 2018
    Messages : 695
    Points : 379
    Points
    379
      0  0

  3. #603
    Membre averti Avatar de ordigil
    Homme Profil pro
    Recherche et développement sur la protection de la vie privée.
    Inscrit en
    Juillet 2018
    Messages
    695
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Recherche et développement sur la protection de la vie privée.
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juillet 2018
    Messages : 695
    Points : 379
    Points
    379
    Par défaut
    Avec mon Camion 2540


    Pièce jointe 425356
      1  0

  4. #604
    Membre averti Avatar de ordigil
    Homme Profil pro
    Recherche et développement sur la protection de la vie privée.
    Inscrit en
    Juillet 2018
    Messages
    695
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Recherche et développement sur la protection de la vie privée.
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juillet 2018
    Messages : 695
    Points : 379
    Points
    379
    Par défaut
    J'ai rajouté ça, ça fait joli

    SELECT '' AS AXLE_CAMION_INSTAL, CamionVIN, CamionNumber, AxleSerialNumber, Fabriquant, PositionCode
    , ComposantInstallationDate, ComposantDesInstallationDate
    FROM COMPOSANT_AFFECTATION AS x JOIN COMPOSANT AS y on x.ComposantId = y.ComposantId
    JOIN AXLE AS z on x.ComposantId = z.ComposantId
    JOIN AXLE_POSITION AS t on x.PositionId = t.PositionId
    JOIN CAMION AS u on x.LocalisationId = u.CamionId
    ORDER BY CamionVIN

    ;


    Pièce jointe 425358





      1  0

  5. #605
    Membre averti Avatar de ordigil
    Homme Profil pro
    Recherche et développement sur la protection de la vie privée.
    Inscrit en
    Juillet 2018
    Messages
    695
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Recherche et développement sur la protection de la vie privée.
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juillet 2018
    Messages : 695
    Points : 379
    Points
    379
    Par défaut
    AXLE_CAMION_INSTALL avec 2 L dans INSTALL



    SELECT '' AS AXLE_CAMION_INSTALL, CamionVIN, CamionNumber, AxleSerialNumber, Fabriquant, PositionCode
    , ComposantInstallationDate, ComposantDesInstallationDate
    FROM COMPOSANT_AFFECTATION AS x JOIN COMPOSANT AS y on x.ComposantId = y.ComposantId
    JOIN AXLE AS z on x.ComposantId = z.ComposantId
    JOIN AXLE_POSITION AS t on x.PositionId = t.PositionId
    JOIN CAMION AS u on x.LocalisationId = u.CamionId
    ORDER BY CamionVIN
      0  0

  6. #606
    Expert éminent sénior
    Avatar de fsmrel
    Homme Profil pro
    Spécialiste en bases de données
    Inscrit en
    Septembre 2006
    Messages
    8 002
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Spécialiste en bases de données
    Secteur : Conseil

    Informations forums :
    Inscription : Septembre 2006
    Messages : 8 002
    Points : 30 905
    Points
    30 905
    Billets dans le blog
    16
    Par défaut
    Et le GAWR, est en droit de se manifester :

    SELECT '' AS AXLE_CAMION_INSTALL, CamionVIN, CamionNumber, AxleSerialNumber, GAWR, Fabriquant, PositionCode
            , ComposantInstallationDate, ComposantDesInstallationDate 
    FROM   COMPOSANT_AFFECTATION AS x JOIN COMPOSANT AS y on x.ComposantId = y.ComposantId 
                                      JOIN AXLE AS z on x.ComposantId = z.ComposantId
                                      JOIN AXLE_POSITION AS t on x.PositionId = t.PositionId
                                      JOIN CAMION AS u on x.LocalisationId = u.CamionId
    ORDER BY CamionVIN
     
    (a) Faites simple, mais pas plus simple ! (A. Einstein)
    (b) Certes, E=mc², mais si on discute un peu, on peut l’avoir pour beaucoup moins cher... (G. Lacroix, « Les Euphorismes de Grégoire »)
    => La relativité n'existerait donc que relativement aux relativistes (Jean Eisenstaedt, « Einstein et la relativité générale »)

    __________________________________
    Bases de données relationnelles et normalisation : de la première à la sixième forme normale
    Modéliser les données avec MySQL Workbench
    Je ne réponds pas aux questions techniques par MP. Les forums sont là pour ça.
      1  0

  7. #607
    Membre averti Avatar de ordigil
    Homme Profil pro
    Recherche et développement sur la protection de la vie privée.
    Inscrit en
    Juillet 2018
    Messages
    695
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Recherche et développement sur la protection de la vie privée.
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juillet 2018
    Messages : 695
    Points : 379
    Points
    379
    Par défaut
    Ouiiiiiiiiiiiiiii avec le GAWR.....On l'avait oublié celui-là hahaha..........… De cette façon, ça fait encore plus joli je trouve

    SELECT '' AS AXLE_CAMION_INSTALL, CamionVIN, CamionNumber, GAWR, AxleSerialNumber, Fabriquant, PositionCode
            , ComposantInstallationDate, ComposantDesInstallationDate 
    FROM   COMPOSANT_AFFECTATION AS x JOIN COMPOSANT AS y on x.ComposantId = y.ComposantId 
                                     JOIN AXLE AS z on x.ComposantId = z.ComposantId
                                     JOIN AXLE_POSITION AS t on x.PositionId = t.PositionId
                                     JOIN CAMION AS u on x.LocalisationId = u.CamionId
    
    ORDER BY CamionVIN ASC
        ,CASE PositionCode 
         WHEN 'FRGAWR' THEN 1
         WHEN '1INTGAWR' THEN 2
         WHEN '2INTGAWR' THEN 3
         WHEN '3INTGAWR' THEN 4
         WHEN '4INTGAWR' THEN 5
         WHEN '5INTGAWR' THEN 6
         WHEN '6INTGAWR' THEN 7
         WHEN 'REARGAWR' THEN 8
         WHEN 'TAG' THEN 9
         END
    ;
    
      1  0

  8. #608
    Membre averti Avatar de ordigil
    Homme Profil pro
    Recherche et développement sur la protection de la vie privée.
    Inscrit en
    Juillet 2018
    Messages
    695
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Recherche et développement sur la protection de la vie privée.
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juillet 2018
    Messages : 695
    Points : 379
    Points
    379
    Par défaut
    Résultat final…

    Tadammmmmmmmm
    Vous m'impressionnez vraiment, vous est un AS

    Pièce jointe 425362
      1  0

  9. #609
    Membre averti Avatar de ordigil
    Homme Profil pro
    Recherche et développement sur la protection de la vie privée.
    Inscrit en
    Juillet 2018
    Messages
    695
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Recherche et développement sur la protection de la vie privée.
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juillet 2018
    Messages : 695
    Points : 379
    Points
    379
    Par défaut
    Version finale si vous approuvez, j'ai placé GAWR après PositionCode pour que ce soit plus consistant :

    
    SELECT '' AS AXLE_CAMION_INSTALL, CamionVIN, CamionNumber, AxleSerialNumber, Fabriquant, PositionCode, GAWR
            , ComposantInstallationDate, ComposantDesInstallationDate 
    FROM   COMPOSANT_AFFECTATION AS x JOIN COMPOSANT AS y on x.ComposantId = y.ComposantId 
                                     JOIN AXLE AS z on x.ComposantId = z.ComposantId
                                     JOIN AXLE_POSITION AS t on x.PositionId = t.PositionId
                                     JOIN CAMION AS u on x.LocalisationId = u.CamionId
    ORDER BY CamionVIN ASC
        ,CASE PositionCode 
         WHEN 'FRGAWR' THEN 1
         WHEN '1INTGAWR' THEN 2
         WHEN '2INTGAWR' THEN 3
         WHEN '3INTGAWR' THEN 4
         WHEN '4INTGAWR' THEN 5
         WHEN '5INTGAWR' THEN 6
         WHEN '6INTGAWR' THEN 7
         WHEN 'REARGAWR' THEN 8
         WHEN 'TAG' THEN 9
         END
    ;
      1  0

  10. #610
    Membre averti Avatar de ordigil
    Homme Profil pro
    Recherche et développement sur la protection de la vie privée.
    Inscrit en
    Juillet 2018
    Messages
    695
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Recherche et développement sur la protection de la vie privée.
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juillet 2018
    Messages : 695
    Points : 379
    Points
    379
    Par défaut
    J'adore le résultat, Vous êtes vraiment un Pro fsmrel…



    On trinque, vous le méritez bien LoL

      1  0

  11. #611
    Expert éminent sénior
    Avatar de fsmrel
    Homme Profil pro
    Spécialiste en bases de données
    Inscrit en
    Septembre 2006
    Messages
    8 002
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Spécialiste en bases de données
    Secteur : Conseil

    Informations forums :
    Inscription : Septembre 2006
    Messages : 8 002
    Points : 30 905
    Points
    30 905
    Billets dans le blog
    16
    Par défaut
    Pour trinquer, no problem !

    Mais vous ne votez plus depuis un moment, je vais m'étioler…
    (a) Faites simple, mais pas plus simple ! (A. Einstein)
    (b) Certes, E=mc², mais si on discute un peu, on peut l’avoir pour beaucoup moins cher... (G. Lacroix, « Les Euphorismes de Grégoire »)
    => La relativité n'existerait donc que relativement aux relativistes (Jean Eisenstaedt, « Einstein et la relativité générale »)

    __________________________________
    Bases de données relationnelles et normalisation : de la première à la sixième forme normale
    Modéliser les données avec MySQL Workbench
    Je ne réponds pas aux questions techniques par MP. Les forums sont là pour ça.
      1  0

  12. #612
    Membre averti Avatar de ordigil
    Homme Profil pro
    Recherche et développement sur la protection de la vie privée.
    Inscrit en
    Juillet 2018
    Messages
    695
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Recherche et développement sur la protection de la vie privée.
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juillet 2018
    Messages : 695
    Points : 379
    Points
    379
    Par défaut
    Modification dernière minute LoL...… Avec toutes les corrections et en Mettant la première lettre des mots en Majuscule pour que ce soit plus joli :

    
    BEGIN TRANSACTION ;
    
    ALTER TABLE DIFF_AXLE DROP CONSTRAINT DIFF_AXLE_AXLE_FK ;
    
    IF EXISTS(SELECT name FROM sysobjects WHERE type='TR' AND name = 'AXLE_AFFECTATION_CAMION_INSERT_TR') DROP TRIGGER AXLE_AFFECTATION_CAMION_INSERT_TR ;
    
    IF EXISTS(SELECT name FROM sysobjects WHERE type='V' AND name = 'AXLE_AFFECTATION_CAMION') DROP VIEW AXLE_AFFECTATION_CAMION ;
    
    IF EXISTS(SELECT name FROM sysobjects WHERE type='U' AND name = 'COMPOSANT_AFFECTATION')    DROP TABLE COMPOSANT_AFFECTATION ;
    IF EXISTS(SELECT name FROM sysobjects WHERE type='U' AND name = 'AXLE')    DROP TABLE AXLE ;
    IF EXISTS(SELECT name FROM sysobjects WHERE type='U' AND name = 'AXLE_POSITION')    DROP TABLE AXLE_POSITION ;
    
    DELETE FROM CAMION WHERE LOWER(CamionVIN) LIKE 'post#%'
    
    CREATE TABLE AXLE_POSITION
    (
            PositionId              INT             NOT NULL
          , PositionCode            VARCHAR(12)     NOT NULL
       , CONSTRAINT AXLE_POSITION_PK PRIMARY KEY (PositionId)
       , CONSTRAINT AXLE_POSITION_AK UNIQUE (PositionCode)
    ) ;
    
    INSERT INTO AXLE_POSITION VALUES (0, 'Sans objet') ; -- pour les composants qui ne sont pas des essieux
    INSERT INTO AXLE_POSITION VALUES (1, 'FRGAWR') ;
    INSERT INTO AXLE_POSITION VALUES (2, 'REARGAWR') ;
    INSERT INTO AXLE_POSITION VALUES (3, 'TAG') ;
    INSERT INTO AXLE_POSITION VALUES (4, '1INTGAWR') ;
    INSERT INTO AXLE_POSITION VALUES (5, '2INTGAWR') ;
    INSERT INTO AXLE_POSITION VALUES (6, '3INTGAWR') ;
    INSERT INTO AXLE_POSITION VALUES (7, '4INTGAWR') ;
    INSERT INTO AXLE_POSITION VALUES (8, '5INTGAWR') ;
    INSERT INTO AXLE_POSITION VALUES (9, '6INTGAWR') ;
    INSERT INTO AXLE_POSITION VALUES (10, '7INTGAWR') ;
    INSERT INTO AXLE_POSITION VALUES (11, '8INTGAWR') ;
    
    --------------------------------------------------------
    -- Affectation des composants aux camions
    --------------------------------------------------------
    CREATE TABLE COMPOSANT_AFFECTATION 
    (
            ComposantId                     INT             NOT NULL
          , ComposantAffectationId          INT  IDENTITY   NOT NULL
          , ComposantInstallationDate       DATE            NOT NULL
          , ComposantDesInstallationDate    DATE            NOT NULL  DEFAULT '9999-12-31'
          , PositionId                      INT             NOT NULL  DEFAULT 0 
          , LocalisationId                  INT             NOT NULL
        , CONSTRAINT COMPOSANT_AFFECTATION_PK PRIMARY KEY (ComposantId, ComposantAffectationId)
        , CONSTRAINT COMPOSANT_AFFECTATION_AK UNIQUE (ComposantId, ComposantInstallationDate)
        , CONSTRAINT COMPOSANT_AFFECTATION_COMPOSANT_FK FOREIGN KEY (ComposantId) 
                     REFERENCES  COMPOSANT (ComposantId)
        , CONSTRAINT COMPOSANT_AFFECTATION_MOTEUR_LOCALISATION_FK FOREIGN KEY (LocalisationId) 
                     REFERENCES  LOCALISATION (LocalisationId)
        , CONSTRAINT COMPOSANT_AFFECTATION_CHECK01 CHECK (ComposantDesInstallationDate > ComposantInstallationDate OR ComposantInstallationDate = '9999-12-31')
        , CONSTRAINT COMPOSANT_AFFECTATION_POSITION FOREIGN KEY (PositionId) REFERENCES AXLE_POSITION (PositionId)
    );
    
    CREATE TABLE AXLE 
    (
            ComposantId              INT             NOT NULL
          , AxleSerialNumber         VARCHAR(25)     NOT NULL
          , AxleSeries               VARCHAR(15)     NOT NULL DEFAULT '0'
          , AxleLock                 VARCHAR(3)      NOT NULL DEFAULT 'NO'
          , AxleType                 VARCHAR(12)     NOT NULL DEFAULT '2NDForward'
          , GAWR                     SMALLINT        NOT NULL DEFAULT 0
          , AxleGVWR                 SMALLINT        NOT NULL DEFAULT 0
          , AxleTorque               SMALLINT        NOT NULL DEFAULT 0
       , CONSTRAINT AXLE_PK PRIMARY KEY (ComposantId)
        , CONSTRAINT AXLE_AK UNIQUE (AxleSerialNumber)
        , CONSTRAINT AXLE_COMPOSANT_FK FOREIGN KEY (ComposantId)
              REFERENCES COMPOSANT (ComposantId) ON DELETE CASCADE
        , CONSTRAINT AXLE_COMPOSANT_LOCK_CHK CHECK (LOWER(AxleLock) IN ('yes', 'no'))
        , CONSTRAINT AXLE_COMPOSANT_TYPE_CHK CHECK (LOWER(AxleType) IN ('front', '2ndfront', '2ndforward', '3rdforward', 'rear', 'pusher', 'tag'))
    );
    
    ----------------------------------------
    -- Affectation des axles (essieux)
    ---------------------------------------
    GO
    CREATE VIEW AXLE_AFFECTATION_CAMION (CamionVIN, NumeroSerie, InstallationDate, DesInstallationDate, Position)
    AS
    SELECT CamionVIN, AxleSerialNumber, ComposantInstallationDate, ComposantDesInstallationDate, PositionCode
    FROM   AXLE AS x JOIN COMPOSANT_AFFECTATION AS y ON x.ComposantId = y.ComposantId
                       JOIN CAMION AS z ON y.LocalisationId = z.CamionId
                       JOIN AXLE_POSITION AS t ON  y.PositionId = t.PositionId
    ;
    GO
    ------------------------------------------------------------------------------------------
    -- Affectation des axles aux camions : trigger AXLE_AFFECTATION_CAMION_INSERT_TR
    ------------------------------------------------------------------------------------------
    CREATE TRIGGER AXLE_AFFECTATION_CAMION_INSERT_TR ON AXLE_AFFECTATION_CAMION INSTEAD OF INSERT
    AS
    BEGIN
    
    DECLARE @ComposantId           AS  INT ;
    DECLARE @CamionId              AS  INT ;
    DECLARE @CamionVIN             AS  VARCHAR(25) ;
    DECLARE @NumeroSerie           AS  VARCHAR(25) ;
    DECLARE @InstalDate            AS  DATE ;
    DECLARE @DesInstalDate         AS  DATE ;
    DECLARE @PositionId            AS  INT = 0 ;
    DECLARE @PositionCode          AS  VARCHAR(16) ;
    DECLARE @Engueulade            AS  VARCHAR(128) ;
    DECLARE @N    AS  INT ;
    DECLARE @CamionVINconnu        AS  CHAR(1) = 'Y' 
    DECLARE @NumeroSerieConnu      AS  CHAR(1) = 'Y' 
    DECLARE @PositionConnue        AS  CHAR(1) = 'Y'
    DECLARE @PositionUnique        AS  CHAR(1) = 'Y'
    DECLARE @AK                    AS  INT ;
    -------------------------------------------------------------------------------------------------
    -- Contrôles préliminaires 
    --
    -- Si INSERTED est vide, c'est que la localisation et/ou
    -- le composant n'existent pas dans la base de données.
    ------------------------------------------------------------------
    
    --------pour debug : --------------SELECT '====AXLE_AFFECTATION_CAMION_INSERT_TR===='  ;
    -------pour debug : ------- SELECT (SELECT COUNT(*) from INSERTED) AS  'COUNT(*) from INSERTED' ;
    
    IF (SELECT COUNT(*) from INSERTED) = 0
        BEGIN 
             SET @Engueulade = 'Affectation de composant(s) : axle et/ou camion manquants'
             SELECT @Engueulade AS Engueulons
     --------        RAISERROR (@Engueulade,16,1)  -- state = 16 pour bloquer  
             RAISERROR (@Engueulade,0,1)  -- state = 0 pour les tests 
             RETURN
        END
    
    ------------------------------------------------------------------------------------------------
    -- Si l'attribut CamionVIN est marqué NULL par SQL, c'est qu'il n'a pas été valorisé,
    -- donc on rouspète et on sort.
    ------------------------------------------------------------------------------------------------
    
    -------pour debug  -------select (SELECT COUNT(*) FROM INSERTED WHERE CamionVIN IS NULL) as 'COUNT(*) FROM INSERTED WHERE CamionVIN IS NULL' 
    
    IF (SELECT COUNT(*) FROM INSERTED WHERE CamionVIN IS NULL) > 0
        BEGIN
             SET @Engueulade = 'Affectation d''axle(s) : Camion VIN manquant'
             SELECT @Engueulade AS Engueulons, * FROM INSERTED
     --------        RAISERROR (@Engueulade,16,1)  -- state = 16 pour bloquer  
             RAISERROR (@Engueulade,0,1)  -- state = 0 pour les tests 
             RETURN
        END
    
    -------------------------------------------------------------------------------------------------------------
    -- Si l'attribut NumeroSerie est marqué NULL par SQL, c'est qu'il n'a pas été valorisé,
    -- donc on rouspète et on sort.
    -------------------------------------------------------------------------------------------------------------
    
    -------pour debug  -------SET @N = (SELECT COUNT(*) FROM INSERTED WHERE NumeroSerie IS NULL) ;
    
    IF (SELECT COUNT(*) FROM INSERTED WHERE NumeroSerie IS NULL) > 0
        BEGIN 
             SET @Engueulade = 'Affectation d''axle(s) : numéro de série axle manquant'
             SELECT @Engueulade AS Engueulons, * FROM INSERTED
     --------        RAISERROR (@Engueulade,16,1)  -- state = 16 pour bloquer  
             RAISERROR (@Engueulade,0,1)  -- state = 0 pour les tests 
             RETURN
        END
    
    ------------------------------------------------------ 
    -- Le camion et le composant ne sont pas nuls,
    -- mais pas plus d'une paire à la fois SVP !
    -------------------------------------------------------
    
    IF (SELECT COUNT(*) FROM INSERTED) > 1
        BEGIN 
             SET @Engueulade = 'Une seule paire camion/axle à la fois SVP !'
             SELECT @Engueulade AS Engueulons, * FROM INSERTED
     --------        RAISERROR (@Engueulade,16,1)  -- state = 16 pour bloquer  
             RAISERROR (@Engueulade,0,1)  -- state = 0 pour les tests 
             RETURN
        END
    
    --------------------------------------------------------------------
    -- On vérifie l'existence du camion et on récupère le CamionId 
    -------------------------------------------------------------------
    
    SET @CamionVIN = (SELECT CamionVIN FROM INSERTED) ;
    ---- pour debug ---select @CamionVIN as '@CamionVIN'
    SET @CamionId = (SELECT CamionId FROM CAMION WHERE CamionVIN = @CamionVIN) ;
    
    -------pour debug  -------select @CamionId as '@CamionId'
    
    IF @CamionId IS NULL
        BEGIN 
             SET @CamionVINconnu = 'N'
             SET @Engueulade = 'Affectation d''axle : CamionVIN inconnu : ''' + @CamionVIN + ''''
    --------        RAISERROR (@Engueulade,16,1)  -- state = 16 pour bloquer  
             RAISERROR (@Engueulade,0,1)  -- state = 0 pour les tests
    ----     pas de RETURN, il est exécuté plus bas		  
        END
    
    ----------------------------------------------------------------------------------
    -- On vérifie l'existence du composant et on vérifie son numéro de série
    ---------------------------------------------------------------------------------
    
    SET @NumeroSerie = (SELECT NumeroSerie FROM INSERTED) ;
    
    SET @ComposantId = (SELECT ComposantId FROM AXLE WHERE AxleSerialNumber = @NumeroSerie) ;
    
    IF @ComposantId IS NULL
        BEGIN 
             SET @NumeroSerieConnu = 'N'
             SET @Engueulade = 'Affectation d''axle : Numéro de série axle inconnu : ''' + @NumeroSerie + ''''
    --------        RAISERROR (@Engueulade,16,1)  -- state = 16 pour bloquer  
             RAISERROR (@Engueulade,0,1)  -- state = 0 pour les tests 
    ----     pas de RETURN, il est exécuté plus bas	
         END
    ----------------------------------------------------------------------------------
    -- On vérifie la validité de la position
    ---------------------------------------------------------------------------------
    
    SET @PositionCode = (SELECT Position FROM INSERTED) ;
    
    SET @PositionId = (SELECT PositionId FROM AXLE_POSITION WHERE PositionCode = @PositionCode) ;
    ---- pour debug -------select @PositionId as '@PositionId'
    ---- pour debug -------select  @PositionCode as '@PositionCode'
    IF @PositionId IS NULL
        BEGIN 
             SET @PositionConnue = 'N'
             SET @Engueulade = 'Affectation d''axle : Position de code inconnu : ''' +@PositionCode + ''''
    --------        RAISERROR (@Engueulade,16,1)  -- state = 16 pour bloquer  
             RAISERROR (@Engueulade,0,1)  -- state = 0 pour les tests 
    ----     pas de RETURN, il est exécuté plus bas	
         END
    
    IF @CamionVINconnu = 'N' OR @NumeroSerieconnu = 'N' OR @PositionConnue = 'N' OR @PositionUnique = 'N'
        BEGIN 
            SELECT 'affectation axle - camion refusée (voir Messages)'
            RETURN
        END
    ----------------------------------------------------------------------------------
    -- On vérifie qu'un camion n'est pas affecté deux fois de la même position
    ---------------------------------------------------------------------------------
    
    SET @AK = (SELECT COUNT(*) FROM COMPOSANT_AFFECTATION 
               WHERE  LocalisationId = @CamionId AND PositionId = @PositionId) ;
    ---- pour debug ---- select @CamionId as '@CamionId', @PositionId as '@PositionId', @AK AS '@AK' 
    IF @AK > 0
        BEGIN 
             SET @PositionUnique = 'N'
             SET @Engueulade = 'Affectation d''axle (''' + @NumeroSerie + ''') : doublon interdit pour la même position ''' + @PositionCode + ''' (camion ''' + @CamionVIN + ''')'
    --------        RAISERROR (@Engueulade,16,1)  -- state = 16 pour bloquer  
             RAISERROR (@Engueulade,0,1)  -- state = 0 pour les tests 
    ----     pas de RETURN, il est exécuté plus bas	
         END
    
    IF @CamionVINconnu = 'N' OR @NumeroSerieconnu = 'N' OR @PositionConnue = 'N' OR @PositionUnique = 'N'
        BEGIN 
            SELECT 'affectation axle - camion refusée (voir Messages)'
            RETURN
        END
    -------------------------------------------------------------------------------------
    -- Tout va bien ! on effectue l'INSERT dans la table COMPOSANT_AFFECTATION.
    -------------------------------------------------------------------------------------
    -- pour debug -- select '' as INSERTED, * from inserted 
    
    -- pour debug -- SET @InstalDate = (SELECT (COALESCE(InstallationDate, (SELECT ComposantDateAchat FROM COMPOSANT WHERE ComposantId = @ComposantId)))
    -- pour debug -- FROM INSERTED)
    -- pour debug -- SET @DesInstalDate = (SELECT (COALESCE(DesInstallationDate, '9999-12-31'))
    -- pour debug --                    FROM INSERTED)
    -- pour debug -- select @InstalDate as '@InstalDate'
    -- pour debug -- select @desInstalDate as '@deInstalDate'
    
     INSERT INTO COMPOSANT_AFFECTATION (ComposantId, ComposantInstallationDate, ComposantDesInstallationDate, PositionId, LocalisationId)
                 SELECT  
                       @ComposantId
                     , COALESCE(InstallationDate, (SELECT ComposantDateAchat FROM COMPOSANT WHERE ComposantId = @ComposantId))
                     , COALESCE(DesInstallationDate, '9999-12-31')
                     , @PositionId
                     , @CamionId 
                  FROM   INSERTED
    ;
    -------pour debug : --- SELECT '' AS 'inside', * FROM COMPOSANT_AFFECTATION WHERE ComposantId = @ComposantId ;
    END
    GO
    
    ---------------------------------------------------
    -- Quelques camions (manufacturier Leclerc)
    ---------------------------------------------------
    INSERT INTO CAMION_LOCALISATION_V (VIN, Immat, DateAchat, Manufacturer, Model, Number, Color)
       SELECT 'post#156', 'immat#156', '2018-11-05', 'Leclerc', 'camion rouge',  '156', 'rouge'  
    ;
    INSERT INTO CAMION_LOCALISATION_V (VIN, Immat, DateAchat, Manufacturer, Model, Number, Color)
       SELECT 'post#423', 'immat#423', '2018-11-05', 'Leclerc', 'camion rouge',  '423', 'fraise écrasée'  
    ;
    INSERT INTO CAMION_LOCALISATION_V (VIN, Immat, DateAchat, Manufacturer, Model, Number, Color)
       SELECT 'post#426', 'immat#426', '2018-11-05', 'Leclerc', 'camion rouge',  '426', 'fraise écrasée'  
    ;
    INSERT INTO CAMION_LOCALISATION_V (VIN, Immat, DateAchat, Manufacturer, Model, Number, Color)
       SELECT 'post#441', 'immat#441', '2018-11-05', 'Leclerc', 'camion rouge',  '441', 'fraise mûre'  
    ;
    INSERT INTO CAMION_LOCALISATION_V (VIN, Immat, DateAchat, Manufacturer, Model, Number, Color)
       SELECT '1FUJGLD68GLGT6928', '0', '2018-11-05', 'Freightliner', 'Cascadia',  '2540', 'White'  
    ;
    --------------------------------------------------
    -- Les essieux du post #577 et leur installation
    -------------------------------------------------
    
    --1---------------------------------
    INSERT INTO AXLE_COMPOSANT_V (NumeroSerie, Fabriquant, Modele, AxleType, GAWR, DateAchat)
        SELECT 'FRONT16156', 'FSMREL', 'modèle fr16' 
    	      , 'Front', 16000  , '2018-11-16'
    ;
    INSERT INTO AXLE_AFFECTATION_CAMION (CamionVIN, NumeroSerie, Position)
        SELECT 'post#156', 'FRONT16156', 'FRGAWR'
    ;
    --2----------------------
    INSERT INTO AXLE_COMPOSANT_V (NumeroSerie, Fabriquant, Modele, AxleType, GAWR, DateAchat)
        SELECT 'FORWARD23156', 'FSMREL', 'modèle fwd23' 
    	      , '2NDForward', 23000  , '2018-11-23'
    ;
    INSERT INTO AXLE_AFFECTATION_CAMION (CamionVIN, NumeroSerie, Position)
        SELECT 'post#156', 'FORWARD23156', '1INTGAWR'
    ;
    
    INSERT INTO AXLE_AFFECTATION_CAMION (CamionVIN, NumeroSerie, Position)    -- tentative de doublon : on rejette
    
        SELECT 'post#156', 'FORWARD23156', 'FRGAWR'
    ;
    --3-----------------------------
    INSERT INTO AXLE_COMPOSANT_V (NumeroSerie, DateAchat, Fabriquant, Modele, AxleType, GAWR)
        SELECT 'REAR23156', '2018-11-20', 'FSMREL', 'modèle rear23' 
    	      , 'Rear', 23000  
    ;
    INSERT INTO AXLE_AFFECTATION_CAMION (CamionVIN, NumeroSerie, Position)
        SELECT 'post#156', 'REAR23156', 'REARGAWR'
    ;
    --4-----------------------
    INSERT INTO AXLE_COMPOSANT_V (NumeroSerie, DateAchat, Fabriquant, Modele, AxleType, GAWR)
        SELECT 'PUSHER8156_1', '2018-11-21', 'FSMREL', 'modèle pusher8' 
    	      , 'Pusher', 8000  
    ;
    INSERT INTO AXLE_AFFECTATION_CAMION (CamionVIN, NumeroSerie, Position)
        SELECT 'post#156', 'PUSHER8156_1', '2INTGAWR'
    ;
    --5-----------------------
    
    INSERT INTO AXLE_COMPOSANT_V (NumeroSerie, DateAchat, Fabriquant, Modele, AxleType, GAWR)
        SELECT 'PUSHER8156_2', '2018-11-22', 'FSMREL', 'modèle pusher8' 
    	      , 'Pusher', 8000  
    ;
    INSERT INTO AXLE_AFFECTATION_CAMION (CamionVIN, NumeroSerie, Position)
        SELECT 'post#156', 'PUSHER8156_2', '3INTGAWR'
    ;
    --6----------------------------------------------
    INSERT INTO AXLE_COMPOSANT_V (NumeroSerie, DateAchat, Fabriquant, Modele, AxleType, GAWR)
        SELECT 'PUSHER8156_3', '2018-11-23', 'FSMREL', 'modèle pusher8' 
    	      , 'Pusher', 8000  
    ;
    INSERT INTO AXLE_AFFECTATION_CAMION (CamionVIN, NumeroSerie, Position)
        SELECT 'post#156', 'PUSHER8156_3', '4INTGAWR'
    ;
    --7---------------------------------------------
    INSERT INTO AXLE_COMPOSANT_V (NumeroSerie, DateAchat, Fabriquant, Modele, AxleType, GAWR)
        SELECT 'PUSHER8156_4', '2018-11-24', 'FSMREL', 'modèle pusher8' 
    	      , 'Pusher', 8000  
    ;
    INSERT INTO AXLE_AFFECTATION_CAMION (CamionVIN, NumeroSerie, Position)
        SELECT 'post#156', 'PUSHER8156_4', '5INTGAWR'
    ;
    --8------------------------------------------------
    
    INSERT INTO AXLE_COMPOSANT_V (NumeroSerie, DateAchat, Fabriquant, Modele, AxleType, GAWR)
        SELECT 'FRONT14426', '2018-11-26', 'FSMREL', 'modèle fr14' 
    	      , 'Front', 14000  
    ;
    INSERT INTO AXLE_AFFECTATION_CAMION (CamionVIN, NumeroSerie, Position)
        SELECT 'post#426', 'FRONT14426', 'FRGAWR'
    ;
    
    INSERT INTO AXLE_COMPOSANT_V (NumeroSerie, DateAchat, Fabriquant, Modele, AxleType, GAWR)
        SELECT '2NDFORWARD22426', '2018-11-27', 'FSMREL', 'modèle 2fw22' 
    	      , '2NDForward', 22000  
    ;
    INSERT INTO AXLE_AFFECTATION_CAMION (CamionVIN, NumeroSerie, Position)
        SELECT 'post#426', '2NDFORWARD22426', '1INTGAWR'
    ;
    
    INSERT INTO AXLE_COMPOSANT_V (NumeroSerie, DateAchat, Fabriquant, Modele, AxleType, GAWR)
        SELECT '3RDFORWARD22426', '2018-11-27', 'FSMREL', 'modèle 3fw22' 
    	      , '3RDForward', 22000  
    ;
    INSERT INTO AXLE_AFFECTATION_CAMION (CamionVIN, NumeroSerie, Position)
        SELECT 'post#426', '3RDFORWARD22426', '2INTGAWR'
    ;
    
    INSERT INTO AXLE_COMPOSANT_V (NumeroSerie, DateAchat, Fabriquant, Modele, AxleType, GAWR)
        SELECT 'REAR22426', '2018-11-28', 'FSMREL', 'modèle Rear22' 
    	      , 'Rear', 22000  
    ;
    INSERT INTO AXLE_AFFECTATION_CAMION (CamionVIN, NumeroSerie, Position)
        SELECT 'post#426', 'REAR22426', 'REARGAWR'
    ;
    
    ---441---------------------------------
    INSERT INTO AXLE_COMPOSANT_V (NumeroSerie, DateAchat, Fabriquant, Modele, AxleType, GAWR)
        SELECT 'FRONT14441', '2018-11-14', 'FSMREL', 'modèle fr14' 
    	      , 'Front', 14000  
    ;
    INSERT INTO AXLE_AFFECTATION_CAMION (CamionVIN, NumeroSerie, Position)
        SELECT 'post#441', 'FRONT14441', 'FRGAWR'
    ;
    ---------------------
    INSERT INTO AXLE_COMPOSANT_V (NumeroSerie, DateAchat, Fabriquant, Modele, AxleType, GAWR)
        SELECT '2NDFRONT14441', '2018-12-14', 'FSMREL', 'modèle 2ndfr14' 
    	      , '2NDFront', 14000  
    ;
    INSERT INTO AXLE_AFFECTATION_CAMION (CamionVIN, NumeroSerie, Position)
        SELECT 'post#441', '2NDFRONT14441', '6INTGAWR'
    ;
    ------------------------------
    
    INSERT INTO AXLE_COMPOSANT_V (NumeroSerie, DateAchat, Fabriquant, Modele, AxleType, GAWR)
        SELECT '2NDFORWARD22441', '2018-11-24', 'FSMREL', 'modèle 2fw22' 
    	      , '2NDForward', 22000  
    ;
    INSERT INTO AXLE_AFFECTATION_CAMION (CamionVIN, NumeroSerie, Position)
        SELECT 'post#441', '2NDFORWARD22441', '1INTGAWR'
    ;
    INSERT INTO AXLE_COMPOSANT_V (NumeroSerie, DateAchat, Fabriquant, Modele, AxleType, GAWR)
        SELECT 'REAR22441', '2018-11-24', 'FSMREL', 'modèle rearw22' 
    	      , 'Rear', 22000  
    ;
    INSERT INTO AXLE_AFFECTATION_CAMION (CamionVIN, NumeroSerie, Position)
        SELECT 'post#441', 'REAR22441', 'REARGAWR'
    ;
    
    INSERT INTO AXLE_COMPOSANT_V (NumeroSerie, DateAchat, Fabriquant, Modele, AxleType, GAWR)
        SELECT 'PUSH12441_1', (SELECT CamionDateAchat FROM CAMION WHERE CamionVIN = 'post#441'), 'FSMREL', 'modèle push12' 
    	      , 'Pusher', 12000  
    ;
    INSERT INTO AXLE_AFFECTATION_CAMION (CamionVIN, NumeroSerie, Position)
        SELECT 'post#441', 'PUSH12441_1', '2INTGAWR'
    ;
    -----------------
    INSERT INTO AXLE_COMPOSANT_V (NumeroSerie, DateAchat, Fabriquant, Modele, AxleType, GAWR)
        SELECT 'PUSH12441_2', (SELECT CamionDateAchat FROM CAMION WHERE CamionVIN = 'post#441'), 'FSMREL', 'modèle push12' 
    	      , 'Pusher', 12000  
    ;
    INSERT INTO AXLE_AFFECTATION_CAMION (CamionVIN, NumeroSerie, Position)
        SELECT 'post#441', 'PUSH12441_2', '3INTGAWR'
    ;
    -----423---------------------------------------
    
    INSERT INTO AXLE_COMPOSANT_V (NumeroSerie, DateAchat, Fabriquant, Modele, AxleType, GAWR)
        SELECT 'FRONT14423', (SELECT CamionDateAchat FROM CAMION WHERE CamionVIN = 'post#423'), 'FSMREL', 'modèle fr14' 
    	      , 'Front', 14000  
    ;
    INSERT INTO AXLE_AFFECTATION_CAMION (CamionVIN, NumeroSerie, Position)
        SELECT 'post#423', 'FRONT14423', 'FRGAWR'
    ;
    ----------------------------
    
    INSERT INTO AXLE_COMPOSANT_V (NumeroSerie, DateAchat, Fabriquant, Modele, AxleType, GAWR)
        SELECT '2NDFORWARD22423', (SELECT CamionDateAchat FROM CAMION WHERE CamionVIN = 'post#423'), 'FSMREL', 'modèle 2fw22' 
    	      , '2NDForward', 22000  
    ;
    INSERT INTO AXLE_AFFECTATION_CAMION (CamionVIN, NumeroSerie, Position)
        SELECT 'post#423', '2NDFORWARD22423', '1INTGAWR'
    ;
    ------------------------------------------------
    INSERT INTO AXLE_COMPOSANT_V (NumeroSerie, DateAchat, Fabriquant, Modele, AxleType, GAWR)
        SELECT 'REAR22423', (SELECT CamionDateAchat FROM CAMION WHERE CamionVIN = 'post#423'), 'FSMREL', 'modèle rear22' 
    	      , 'Rear', 22000  
    ;
    INSERT INTO AXLE_AFFECTATION_CAMION (CamionVIN, NumeroSerie, Position)
        SELECT 'post#423', 'REAR22423', 'REARGAWR'
    ;
    --------------------------------------------------
    
    INSERT INTO AXLE_COMPOSANT_V (NumeroSerie, DateAchat, Fabriquant, Modele, AxleType, GAWR)
        SELECT 'PUSH12423', (SELECT CamionDateAchat FROM CAMION WHERE CamionVIN = 'post#423'), 'FSMREL', 'modèle push12' 
    	      , 'Pusher', 12000  
    ;
    INSERT INTO AXLE_AFFECTATION_CAMION (CamionVIN, NumeroSerie, Position)
        SELECT 'post#423', 'PUSH12423', '2INTGAWR'
    ;
    --------------------------------------
    
    INSERT INTO AXLE_COMPOSANT_V (NumeroSerie, DateAchat, Fabriquant, Modele, AxleType, GAWR)
        SELECT 'TAG12423', (SELECT CamionDateAchat FROM CAMION WHERE CamionVIN = 'post#423'), 'FSMREL', 'modèle tag12' 
    	      , 'Tag', 12000  
    ;
    INSERT INTO AXLE_AFFECTATION_CAMION (CamionVIN, NumeroSerie, Position)
        SELECT 'post#423', 'TAG12423', 'TAG'
    ;
    ---2540---------------------------------
    INSERT INTO AXLE_COMPOSANT_V (NumeroSerie, DateAchat, Fabriquant, Modele, AxleType, GAWR)
        SELECT '739912-A559224', '2015-04-02', 'Mercedes Benz', 'F-133-3N' 
    	      , 'Front', 14000  
    ;
    INSERT INTO AXLE_AFFECTATION_CAMION (CamionVIN, NumeroSerie, Position)
        SELECT '1FUJGLD68GLGT6928', '739912-A559224', 'FRGAWR'
    ;
    ---------------------
    
    INSERT INTO AXLE_COMPOSANT_V (NumeroSerie, DateAchat, Fabriquant, Modele, AxleType, GAWR)
        SELECT 'FOR03144562', '2015-04-02', 'Timken_Detroit', 'MP-20-14X' 
    	      , '2NDForward', 22000  
    ;
    INSERT INTO AXLE_AFFECTATION_CAMION (CamionVIN, NumeroSerie, Position)
        SELECT '1FUJGLD68GLGT6928', 'FOR03144562', '1INTGAWR'
    ;
    INSERT INTO AXLE_COMPOSANT_V (NumeroSerie, DateAchat, Fabriquant, Modele, AxleType, GAWR)
        SELECT 'FOR03144563', '2015-04-02', 'Timken_Detroit', 'MR-20-14X' 
    	      , 'Rear', 22000  
    ;
    INSERT INTO AXLE_AFFECTATION_CAMION (CamionVIN, NumeroSerie, Position)
        SELECT '1FUJGLD68GLGT6928', 'FOR03144563', 'REARGAWR'
    ;
    
    
    SELECT '' AS AXLE_CAMION_INSTALL, CamionVIN, CamionNumber, AxleSerialNumber, Fabriquant, AxleType, PositionCode, GAWR
            , ComposantInstallationDate, ComposantDesInstallationDate 
    FROM   COMPOSANT_AFFECTATION AS x JOIN COMPOSANT AS y on x.ComposantId = y.ComposantId 
                                     JOIN AXLE AS z on x.ComposantId = z.ComposantId
                                     JOIN AXLE_POSITION AS t on x.PositionId = t.PositionId
                                     JOIN CAMION AS u on x.LocalisationId = u.CamionId
    ORDER BY CamionVIN ASC
        ,CASE PositionCode 
         WHEN 'FRGAWR' THEN 1
         WHEN '1INTGAWR' THEN 2
         WHEN '2INTGAWR' THEN 3
         WHEN '3INTGAWR' THEN 4
         WHEN '4INTGAWR' THEN 5
         WHEN '5INTGAWR' THEN 6
         WHEN '6INTGAWR' THEN 7
         WHEN 'REARGAWR' THEN 8
         WHEN 'TAG' THEN 9
         END
    ;
    
    ROLLBACK ;
    

    Pièce jointe 425371
      1  0

  13. #613
    Membre averti Avatar de ordigil
    Homme Profil pro
    Recherche et développement sur la protection de la vie privée.
    Inscrit en
    Juillet 2018
    Messages
    695
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Recherche et développement sur la protection de la vie privée.
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juillet 2018
    Messages : 695
    Points : 379
    Points
    379
    Par défaut
    Comment je dois faire pour voter ????? Je m'excuse, dites-moi ce que je dois faire


    Citation Envoyé par fsmrel Voir le message
    Pour trinquer, no problem !

    Mais vous ne votez plus depuis un moment, je ne vais m'étioler…
      0  0

  14. #614
    Membre averti Avatar de ordigil
    Homme Profil pro
    Recherche et développement sur la protection de la vie privée.
    Inscrit en
    Juillet 2018
    Messages
    695
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Recherche et développement sur la protection de la vie privée.
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juillet 2018
    Messages : 695
    Points : 379
    Points
    379
    Par défaut
    ohhhh le petit pouce ???? Désolé fsmrel, je vais retourner en arrière pour cliquer sur les petits pouces ……. Je suis désolé…..
      0  0

  15. #615
    Membre averti Avatar de ordigil
    Homme Profil pro
    Recherche et développement sur la protection de la vie privée.
    Inscrit en
    Juillet 2018
    Messages
    695
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Recherche et développement sur la protection de la vie privée.
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juillet 2018
    Messages : 695
    Points : 379
    Points
    379
    Par défaut
    Je suis retourné en arrière mettre plein de pouces
      1  0

  16. #616
    Expert éminent sénior
    Avatar de fsmrel
    Homme Profil pro
    Spécialiste en bases de données
    Inscrit en
    Septembre 2006
    Messages
    8 002
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Spécialiste en bases de données
    Secteur : Conseil

    Informations forums :
    Inscription : Septembre 2006
    Messages : 8 002
    Points : 30 905
    Points
    30 905
    Billets dans le blog
    16
    Par défaut
    Merci pour les pouces !

    Plutôt que de vous échiner à mettre les majuscules et tout ça à chaque insert, utilisez la technique du feignant, faites-le de préférence au moment de la présentation du résultat :

     
    SELECT '' AS AXLE_CAMION_INSTALL, CamionVIN, CamionNumber, AxleSerialNumber, Fabriquant
            , CASE AxleType
                  WHEN LOWER('front') THEN 'Front'
                  WHEN LOWER('2NDfront') THEN '2NDFront'
                  WHEN LOWER('2NDforward') THEN '2NDForward'
                  WHEN LOWER('3rdforward') THEN '3RDForward'
                  WHEN LOWER('rear') THEN 'Rear'
                  WHEN LOWER('pusher') THEN 'Pusher'
                  WHEN LOWER('tag') THEN 'Tag'
                  ELSE '??'
              END
            , PositionCode, GAWR
            , ComposantInstallationDate, ComposantDesInstallationDate 
    FROM   COMPOSANT_AFFECTATION AS x JOIN COMPOSANT AS y on x.ComposantId = y.ComposantId 
                                      JOIN AXLE AS z on x.ComposantId = z.ComposantId
                                      JOIN AXLE_POSITION AS t on x.PositionId = t.PositionId
                                      JOIN CAMION AS u on x.LocalisationId = u.CamionId
    ORDER BY CamionVIN
        ,CASE PositionCode 
         WHEN 'FRGAWR' THEN 1
         WHEN '1INTGAWR' THEN 2
         WHEN '2INTGAWR' THEN 3
         WHEN '3INTGAWR' THEN 4
         WHEN '4INTGAWR' THEN 5
         WHEN '5INTGAWR' THEN 6
         WHEN '6INTGAWR' THEN 7
         WHEN 'REARGAWR' THEN 8
         WHEN 'TAG' THEN 9
         END
    
    (a) Faites simple, mais pas plus simple ! (A. Einstein)
    (b) Certes, E=mc², mais si on discute un peu, on peut l’avoir pour beaucoup moins cher... (G. Lacroix, « Les Euphorismes de Grégoire »)
    => La relativité n'existerait donc que relativement aux relativistes (Jean Eisenstaedt, « Einstein et la relativité générale »)

    __________________________________
    Bases de données relationnelles et normalisation : de la première à la sixième forme normale
    Modéliser les données avec MySQL Workbench
    Je ne réponds pas aux questions techniques par MP. Les forums sont là pour ça.
      1  0

  17. #617
    Membre averti Avatar de ordigil
    Homme Profil pro
    Recherche et développement sur la protection de la vie privée.
    Inscrit en
    Juillet 2018
    Messages
    695
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Recherche et développement sur la protection de la vie privée.
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juillet 2018
    Messages : 695
    Points : 379
    Points
    379
    Par défaut
    Dans la version finale du site WEB l'usagé aura à choisir dans des 'ComboBox'. De cette façon la première lettre sera en majuscule et il sera forcé d'utiliser les termes que nous avons convenu… Par contre on retient votre choix dans la BD, c'est une bonne idée
      0  0

  18. #618
    Expert éminent sénior
    Avatar de fsmrel
    Homme Profil pro
    Spécialiste en bases de données
    Inscrit en
    Septembre 2006
    Messages
    8 002
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Spécialiste en bases de données
    Secteur : Conseil

    Informations forums :
    Inscription : Septembre 2006
    Messages : 8 002
    Points : 30 905
    Points
    30 905
    Billets dans le blog
    16
    Par défaut
    J'ai quand même réussi à être distrait ! Pour le CASE, il faut évidemment coder :

            , CASE LOWER(AxleType)
                  WHEN ('front') THEN 'Front'
                  WHEN ('2ndfront') THEN '2NDFront'
                  WHEN ('2ndforward') THEN '2NDForward'
                  WHEN ('3rdforward') THEN '3RDForward'
                  WHEN ('rear') THEN 'Rear'
                  WHEN ('pusher') THEN 'Pusher'
                  WHEN ('tag') THEN 'Tag'
                  ELSE '??'
              END
    
    (a) Faites simple, mais pas plus simple ! (A. Einstein)
    (b) Certes, E=mc², mais si on discute un peu, on peut l’avoir pour beaucoup moins cher... (G. Lacroix, « Les Euphorismes de Grégoire »)
    => La relativité n'existerait donc que relativement aux relativistes (Jean Eisenstaedt, « Einstein et la relativité générale »)

    __________________________________
    Bases de données relationnelles et normalisation : de la première à la sixième forme normale
    Modéliser les données avec MySQL Workbench
    Je ne réponds pas aux questions techniques par MP. Les forums sont là pour ça.
      1  0

  19. #619
    Membre averti Avatar de ordigil
    Homme Profil pro
    Recherche et développement sur la protection de la vie privée.
    Inscrit en
    Juillet 2018
    Messages
    695
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Recherche et développement sur la protection de la vie privée.
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juillet 2018
    Messages : 695
    Points : 379
    Points
    379
    Par défaut
    No column name for AxleType
      0  0

  20. #620
    Expert éminent sénior
    Avatar de fsmrel
    Homme Profil pro
    Spécialiste en bases de données
    Inscrit en
    Septembre 2006
    Messages
    8 002
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Spécialiste en bases de données
    Secteur : Conseil

    Informations forums :
    Inscription : Septembre 2006
    Messages : 8 002
    Points : 30 905
    Points
    30 905
    Billets dans le blog
    16
    Par défaut
    Bien vu ! on répare :

            , CASE lower(AxleType)
                  WHEN ('front') THEN 'Front'
                  WHEN ('2ndfront') THEN '2NDFront'
                  WHEN ('2ndforward') THEN '2NDForward'
                  WHEN ('3rdforward') THEN '3RDForward'
                  WHEN ('rear') THEN 'Rear'
                  WHEN ('pusher') THEN 'Pusher'
                  WHEN ('tag') THEN 'Tag'
                  ELSE '??'
              END AS AxleType
    
    (a) Faites simple, mais pas plus simple ! (A. Einstein)
    (b) Certes, E=mc², mais si on discute un peu, on peut l’avoir pour beaucoup moins cher... (G. Lacroix, « Les Euphorismes de Grégoire »)
    => La relativité n'existerait donc que relativement aux relativistes (Jean Eisenstaedt, « Einstein et la relativité générale »)

    __________________________________
    Bases de données relationnelles et normalisation : de la première à la sixième forme normale
    Modéliser les données avec MySQL Workbench
    Je ne réponds pas aux questions techniques par MP. Les forums sont là pour ça.
      1  0

Discussions similaires

  1. Ajout dans une table et relation avec d'autres
    Par climz dans le forum Access
    Réponses: 5
    Dernier message: 12/05/2006, 15h32
  2. Création table et relations
    Par ptitdragon_eric dans le forum Langage SQL
    Réponses: 3
    Dernier message: 10/09/2005, 13h37
  3. table de relation
    Par tanjonaravelson dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 21/06/2005, 18h20
  4. Table de relation et sélection via jointure
    Par 73672 dans le forum Langage SQL
    Réponses: 11
    Dernier message: 09/11/2004, 09h33
  5. Problème avec mes tables de relation...
    Par mmike dans le forum PostgreSQL
    Réponses: 4
    Dernier message: 02/06/2003, 15h16

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