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

SQL Oracle Discussion :

Ajout de colonne avec nouveaux paramètres


Sujet :

SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Février 2019
    Messages
    179
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Ressources humaines

    Informations forums :
    Inscription : Février 2019
    Messages : 179
    Par défaut Ajout de colonne avec nouveaux paramètres
    Bonjour,

    Dans la requête ci-dessous, je récupère une liste de nom qui corresponds aux paramètres jour du champ journuit (AJP,BJP...).
    Je souhaiterais ajouter une colonne à cette en intégrant la liste de nom qui corresponds aux paramètres de nuit du champ journuit (ANP, BNP...).
    Je ne parviens pas à trouver la solution.

    Merci pour votre aide.

    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
    select DAT as DTE,
    LISTAGG( substr(nompre,0,15)||'('||Substr(libelle,8,8)||')', '; ') WITHIN GROUP (ORDER BY DAT)  as NAMEP1J
    FROM
    (
    	SELECT DISTINCT a.NOMPRE, b.DAT,a.seigradeo, f.libelle,e.journuit
     
            from  hopempl a, plpemcri c, hophabs b, hopmoti e, hopsech f
     
            WHERE  (b.dat >= c.DATDEB  AND b.dat<= c.DATFIN)
            AND f.horsect = a.horsect
            AND b.MATRI = a.MATRI AND b.MATRI = c.MATRI 
            AND b.motif = e.motif
            AND e.journuit in ('AJP','BJP'))
            AND c.CODECRIT in ('P1')
     
            AND EXTRACT(YEAR FROM b.DAT) >= '2021' AND EXTRACT(MONTH FROM b.DAT) ='12'
            ORDER BY b.dat
       )
     
           GROUP BY DAT;

  2. #2
    Membre Expert
    Homme Profil pro
    Développeur Oracle
    Inscrit en
    Décembre 2019
    Messages
    1 175
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur Oracle

    Informations forums :
    Inscription : Décembre 2019
    Messages : 1 175
    Par défaut
    Bonjour,

    Peux-tu montrer un jeu d'essai avec les données en entrée et les données attendues en sortie?

  3. #3
    McM
    McM est déconnecté
    Expert confirmé

    Homme Profil pro
    Développeur Oracle
    Inscrit en
    Juillet 2003
    Messages
    4 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Oracle

    Informations forums :
    Inscription : Juillet 2003
    Messages : 4 580
    Billets dans le blog
    4
    Par défaut
    Bonjour,

    Je ferais un truc dans le genre (j'avoue ne pas avoir testé) :
    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
    SELECT DAT AS DTE,
    	LISTAGG( CASE WHEN journuit IN ('AJP','BJP') THEN SUBSTR(nompre,0,15)||'('||SUBSTR(libelle,8,8)||')' END, '; ') WITHIN GROUP (ORDER BY DAT)  AS NAMEP1J,
    	LISTAGG( CASE WHEN journuit IN ('ANP','BNP') THEN SUBSTR(nompre,0,15)||'('||SUBSTR(libelle,8,8)||')' END, '; ') WITHIN GROUP (ORDER BY DAT)  AS NAMEP1N
    FROM
    (
    	SELECT DISTINCT a.NOMPRE, b.DAT,a.seigradeo, f.libelle,e.journuit
            FROM  hopempl a, plpemcri c, hophabs b, hopmoti e, hopsech f
            WHERE  (b.dat >= c.DATDEB  AND b.dat<= c.DATFIN)
            AND f.horsect = a.horsect
            AND b.MATRI = a.MATRI AND b.MATRI = c.MATRI 
            AND b.motif = e.motif
            AND e.journuit IN ('AJP','BJP', 'ANP','BNP'))
            AND c.CODECRIT IN ('P1')
            AND EXTRACT(YEAR FROM b.DAT) >= '2021' AND EXTRACT(MONTH FROM b.DAT) ='12'
     --       ORDER BY b.dat -- Inutile au sein d'un sous select
       )
           GROUP BY DAT;

  4. #4
    Membre confirmé
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Février 2019
    Messages
    179
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Ressources humaines

    Informations forums :
    Inscription : Février 2019
    Messages : 179
    Par défaut
    Bonjour,

    J'ai essayé avec la solution de McM, c'est impeccable.
    y-a-t-il moyen d'ajouter une colonne pour compter le nombre de chaque colonne ?

    Merci à vous.

  5. #5
    McM
    McM est déconnecté
    Expert confirmé

    Homme Profil pro
    Développeur Oracle
    Inscrit en
    Juillet 2003
    Messages
    4 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Oracle

    Informations forums :
    Inscription : Juillet 2003
    Messages : 4 580
    Billets dans le blog
    4
    Par défaut
    Suffit de rajouter un SUM et de faire un test sur journuit

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SUM(CASE WHEN journuit IN ('AJP','BJP') THEN 1 END) nbJ,
    	SUM(CASE WHEN journuit IN('ANP','BNP') THEN 1 END) nbB

Discussions similaires

  1. Réponses: 1
    Dernier message: 12/01/2010, 22h18
  2. [WD14] Ajout Combo + Colonne avec bouton
    Par Truster dans le forum WinDev
    Réponses: 21
    Dernier message: 04/09/2009, 10h15
  3. Table croisée : ajout de colonnes avec formules
    Par jlravenel dans le forum Formules
    Réponses: 2
    Dernier message: 21/01/2009, 13h58
  4. Ajouter une colonne avec proc sql
    Par green_fr dans le forum SAS Base
    Réponses: 3
    Dernier message: 08/07/2008, 10h13

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