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

SAGE Discussion :

Requête SQL : Afficher la désignation d'un résultat issu d'une table diverse [X3-V7]


Sujet :

SAGE

  1. #1
    Candidat au Club
    Homme Profil pro
    Ingénieur BE
    Inscrit en
    Juin 2017
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur BE

    Informations forums :
    Inscription : Juin 2017
    Messages : 3
    Points : 3
    Points
    3
    Par défaut Requête SQL : Afficher la désignation d'un résultat issu d'une table diverse
    Bonjour à tous,

    Je me suis fait un petite requête SQL qui marche ma fois plutôt bien :

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    SELECT OPPOR.OPPNUM_0,OPPDES_0,YENDUSER_0,YENDLOCAL_0,YENDCRY_0,OPPREP_0, ITMMASTER.ITMREF_0,YLINETYPE_0,QTY_0,  TSICOD_0, TSICOD_1,YBODY_0,YSGMAT_0,YGASMAT1_0,YGASMAT2_0,YSLIDECOV_0,YSAFETYLO_0,YDRAINPORT_0 ,YMEDIA1_0,YMEDIA2_0 , YMEDIA3_0, YDESTEMMIN_0, YDESTEMMAX_0
    FROM ITMMASTER
    INNER JOIN X1OPPLIN
    ON ITMMASTER.ITMREF_0 = X1OPPLIN.ITMREF_0
    INNER JOIN OPPOR
    ON X1OPPLIN.OPPNUM_0 = OPPOR.OPPNUM_0
    WHERE OPPOR.OPPNUM_0 = %1% AND X1OPPLIN.ITMREF_0 LIKE 'G%'

    Les colonnes et les paramètres sont bien remplis et le résultat de la requête marche bien.



    J'ai juste une petite question de "mise en forme" :

    J'ai certaine colonnes dont les valeurs retournées viennent de tables diverses et il me sort le code de la ligne de la table alors que j'aimerai l'intitulé.
    Voici un exemple :

    Nom : SQL1.JPG
Affichages : 2029
Taille : 28,3 Ko

    Ici on voit que la colonne "DN", qui correspond à TSICOD_0 dans la requête, renvoi la valeur 16. Cette valeur est juste ! elle correspond a cette table diverse :

    Nom : SQL2.JPG
