Vous :
Pièce jointe 425338
Moi :
Pièce jointe 425339
Avec mon Camion 2540
Pièce jointe 425356
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
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
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.
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 ;
Résultat final…
Tadammmmmmmmm
Vous m'impressionnez vraiment, vous est un AS
Pièce jointe 425362
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 ;
J'adore le résultat, Vous êtes vraiment un Pro fsmrel…
On trinque, vous le méritez bien LoL
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.
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
ohhhh le petit pouce ???? Désolé fsmrel, je vais retourner en arrière pour cliquer sur les petits pouces ……. Je suis désolé…..
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.
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
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.
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.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager