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 :

SQL ACCESS : comment concaténer une valeur texte avec une valeur numérique


Sujet :

Langage SQL

  1. #1
    Membre éclairé
    Avatar de kikidrome
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    861
    Détails du profil
    Informations personnelles :
    Localisation : France, Drôme (Rhône Alpes)

    Informations forums :
    Inscription : Décembre 2004
    Messages : 861
    Points : 685
    Points
    685
    Par défaut SQL ACCESS : comment concaténer une valeur texte avec une valeur numérique
    bonjour
    J'ai 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
     
    SELECT TYPE_RISK_P1_Str AS TYPE_RISK, GRAVITE_Int AS G,COUNT(GRAVITE_Int) AS NB
    FROM Array1z
    WHERE ( TYPE_RISK_P2_Int >0  AND GRAVITE_Int>0)
    GROUP BY   TYPE_RISK_P1_Str,  GRAVITE_Int
     
    UNION 
     
    SELECT TYPE_RISK_Str AS TYPE_RISK,  GRAVITE_Int AS G,COUNT(GRAVITE_Int) AS NB
    WHERE  ( TYPE_RISK_PRJ_Int >0 AND GRAVITE_Int>0)
    GROUP BY TYPE_RISK_Str, GRAVITE_Int;
    qui me donne un résultat :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    TYPE RISK    G      NB
    risque 1        1      2
    risque 1        2      4
    risque 2        1      7
    risque 3        3      4
    Je voudrais ajouter une 4ième colonne qui serait la concaténation de la première et de la troisième colonne.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    TYPE RISK    G      NB    LIB
    risque 1        1      2     risque 1 - 2
    risque 1        2      4     risque 1 - 4
    risque 2        1      7     risque 2 - 7
    risque 3        3      4     risque 3  - 4
    Est-ce possible ?
    Les paysages sont plus beaux quand on transpire.
    Olaf Candau

  2. #2
    Expert confirmé
    Avatar de pc75
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    3 662
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2004
    Messages : 3 662
    Points : 4 047
    Points
    4 047
    Par défaut
    Bonjour,

    Une idée ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    SELECT TYPE_RISK_P1_Str AS TYPE_RISK, GRAVITE_Int AS G,COUNT(GRAVITE_Int) AS NB, TYPE_RISK_P1_Str + cstr(COUNT(GRAVITE_Int)) AS LIB
    FROM Array1z
    WHERE ( TYPE_RISK_P2_Int >0  AND GRAVITE_Int>0)
    GROUP BY   TYPE_RISK_P1_Str,  GRAVITE_Int
     
    UNION 
     
    SELECT TYPE_RISK_Str AS TYPE_RISK,  GRAVITE_Int AS G,COUNT(GRAVITE_Int) AS NB
    WHERE  ( TYPE_RISK_PRJ_Int >0 AND GRAVITE_Int>0)
    GROUP BY TYPE_RISK_Str, GRAVITE_Int;

  3. #3
    Membre éclairé
    Avatar de kikidrome
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    861
    Détails du profil
    Informations personnelles :
    Localisation : France, Drôme (Rhône Alpes)

    Informations forums :
    Inscription : Décembre 2004
    Messages : 861
    Points : 685
    Points
    685
    Par défaut
    Merci PC75.. C'est la focntion cstr qui me manquait... je cherchais avec Concat...
    Les paysages sont plus beaux quand on transpire.
    Olaf Candau

  4. #4
    Membre éclairé
    Avatar de kikidrome
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    861
    Détails du profil
    Informations personnelles :
    Localisation : France, Drôme (Rhône Alpes)

    Informations forums :
    Inscription : Décembre 2004
    Messages : 861
    Points : 685
    Points
    685
    Par défaut
    Si je peux me permettre une deuxième question :
    Est-ce possible dans la même requête de sélectionner pour chaque 'Type_Risk', la ligne dont G est le + grand ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    TYPE RISK    G      NB    LIB
    risque 1        2      4     risque 1 - 4
    risque 2        1      7     risque 2 - 7
    risque 3        3      4     risque 3  - 4
    Les paysages sont plus beaux quand on transpire.
    Olaf Candau

  5. #5
    Expert confirmé
    Avatar de pc75
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    3 662
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2004
    Messages : 3 662
    Points : 4 047
    Points
    4 047
    Par défaut
    Bonjour,

    Tu devrais pouvoir t'en sortir en ajoutant une claude HAVING dans ta requête.

  6. #6
    Membre éclairé
    Avatar de kikidrome
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    861
    Détails du profil
    Informations personnelles :
    Localisation : France, Drôme (Rhône Alpes)

    Informations forums :
    Inscription : Décembre 2004
    Messages : 861
    Points : 685
    Points
    685
    Par défaut
    Citation Envoyé par pc75
    Bonjour,

    Tu devrais pouvoir t'en sortir en ajoutant une claude HAVING dans ta requête.
    Merci pour la suggestion, je vais faire des recherches là dessus.. est-ce qu'il faut combiner avec un MAX ?
    Les paysages sont plus beaux quand on transpire.
    Olaf Candau

  7. #7
    Membre éclairé
    Avatar de kikidrome
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    861
    Détails du profil
    Informations personnelles :
    Localisation : France, Drôme (Rhône Alpes)

    Informations forums :
    Inscription : Décembre 2004
    Messages : 861
    Points : 685
    Points
    685
    Par défaut
    j'ai essayé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    SELECT TYPE_RISK_P1_Str AS TYPE_RISK, GRAVITE_Int AS G,COUNT(GRAVITE_Int) AS NB, TYPE_RISK_P1_Str + "("+cstr(COUNT(GRAVITE_Int))+")"  AS LIB
    FROM Array1z
    WHERE ( TYPE_RISK_P2_Int >0  AND GRAVITE_Int>0)
    GROUP BY   TYPE_RISK_P1_Str,  GRAVITE_Int
    HAVING MAX(GRAVITE_Int)
    masi d'après ce que je trouve dans les docs, on peut tester le max par rapport à une valeur.. Moi, je voudrais extraire les lignes dont G est le + élevé. Exemple :
    A l'origin
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    TYPE RISK    G      NB    LIB
    risque 1        1      2     risque 1 -  2
    risque 1        2      4     risque 1 -  4
    risque 1        3      7     risque 1 -  7
    risque 2        1      4     risque 2  - 4
    risque 2        3      2     risque 2  - 2
    risque 3        2      4     risque 3  - 4
    risque 4        1      9     risque 4  - 9
    risque 4        2      4     risque 4  - 4
    je veux avoir :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
     
    TYPE RISK    G      NB    LIB
    risque 1        3      7     risque 1 -  7
    risque 2        3      2     risque 2  - 2
    risque 3        2      4     risque 3  - 4
    risque 4        2      4     risque 4  - 4
    Merci d'avance
    Les paysages sont plus beaux quand on transpire.
    Olaf Candau

  8. #8
    Expert confirmé
    Avatar de pc75
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    3 662
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2004
    Messages : 3 662
    Points : 4 047
    Points
    4 047
    Par défaut
    Re,

    As-tu essayé un truc comme ça ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    HAVING GRAVITE_Int = MAX(GRAVITE_Int)
    Sinon essaie de poser ta question sur le forum SQL.

  9. #9
    Membre éclairé
    Avatar de kikidrome
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    861
    Détails du profil
    Informations personnelles :
    Localisation : France, Drôme (Rhône Alpes)

    Informations forums :
    Inscription : Décembre 2004
    Messages : 861
    Points : 685
    Points
    685
    Par défaut
    Citation Envoyé par pc75
    Re,

    As-tu essayé un truc comme ça ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    HAVING GRAVITE_Int = MAX(GRAVITE_Int)
    Sinon essaie de poser ta question sur le forum SQL.
    j'ai essayé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    SELECT TYPE_RISK_P1_Str AS TYPE_RISK, GRAVITE_Int AS G,COUNT(GRAVITE_Int) AS NB, TYPE_RISK_P1_Str + "("+cstr(COUNT(GRAVITE_Int))+")"  AS LIB
    FROM Array1z
    WHERE ( TYPE_RISK_P2_Int >0  AND GRAVITE_Int>0)
    GROUP BY   TYPE_RISK_P1_Str,  GRAVITE_Int
    HAVING GRAVITE_Int = MAX(GRAVITE_Int)
    mais çà ne marche pas...
    Je suis bien sur le forum SQL... y a t'il un autre forum pour poser mon problème ?
    Les paysages sont plus beaux quand on transpire.
    Olaf Candau

  10. #10
    Expert confirmé
    Avatar de pc75
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    3 662
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2004
    Messages : 3 662
    Points : 4 047
    Points
    4 047
    Par défaut
    Re,

    Heu...

    Je voulais dire Access.

  11. #11
    Membre éclairé
    Avatar de kikidrome
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    861
    Détails du profil
    Informations personnelles :
    Localisation : France, Drôme (Rhône Alpes)

    Informations forums :
    Inscription : Décembre 2004
    Messages : 861
    Points : 685
    Points
    685
    Par défaut
    Citation Envoyé par pc75
    Re,

    Heu...

    Je voulais dire Access.
    ok, merci pour l'idée, j'ai mis un message dans le forum access et j'en ai remis un ici en changeant le titre puisque c'est un autre sujet .
    Merci
    Les paysages sont plus beaux quand on transpire.
    Olaf Candau

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

Discussions similaires

  1. [XL-2000] Remplir un champ texte d'une page internet avec une macro sous excel 2000
    Par salent9 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 17/05/2011, 21h40
  2. Réponses: 3
    Dernier message: 26/07/2010, 14h39
  3. [VBA] Comment valoriser un champ texte avec une variable ?
    Par Jean_Benoit dans le forum Access
    Réponses: 3
    Dernier message: 25/12/2006, 15h55
  4. Comment parcourir un fichier texte avec une boucle ?
    Par kikica dans le forum Langage
    Réponses: 2
    Dernier message: 15/11/2005, 17h13
  5. Réponses: 4
    Dernier message: 25/04/2005, 19h36

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