Affichages : 2180
Taille : 43,0 Ko

    Mais moi du coup je préférerai afficher: 20"(500mm)

    J'ai plusieurs colonnes dans ce cas là, et j'aimerai savoir (avant de partir en sucette en mode "je fais un post traitement sous excel") si il existe un moyen de faire ça directement dans la requête. (on m'a parler d'une fonction du genre AFNC.TEXTRA .... mais je n'arrive pas à la faire marcher en SQL)


    J’espère avoir été assez clair. Merci d'avance !

  2. #2
    Membre éclairé
    Homme Profil pro
    Administrateur X3 - Sage 1000
    Inscrit en
    Janvier 2012
    Messages
    573
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Administrateur X3 - Sage 1000

    Informations forums :
    Inscription : Janvier 2012
    Messages : 573
    Points : 811
    Points
    811
    Par défaut
    Il faut faire une lien vers la table ATEXTRA comme je l'ai fait ci dessous.
    Attention : j'ai supposé que c'était la table diverse N° 20

    Autre remarque : tu devrais préfixer tes champs avec des alias de table sinon tu vas t'y perdre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    SELECT OPPOR.OPPNUM_0,OPPDES_0,YENDUSER_0,YENDLOCAL_0,YENDCRY_0,OPPREP_0, ITMMASTER.ITMREF_0,YLINETYPE_0,QTY_0,  TSICOD_0, TSICOD_1,YBODY_0,YSGMAT_0,YGASMAT1_0,YGASMAT2_0,YSLIDECOV_0,YSAFETYLO_0,YDRAINPORT_0 ,YMEDIA1_0,YMEDIA2_0 , YMEDIA3_0, YDESTEMMIN_0, YDESTEMMAX_0, stat.TEXTE_0
    FROM ITMMASTER
    INNER JOIN X1OPPLIN ON ITMMASTER.ITMREF_0 = X1OPPLIN.ITMREF_0
    INNER JOIN OPPOR ON X1OPPLIN.OPPNUM_0 = OPPOR.OPPNUM_0
    left join ATEXTRA stat on (stat.IDENT1_0='20' and stat.IDENT2_0 = TSICOD_0  and  stat.ZONE_0='LNGDES' and stat.LANGUE_0='FRA')
    WHERE OPPOR.OPPNUM_0 = %1% AND X1OPPLIN.ITMREF_0 LIKE 'G%'

  3. #3
    Candidat au Club
    Homme Profil pro
    Ingénieur BE
    Inscrit en
    Juin 2017
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur BE

    Informations forums :
    Inscription : Juin 2017
    Messages : 3
    Points : 3
    Points
    3
    Par défaut
    Franchement : MERCI !

    Ça faisait un moment que je me cassai la tête la dessus. Ça marche au poil !
    (en plus on a le même prénom !)

    Juste une petite extrapolation si ça peu aider quelqu'un, si on veux lier 2 colonnes à 2 tables différentes :
    exemple avec une 2nd table diverse "21" :

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    SELECT OPPOR.OPPNUM_0,OPPDES_0,YENDUSER_0,YENDLOCAL_0,YENDCRY_0,OPPREP_0, ITMMASTER.ITMREF_0,YLINETYPE_0,QTY_0,   stat.TEXTE_0, stat1.TEXTE_0,YBODY_0,YSGMAT_0,YGASMAT1_0,YGASMAT2_0,YSLIDECOV_0,YSAFETYLO_0,YDRAINPORT_0 ,YMEDIA1_0,YMEDIA2_0 , YMEDIA3_0, YDESTEMMIN_0, YDESTEMMAX_0
    FROM ITMMASTER
    INNER JOIN X1OPPLIN ON ITMMASTER.ITMREF_0 = X1OPPLIN.ITMREF_0 
    INNER JOIN OPPOR ON X1OPPLIN.OPPNUM_0 = OPPOR.OPPNUM_0
    left join ATEXTRA stat on (stat.IDENT1_0='20' and stat.IDENT2_0 = TSICOD_0  and  stat.ZONE_0='LNGDES' and stat.LANGUE_0='FRA') # 1er "liaison avec stat.TEXTE_0
    left join ATEXTRA stat1 on (stat1.IDENT1_0='21' and stat1.IDENT2_0 = TSICOD_1  and  stat1.ZONE_0='LNGDES' and stat1.LANGUE_0='FRA') # 2nd liaison avecstat1.TEXTE_0
    WHERE OPPOR.OPPNUM_0 = %1% AND X1OPPLIN.ITMREF_0 LIKE 'G%'

    PS: Promis je met les préfixes sur mes champs de suite !! encore MERCI. Ça fait longtemps que je traîne sur ce forum, mais la 1er fois que je poste franchement vous m’avez BEAUCOUP aider !

  4. #4
    Membre éclairé
    Homme Profil pro
    Administrateur X3 - Sage 1000
    Inscrit en
    Janvier 2012
    Messages
    573
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Administrateur X3 - Sage 1000

    Informations forums :
    Inscription : Janvier 2012
    Messages : 573
    Points : 811
    Points
    811
    Par défaut
    Là tu vois bien l’intérêt de préfixer tes champs : 2 fois la table ATEXTRA => obligation de faire des alias (stat et stat1)

    Et puis allez, comme je sens que ça va être ta prochaine questions (!!) voilà comment on fait pour récupérer l'intitulé d'un menu local :
    Exemple pour le statut article (menu local 246)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    select itm.ITMREF_0 as code_article, ml246.LANMES_0 as statut_article
    from ITMMASTER itm 
    inner join  APLSTD ml246 on (ml246.LANCHP_0=246 and ml246.LAN_0='FRA' and ml246.LANNUM_0= itm.ITMSTA_0)
    nota1 :bien penser à changer le N° du menu local !!!
    nota 2: j'ai mis un inner join car le statut est normalement obligatoire et donc forcément présent mais c'est pas le cas pour tous les menu locaux.

    Bon WE.

  5. #5
    Membre habitué
    Homme Profil pro
    Développeur/Chef de Projet ERP
    Inscrit en
    Septembre 2011
    Messages
    90
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Développeur/Chef de Projet ERP
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Septembre 2011
    Messages : 90
    Points : 130
    Points
    130
    Par défaut
    Citation Envoyé par TontonVelu Voir le message
    Bonjour à tous,

    Je me suis fait un petite requête SQL qui marche ma fois plutôt bien :

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    SELECT OPPOR.OPPNUM_0,OPPDES_0,YENDUSER_0,YENDLOCAL_0,YENDCRY_0,OPPREP_0, ITMMASTER.ITMREF_0,YLINETYPE_0,QTY_0,  TSICOD_0, TSICOD_1,YBODY_0,YSGMAT_0,YGASMAT1_0,YGASMAT2_0,YSLIDECOV_0,YSAFETYLO_0,YDRAINPORT_0 ,YMEDIA1_0,YMEDIA2_0 , YMEDIA3_0, YDESTEMMIN_0, YDESTEMMAX_0
    FROM ITMMASTER
    INNER JOIN X1OPPLIN
    ON ITMMASTER.ITMREF_0 = X1OPPLIN.ITMREF_0
    INNER JOIN OPPOR
    ON X1OPPLIN.OPPNUM_0 = OPPOR.OPPNUM_0
    WHERE OPPOR.OPPNUM_0 = %1% AND X1OPPLIN.ITMREF_0 LIKE 'G%'

    Les colonnes et les paramètres sont bien remplis et le résultat de la requête marche bien.



    J'ai juste une petite question de "mise en forme" :

    J'ai certaine colonnes dont les valeurs retournées viennent de tables diverses et il me sort le code de la ligne de la table alors que j'aimerai l'intitulé.
    Voici un exemple :

    Nom : SQL1.JPG
Affichages : 2029
Taille : 28,3 Ko

    Ici on voit que la colonne "DN", qui correspond à TSICOD_0 dans la requête, renvoi la valeur 16. Cette valeur est juste ! elle correspond a cette table diverse :

    Nom : SQL2.JPG
Affichages : 2180
Taille : 43,0 Ko

    Mais moi du coup je préférerai afficher: 20"(500mm)

    J'ai plusieurs colonnes dans ce cas là, et j'aimerai savoir (avant de partir en sucette en mode "je fais un post traitement sous excel") si il existe un moyen de faire ça directement dans la requête. (on m'a parler d'une fonction du genre AFNC.TEXTRA .... mais je n'arrive pas à la faire marcher en SQL)


    J’espère avoir été assez clair. Merci d'avance !

    Bonjour,

    juste pour revenir sur AFNC : en v6.5 (je ne sais pas si c'est la meme chose en V7) quand tu fais une requête graphique, tu peux ajouter des champs de type expression en mettant ceci dans la formule :

    func AFNC.TEXTRA("ATABDIV","LNGDES","20",[F:ITM]TSICOD(0))

    pour obtenir par exemple le libellé de la famille stat 1 article. Pour parer au fait que l'on ne peut pas ajouter 2 fois la même table en requeteur graphique.

  6. #6
    Candidat au Club
    Homme Profil pro
    Ingénieur BE
    Inscrit en
    Juin 2017
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur BE

    Informations forums :
    Inscription : Juin 2017
    Messages : 3
    Points : 3
    Points
    3
    Par défaut
    Salut !

    Au top.

    Merci pour la syntaxe et les astuces/précisions je me note ça quelque part !

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 20/10/2014, 12h34
  2. Requête SQL : afficher résultat même si champ vide
    Par nlbmoi dans le forum Langage SQL
    Réponses: 6
    Dernier message: 05/09/2014, 15h05
  3. [PHP 5.3] POO : requête SQL afficher le résultat
    Par gwendoline-bricout dans le forum Langage
    Réponses: 27
    Dernier message: 04/02/2014, 17h18
  4. Requête SQL : Afficher les colonnes en ligne, et vice versa
    Par paflolo dans le forum Langage SQL
    Réponses: 7
    Dernier message: 17/03/2009, 09h16
  5. Requête SQL affichable dans état
    Par thanathz dans le forum WebDev
    Réponses: 3
    Dernier message: 06/02/2008, 15h21

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