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

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

Langage SQL Discussion :

Afficher deux colonnes pour un même champ


Sujet :

Langage SQL

  1. #1
    Membre à l'essai Avatar de Dredall
    Homme Profil pro
    Etudiant en Apprentissage
    Inscrit en
    Février 2014
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Etudiant en Apprentissage
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2014
    Messages : 16
    Points : 16
    Points
    16
    Par défaut Afficher deux colonnes pour un même champ
    Bonjour,
    Je dois faire une requête me permettant de récupérer des données de production.
    Cependant j'aurai besoin de séparer en deux colonnes les données d'un même champ mais représentant deux type de données différentes.
    J'ai écris et testé la requête suivante :
    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
    SELECT	DISTINCT SZ_NUMERO_UNIQUE AS Boucle2,
    		(CASE
    			WHEN	PROD_GENE_PROCESS.N_ID_GENERIQUE_PROCESS = 59 THEN PROD_GENE_PROCESS.SZ_VALEUR_PARAM
    		END
    		) AS USN,
    		SZ_TTNR AS Reference,
    		(CASE
    			WHEN	PROD_GENE_PROCESS.N_ID_GENERIQUE_PROCESS = 59 THEN PROD_PROCESS_STATION.DT_DATE_HEURE_PROCESS
    		END
    		) AS ProductionDate,
    		(CASE
    			WHEN	PROD_GENE_PROCESS.N_ID_GENERIQUE_PROCESS = 80 THEN PROD_GENE_PROCESS.SZ_VALEUR_PARAM
    		END
    		) AS Boucle1
     
     
    FROM		TRACABILITE_EXPLOIT.dbo.PROD_GENE_PROCESS
     
    INNER JOIN	TRACABILITE_EXPLOIT.dbo.PROD_PROCESS_STATION
    ON			PROD_PROCESS_STATION.N_ID_PROCESS = PROD_GENE_PROCESS.N_ID_PROCESS
    AND			PROD_PROCESS_STATION.N_ID_STATION = PROD_GENE_PROCESS.N_ID_STATION
    AND			PROD_PROCESS_STATION.N_ID_PROD_PROCESS_STATION = PROD_GENE_PROCESS.N_ID_PROD_PROCESS_STATION
     
    INNER JOIN	TRACABILITE_EXPLOIT.dbo.GENERIQUE_PROCESS
    ON			GENERIQUE_PROCESS.N_ID_PROCESS = PROD_GENE_PROCESS.N_ID_PROCESS
    AND			GENERIQUE_PROCESS.N_ID_GENERIQUE_PROCESS = PROD_GENE_PROCESS.N_ID_GENERIQUE_PROCESS
     
    WHERE	PROD_PROCESS_STATION.N_ID_LIGNE = 1
    AND		((PROD_PROCESS_STATION.N_ID_STATION = 20 AND PROD_PROCESS_STATION.N_ID_PROCESS = 11 AND PROD_GENE_PROCESS.N_ID_GENERIQUE_PROCESS = 59)
    OR		(PROD_PROCESS_STATION.N_ID_STATION = 15 AND PROD_PROCESS_STATION.N_ID_PROCESS = 9 AND PROD_GENE_PROCESS.N_ID_GENERIQUE_PROCESS = 80))
    AND		DT_DATE_HEURE_PROCESS >= '2017-05-03 00:00:00%'
    AND		DT_DATE_HEURE_PROCESS <= '2017-05-03 23:59:59%'
    Mais j'obtiens le résultat suivant :
    Boucle2 USN Reference ProductionDate Boucle1
    202604208529 NULL 0204L69443 NULL 102604191094
    202604208529 02601937696 0204L69443 2017-05-03 00:02:00.688 NULL
    202604208530 NULL 0204L69443 NULL 102604191095
    202604208530 02601937697 0204L69443 2017-05-03 00:02:10.063 NULL

    Au lieu de :
    Boucle2 USN Reference ProductionDate Boucle1
    202604208529 02601937696 0204L69443 2017-05-03 00:02:00.688 102604191094
    202604208530 02601937697 0204L69443 2017-05-03 00:02:10.063 102604191095
    Comme vous pouvez le voir, j'ai essayé d'utiliser un DISTINCT pour merger les lignes avec les mêmes "Boucle2" et rassembler les données sur une ligne au lieu de 2 mais visiblement, ce n'est pas la bonne méthode.
    Quelqu'un saurait m'aider ?

  2. #2
    Rédacteur

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

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

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 769
    Points : 52 720
    Points
    52 720
    Billets dans le blog
    5
    Par défaut
    une remarque...


    Enfin, vous ne dites pas ce que vous voulez obtenir et ne respectez pas la charte de postage... https://www.developpez.net/forums/a6...gage-sql-lire/

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

  3. #3
    Membre à l'essai Avatar de Dredall
    Homme Profil pro
    Etudiant en Apprentissage
    Inscrit en
    Février 2014
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Etudiant en Apprentissage
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2014
    Messages : 16
    Points : 16
    Points
    16
    Par défaut
    Citation Envoyé par SQLpro Voir le message
    Dans une base de données on ne parle pas de champs, mais de colonne. A lire : http://sqlpro.developpez.com/cours/sqlaz/erreurs/#L2 Les champs c'est à la campagne ou dans les formulaire !!!
    J'ai parlé de champ pour éviter d'avoir un nom de discussion comme "Afficher deux colonnes pour une même colonne". C'est tout de même un peu plus difficile à saisir, alors qu'en dérogeant légèrement aux conventions de nommage ça parait plus clair pour le coup.

    Citation Envoyé par SQLpro Voir le message
    Enfin, vous ne dites pas ce que vous voulez obtenir et ne respectez pas la charte de postage... https://www.developpez.net/forums/a6...gage-sql-lire/
    J'ai indiqué :
    Citation Envoyé par Dredall Voir le message
    Au lieu de :
    Boucle2 USN Reference ProductionDate Boucle1
    202604208529 02601937696 0204L69443 2017-05-03 00:02:00.688 102604191094
    202604208530 02601937697 0204L69443 2017-05-03 00:02:10.063 102604191095
    Mais si vous préférez :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    --le résultat attendu :
    Boucle2          USN            Reference     ProductionDate              Boucle1
    ------------     -----------    ----------    -----------------------     -------
    202604208529     02601937696    0204L69443    2017-05-03 00:02:00.688     102604191094
    202604208530     02601937697    0204L69443    2017-05-03 00:02:10.063     102604191095

  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 769
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

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

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 769
    Points : 52 720
    Points
    52 720
    Billets dans le blog
    5
    Par défaut
    ça ne nous donne ni le DDL des tables (CREATE TABLE...), ni ce qu'il y a dans les tables d'origine (INSERT INTO ...). Encore une fois respecter la charte de postage.

    Pour vous aider à faire les scripts de rétro insertion : https://blog.developpez.com/sqlpro/p...ipt-dinsertion

    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 à l'essai Avatar de Dredall
    Homme Profil pro
    Etudiant en Apprentissage
    Inscrit en
    Février 2014
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Etudiant en Apprentissage
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2014
    Messages : 16
    Points : 16
    Points
    16
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    CREATE TABLE GENERIQUE_PROCESS
    (N_ID_GENERIQUE_PROCESS INT NOT NULL,
     N_ID_PROCESS INT NOT NULL,
     N_ID_TYPE INT NOT NULL,
     SZ_NOM NVARCHAR(50) NOT NULL,
     B_CRITIQUE BIT,
     DT_HORODATAGE DATETIME,
     N_STATUT SMALLINT,
     SZ_VARIABLE_API NVARCHAR(50),
     SZ_COMMENTAIRE NVARCHAR(4000),
     CONSTRAINT PK_GENERIQUE_PROCESS PRIMARY KEY (N_ID_GENERIQUE_PROCESS, N_ID_PROCESS),
     CONSTRAINT FK_GENERIQU_RELATION_PROCESS FOREIGN KEY (N_ID_PROCESS)...,
     CONSTRAINT FK_GENERIQU_RELATION_TYPE FOREIGN KEY (N_ID_TYPE)...);
     
     INSERT INTO GENERIQUE_PROCESS (N_ID_GENERIQUE_PROCESS, N_ID_PROCESS, N_ID_TYPE, SZ_NOM, B_CRITIQUE, DT_HORODATAGE, N_STATUT, SZ_VARIABLE_API, SZ_COMMENTAIRE)
     VALUES (3, 3, 3, 'nomParam', 0, CURRENT_TIMESTAMP, -1, 'DefectsTypeTemp', 'unCommentaire');
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    CREATE TABLE PROD_PROCESS_STATION
    (N_ID_PROCESS INT NOT NULL,
     N_ID_STATION INT NOT NULL,
     N_ID_PROD_PROCESS_STATION INT NOT NULL,
     DT_DATE_HEURE_PROCESS NVARCHAR(25) NOT NULL,
     SZ_TTNR NVARCHAR(25) NOT NULL,
     SZ_NUMERO_UNIQUE NVARCHAR(25) NOT NULL,
     B_TRAITE BIT,
     N_ID_LIGNE INT,
     CONSTRAINT PK_PROD_PROCESS_STATION PRIMARY KEY (N_ID_PROCESS, N_ID_STATION, N_ID_PROD_PROCESS_STATION),
     CONSTRAINT FK_PROD_PRO_RELATION_LIGNE FOREIGN KEY (N_ID_LIGNE)...);
     
    INSERT INTO PROD_PROCESS_STATION (N_ID_PROCESS, N_ID_STATION, N_ID_PROD_PROCESS_STATION, DT_DATE_HEURE_PROCESS, SZ_TTNR, SZ_NUMERO_UNIQUE, B_TRAITE, N_ID_LIGNE)
    VALUES (1, 2, 3, '2017-04-05 15:24:32:547', '0204L69443', '202604208529', 1, 3);
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    CREATE TABLE PROD_GENE_PROCESS
    (N_ID_STATION INT NOT NULL,
     N_ID_PROD_PROCESS_STATION INT NOT NULL,
     N_ID_PROCESS INT NOT NULL, 
     N_ID_GENERIQUE_PROCESS INT NOT NULL,
     SZ_VALEUR_PARAM NVARCHAR(50),
     SZ_FORMAT_DONNEE NVARCHAR(25) NOT NULL,
     B_TRAITE BIT,
     CONSTRAINT PK_PROD_GENE_PROCESS PRIMARY KEY (N_ID_PROCESS, N_ID_STATION, N_ID_PROD_PROCESS_STATION, N_ID_GENERIQUE_PROCESS),
     CONSTRAINT FK_PROD_GEN_PROD_GENE_GENERIQUE FOREIGN KEY (N_ID_GENERIQUE_PROCESS)...,
     CONSTRAINT FK_PROD_GEN_PROD_GENE_PROD_PRO FOREIGN KEY (N_ID_PROD_PROCESS_STATION)...);
     
    INSERT INTO PROD_GENE_PROCESS(N_ID_STATION, N_ID_PROD_PROCESS_STATION, N_ID_PROCESS, N_ID_GENERIQUE_PROCESS, SZ_VALEUR_PARAM, SZ_FORMAT_DONNEE, B_TRAITE)
    VALUES (1, 2, 3, 4, '5.48695', 'REAL', 1);

  6. #6
    Rédacteur

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

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

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 769
    Points : 52 720
    Points
    52 720
    Billets dans le blog
    5
    Par défaut
    Il manque encore quel SGBD est utilisé et dans quelle version...

    Petite remarque : je ne sais pas si c'est vous qui avez modélisé la base de données, mais au niveau des clef c'est le zéro pointé... Rien de relationnel là dedans ! Vous en êtes resté aux bases hiérarchiques !

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

  7. #7
    Membre à l'essai Avatar de Dredall
    Homme Profil pro
    Etudiant en Apprentissage
    Inscrit en
    Février 2014
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Etudiant en Apprentissage
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2014
    Messages : 16
    Points : 16
    Points
    16
    Par défaut
    Citation Envoyé par SQLpro Voir le message
    Il manque encore quel SGBD est utilisé et dans quelle version...
    On fonctionne avec Microsoft SQL Server
    Citation Envoyé par SQLpro Voir le message
    je ne sais pas si c'est vous qui avez modélisé la base de données, mais au niveau des clef c'est le zéro pointé... Rien de relationnel là dedans ! Vous en êtes resté aux bases hiérarchiques !
    Je ne suis pas l'auteur de la base, mais je ne vous ai donné que les tables qui concerne le problème ici, je n'ai pas cité toutes les tables car il y en a au total 44, il s'agit d'un système assez complexe de traçabilité.

  8. #8
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 136
    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 : 10 136
    Points : 38 909
    Points
    38 909
    Billets dans le blog
    9
    Par défaut
    Bonjour,

    Les soucis sont multiples :
    • Vous communiquez les ordes d'insertion pour une seule ligne, or, vous attendez un résultat avec 2 lignes dont les valeurs sont différentes, il faut donc à minima 2 ordres insert dans une de vos tables
    • La colonne "SZ_NUMERO_UNIQUE" n'est en rien unique d'après le DDL fourni et en plus, sa définition est différente dans les 2 tables où elle est présente : NVARCHAR(50) d'un coté (!) et VARCHAR(25) de l'autre
    • L'insert qui concerne la table PROD_GENE_PROCESS ne cite pas les colonnes dans l'ordre de la PK, du coup je pense qu'il y a erreur sur les valeurs : vous insérez la PK (3, 1, 2, 4) dans cette table alors que vous insérez (1, 2, 3) pour les 3 premières colonnes communes (et de jointure donc) dans la table PROD_PROCESS_STATION et (3,3) dans la table GENERIQUE_PROCESS. Les valeurs de jointure sont donc aberrantes !


    Et bien sur, une PK sur une colonne unique de type INT (ou BIGINT) si besoin eut été nettement préférable à tout point de vue

    Il faudrait donc idéalement demander une modification du DDL et à minima insérer des valeurs d'identifiants cohérentes entre les différentes tables

  9. #9
    Membre à l'essai Avatar de Dredall
    Homme Profil pro
    Etudiant en Apprentissage
    Inscrit en
    Février 2014
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Etudiant en Apprentissage
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2014
    Messages : 16
    Points : 16
    Points
    16
    Par défaut
    Autant pour moi, la colonne SZ_NUMERO_UNIQUE n'avait rien à faire dans la table PROD_GENE_PROCESS, il faut croire que j'étais un peu fatigué hier, c'est édité dans mon message.
    Dans les INSERT j'ai mis des valeurs aléatoires simplement pour exprimer la forme des données contenue.
    Les PRIMARY KEY sont calculés sur plusieurs colonnes car, je le répète, il s'agit d'un système à 44 tables, qui de plus colle à l'organisation de la production de l'usine. On peut donc comprendre qu'une certaine complexité existe au niveau de la BDD.
    Il n'est en aucun cas envisageable de changer la BDD pour l'instant, il y a beaucoup trop de systèmes qui en découlent, l'impossibilité de perdre des données, et en plus je n'ai clairement pas le temps de reprendre tous les systèmes.

    Maintenant si on pouvait se recadrer sur mon problème plutôt que sur la forme de la BDD ça pourrait être pas mal. Je récupère les données dont j'ai besoin :
    • Un numéro unique sous le nom de "Boucle2"
    • Un second numéro unique sous le nom de "USN" contenu dans la colonne SZ_VALEUR_PARAM pour un N_ID_STATION = 20, un N_ID_PROCESS = 11 et un N_ID_GENERIQUE_PROCESS = 59
    • Un numéro de référence
    • Une date pour les mêmes conditions que l' "USN"
    • Un dernier numéro unique sous le nom de "Boucle1" pour un N_ID_STATION = 15, un N_ID_PROCESS = 9 et un N_ID_GENERIQUE_PROCESS = 80


    Toutes ces valeurs que je récupère sont bonnes. Mon problème est que je récupère ces données sur deux lignes et que j'aimerais qu'elles soient mergées sur une ligne.

  10. #10
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 136
    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 : 10 136
    Points : 38 909
    Points
    38 909
    Billets dans le blog
    9
    Par défaut
    Citation Envoyé par Dredall Voir le message
    Autant pour moi, la colonne SZ_NUMERO_UNIQUE n'avait rien à faire dans la table PROD_GENE_PROCESS, il faut croire que j'étais un peu fatigué hier, c'est édité dans mon message.
    Dans les INSERT j'ai mis des valeurs aléatoires simplement pour exprimer la forme des données contenue.
    Les PRIMARY KEY sont calculés sur plusieurs colonnes car, je le répète, il s'agit d'un système à 44 tables, qui de plus colle à l'organisation de la production de l'usine. On peut donc comprendre qu'une certaine complexité existe au niveau de la BDD.
    Il n'est en aucun cas envisageable de changer la BDD pour l'instant, il y a beaucoup trop de systèmes qui en découlent, l'impossibilité de perdre des données, et en plus je n'ai clairement pas le temps de reprendre tous les systèmes.

    Maintenant si on pouvait se recadrer sur mon problème plutôt que sur la forme de la BDD ça pourrait être pas mal. Je récupère les données dont j'ai besoin :
    J'ai bien conscience qu'on a rarement la possibilité de modifier la structure d'une BDD, c'est la raison pour laquelle il est important de bien modéliser dès le départ.
    L''idée n'est pas de vous en blâmer, d'autant plus que vous n'y êtes pour rien et subissez cet état de fait (j'avais pour cette raison pris la précaution de mentionner "idéalement")
    Celà étant, la complexité est très relative, 40 tables ce n'est rien dans une BDD, et quoi qu'il en soit, ça ne justifie en rien une modélisation hasardeuse, et même au contraire, plus la base est riche, plus il est important d'être rigoureux dans la modélisation. Il est beaucoup plus aisé de garantir l'intégrité des données au moyen d'une PK technique attribuée par le SGBD qu'au travers de colonnes multiples.

    Maintenant, communiquez la VRAIE structure et le VRAI contenu de vos tables, j'ai passé du temps à essayer de comprendre ce qui n'allait pas en fonction du DDL et des ordres INSERT communiqués
    C'est certes du temps pour vous mais aussi pour les contributeurs, qui je le rappelle, sont tous bénévoles

  11. #11
    Membre à l'essai Avatar de Dredall
    Homme Profil pro
    Etudiant en Apprentissage
    Inscrit en
    Février 2014
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Etudiant en Apprentissage
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2014
    Messages : 16
    Points : 16
    Points
    16
    Par défaut
    C'est plus du fait que la BDD doive coller à l'organisation de l'usine qui la rend complexe. Nos lignes de production et leur fonctionnement étaient déjà présentes depuis un moment avant la création de cette base et elle a donc du être construite en fonction. Mais bref le problème n'est pas la.
    Pour la structure des tables, elle est bonne, j'avais seulement l'ajout du "SZ_NUMERO_UNIQUE" dans la table "PROD_GENE_PROCESS" qui était faux et que j'ai édité dans mon message. Pour le contenu :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    INSERT INTO GENERIQUE_PROCESS (N_ID_PROCESS, N_ID_GENERIQUE_PROCESS, N_ID_TYPE, SZ_NOM, B_CRITIQUE, DT_HORODATAGE, N_STATUT, SZ_VARIABLE_API, SZ_COMMENTAIRE)
    VALUES (2, 165, 2, 'SeqResult', 1, '2016-09-13 09:03:49.480', 1, 'Station02_Main.SeqResult', '#100110 OK : 1 / NOK : 2 / NO_RESULT : 0 / REJETS : >2');
     
    INSERT INTO PROD_PROCESS_STATION (N_ID_PROCESS, N_ID_STATION, N_ID_PROD_PROCESS_STATION, DT_DATE_HEURE_PROCESS, SZ_TTNR, SZ_NUMERO_UNIQUE, B_TRAITE, N_ID_LIGNE)
    VALUES (2, 17, 5136504, '2016-10-10 04:13:07.408', '0204004484', '202603610489', 1, 1);
     
    INSERT INTO PROD_GENE_PROCESS (N_ID_STATION, N_ID_PROD_PROCESS_STATION, N_ID_PROCESS, N_ID_GENERIQUE_PROCESS, SZ_VALEUR_PARAM, SZ_FORMAT_DONNEE, B_TRAITE)
    VALUES (17, 5136504, 2, 165, '1', 'DINT', 1);

  12. #12
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Customer Success Manager @Vertica
    Inscrit en
    Septembre 2008
    Messages
    8 452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Customer Success Manager @Vertica
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 452
    Points : 17 820
    Points
    17 820
    Par défaut
    Je n'ai pas pris le temps de lire l'intégralité du fil, néanmoins par rapport aux données initiales et au résultat attendu, il ne vous manque qu'un GROUP BY SZ_NUMERO_UNIQUE, SZ_TTNR et des MAX autour de vos CASE dans le SELECT.
    De facto, le DISTINCT devient inutile.

  13. #13
    Membre à l'essai Avatar de Dredall
    Homme Profil pro
    Etudiant en Apprentissage
    Inscrit en
    Février 2014
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Etudiant en Apprentissage
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2014
    Messages : 16
    Points : 16
    Points
    16
    Par défaut
    Merci Waldar,
    C'était ce qu'il me fallait.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. MCD->MPD : deux clés étrangères pour le même champ
    Par Eric2000 dans le forum Schéma
    Réponses: 3
    Dernier message: 04/09/2007, 00h44
  2. Plusieurs valeurs pour un même champ
    Par will89 dans le forum Requêtes
    Réponses: 32
    Dernier message: 14/06/2006, 10h06
  3. Deux saisie dans un même champ?
    Par Kyrha dans le forum Access
    Réponses: 3
    Dernier message: 21/04/2006, 11h46
  4. Swap entre deux colonnes pour 2 enregistrements
    Par Erakis dans le forum SQL Procédural
    Réponses: 12
    Dernier message: 15/12/2005, 19h09
  5. Afficher deux colonnes dans une ListBox
    Par deubal dans le forum Composants VCL
    Réponses: 4
    Dernier message: 25/10/2005, 19h53

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