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 :

Nom de colonne avec requete analyse croisée


Sujet :

Langage SQL

  1. #1
    Membre habitué

    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    153
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 153
    Points : 138
    Points
    138
    Par défaut Nom de colonne avec requete analyse croisée
    bonjour,

    j'utilise une requête analyse croisée à partir d'une table,

    compte/annee/valeur/var1/var2....

    800 2009 10€...
    800 2008 20€...
    800 2010 30€...

    j'obtiens les années en colonnes avec d'autre variable car la table est lié sur le compte et j'ai besoin de ces variables

    ---- 2008 2009 var1 var2
    800 20€ 10€

    mais je ne garde que 2 années successifs en paramétrant ma requête annee = 2008 ou annee = 2009

    le problème c'est que les années changent donc mes noms de colonnes aussi
    là par l'exemple c'est 2008 2009 , mais ensuite c'est 2009 2010

    comment faire pour "appeler" les colonnes sans connaitre par avance leur nom ?

    par exemple les sélectionner par leur numéro ? mais comment ? ma requête est toujours la même, le nombre de colonne est fixe

    select colonne1, colonne2 from ma_requete_precedente


    merci d'avance

  2. #2
    Membre émérite Avatar de pacmann
    Homme Profil pro
    Consulté Oracle
    Inscrit en
    Juin 2004
    Messages
    1 626
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Consulté Oracle
    Secteur : Distribution

    Informations forums :
    Inscription : Juin 2004
    Messages : 1 626
    Points : 2 845
    Points
    2 845
    Par défaut
    Salut !

    C'est quoi une "requête analyse croisée" ?
    On dirait que c'est pas tout à fait du SQL...

    Bref, il semble qu'il y ait un outil qui permette de "pivoter" le résultat de la première requête. Lui seul pourra changer le nom des colonnes.

    Sinon, on peut envisager une table dont les noms de colonnes seraient fixes, commencer par faire un INSERT de la première requête dans la table... mais bon.

    Même si tu crées une vue de manière tordue :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    CREATE VIEW test(col1, col2) AS
    SELECT * FROM TaRequete
    Elle risque d'être "desétoilées" avant d'être stockée (sous Oracle du moins).
    et donc si les noms de colonnes de la vue ou table sous-jacente change, la requête est invalide.

  3. #3
    Membre habitué

    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    153
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 153
    Points : 138
    Points
    138
    Par défaut
    requête analyse croisée : http://cerig.efpg.inpg.fr/tutoriel/b...ees/chap16.htm

    Sinon, on peut envisager une table dont les noms de colonnes seraient fixes, commencer par faire un INSERT de la première requête dans la table... mais bon.
    j'ai essayé, mais il faut que les noms de colonnes soient les meme

  4. #4
    Membre émérite Avatar de pacmann
    Homme Profil pro
    Consulté Oracle
    Inscrit en
    Juin 2004
    Messages
    1 626
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Consulté Oracle
    Secteur : Distribution

    Informations forums :
    Inscription : Juin 2004
    Messages : 1 626
    Points : 2 845
    Points
    2 845
    Par défaut
    C'est pour cela que les "physiciens" devraient se contenter de faire la physique... (déjà qu'ils passent leur temps à massacrer les maths).

    Nan, je déconne.

    Donc, tu bosses sous access ?

    Tu as le droit de faire tes requêtes toi-même ?
    Si oui, il faut que tu donnes un nom constant aux colonnes de ta requête.
    Si non, tu ne peux rien faire de plus.

    En SQL, ça serait

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    SELECT compte, max(CASE annee WHEN 2008 THEN valeur ELSE 0 END) as val1, max(CASE annee WHEN 2009 THEN valeur ELSE 0 END) as val2
    FROM ...
    Avec 2008 et 2009 pouvant être des paramètres.

  5. #5
    Membre éclairé Avatar de Arkhena
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    552
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 552
    Points : 769
    Points
    769
    Par défaut
    Citation Envoyé par pacmann Voir le message
    C'est pour cela que les "physiciens" devraient se contenter de faire la physique... (déjà qu'ils passent leur temps à massacrer les maths).
    +1 (c'est affectueux, ma mère est physicienne :-) )

Discussions similaires

  1. [AC-2010] Peut on créer une requete avec deux requetes analyse croisée reliées?
    Par sebing dans le forum Requêtes et SQL.
    Réponses: 0
    Dernier message: 29/04/2014, 14h59
  2. Réponses: 0
    Dernier message: 17/10/2013, 09h53
  3. [AC-2007] Afficher colonne vide dans une requete analyse croisée
    Par julius26 dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 19/07/2011, 11h59
  4. crée etat avec requete analyse croisée
    Par popofpopof dans le forum IHM
    Réponses: 23
    Dernier message: 06/10/2007, 09h30
  5. [SQL]Somme pour chaque colonne de requete analyse
    Par Kekou03 dans le forum Access
    Réponses: 2
    Dernier message: 12/03/2005, 03h34

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