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

Requêtes et SQL. Discussion :

sommer certains champs et conserver d'autres


Sujet :

Requêtes et SQL.

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    253
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 253
    Points : 90
    Points
    90
    Par défaut sommer certains champs et conserver d'autres
    Bonjour je dispose d'une requête access
    qui se présente comme suit:

    Agence Nombre
    ag1 10
    ag2 4
    ag3 5
    ag4 0
    ag5 3
    ag6 1

    Mon problème est créer une nouvelle requête qui comportera 2 champs sorte que j'ai ceci:

    Agence_New Nombre_New
    ag1_new=(ag1+ag5) (10+3)=13
    ag2_new=(ag2+ag3) (4+5)=9
    ag4 0
    ag6 1


    Est-ce possible?

    Merci d'avance pour votre aide.

  2. #2
    Expert confirmé
    Avatar de vodiem
    Homme Profil pro
    Vivre
    Inscrit en
    Avril 2006
    Messages
    2 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Vivre
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2006
    Messages : 2 895
    Points : 4 325
    Points
    4 325
    Par défaut
    salut kedmard,

    possible : oui.

    pour savoir quels champs vont ensemble une solution consisterait à ajouter un champ supplémentaire et utiliser le regroupement dessus pour la sommation, ainsi tu aurais le résultat très simplement.


  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    253
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 253
    Points : 90
    Points
    90
    Par défaut
    Salut,

    le problème c'est que les deux dernières lignes du champ age_new
    contiennent des valeurs qui ne sont pas le résultat d'une somme.
    Ce serait facile si on sommait sur tout le champ age mais ici la somme ne concerne que certains champs c'est là que je bloque.

    Peut-être que c'est moi qui ne comprends pas ton idée.... dans ce cas j'aurais besoin d'un peu plus de détails.

    Merci bien,

  4. #4
    Expert confirmé
    Avatar de vodiem
    Homme Profil pro
    Vivre
    Inscrit en
    Avril 2006
    Messages
    2 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Vivre
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2006
    Messages : 2 895
    Points : 4 325
    Points
    4 325
    Par défaut
    exemple avec une table "maTableAgence"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Agence	Nombre	GroupeAgence
    ag1	10	ag1_new
    ag2	4	ag2_new
    ag3	5	ag2_new
    ag4	0	ag4
    ag5	3	ag1_new
    ag6	1	ag6
    requete:
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT GroupeAgence, Sum(Nombre) AS Total
    FROM maTableAgence
    GROUP BY GroupeAgence;


  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    253
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 253
    Points : 90
    Points
    90
    Par défaut
    C'est plus claire mais le petit souci c'est que je souhaite que ce soit automatique, c-à-d en gardant ton exemple : je veux une requête
    au lieu d'une table.
    T'aurais un moyen d'ajouter le champ via un code SQL.

    Merci bien,

  6. #6
    Expert confirmé
    Avatar de vodiem
    Homme Profil pro
    Vivre
    Inscrit en
    Avril 2006
    Messages
    2 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Vivre
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2006
    Messages : 2 895
    Points : 4 325
    Points
    4 325
    Par défaut
    oui, on peut utiliser une requête et y ajouter le champ supplémentaire automatiquement mais il faudrait savoir quels champs vont se sommer ensemble et quelle règle de nommage utiliser.

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    253
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 253
    Points : 90
    Points
    90
    Par défaut
    Salut, Diem VO,
    je me suis peut être pas bien exprimé précedemment,

    le nouveau souci c'est que je n'arrive pas à ajouter automatiquement le champs "Graoupagence" (avec les correspondances qui vont avec) dans la table
    "maTableAgence" voilà pourquoi je préfère une requête mais là non plus je ne vois pas comment m'y prendre.

  8. #8
    Expert confirmé
    Avatar de vodiem
    Homme Profil pro
    Vivre
    Inscrit en
    Avril 2006
    Messages
    2 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Vivre
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2006
    Messages : 2 895
    Points : 4 325
    Points
    4 325
    Par défaut
    je pense que tu t'ai exprimé suffisamment clairement:
    tu ne sais pas comment formuler la requete pour avoir le résultat.

    seulement tu ne réponds pas aux questions qui permettrais de t'aider:
    > comment sais tu quel champs vont ensemble?
    > la valeur à mettre dans [groupeAgence] est-elle stocké qq part ? sinon quel règle de nommage utiliser ?

    éventuellement description succincte des tables permettrait de mieux comprendre ton pb.


  9. #9
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    253
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 253
    Points : 90
    Points
    90
    Par défaut
    Le critère d'assemblage des Champs ne se trouve pas dans une requête/tables
    de ma base de données il m'a été imposé par mon expression de besoin.
    Mon cahier de chage veut par exmple que les agences Ag1 et Ag5 ne fassent qu'un en ter de "Nombre"

    La valeur à mettre dans "Groupagence" est également une convention que m'impose mon expression de besoin.


    D'où la difficulté.

    Merci quand même pour ton aide qui m'a beaucoup fait avancée.

  10. #10
    Expert confirmé
    Avatar de vodiem
    Homme Profil pro
    Vivre
    Inscrit en
    Avril 2006
    Messages
    2 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Vivre
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2006
    Messages : 2 895
    Points : 4 325
    Points
    4 325
    Par défaut
    tu veux dire que ces critères doivent être en dur dans le sql?

    un truc de ce genre ? :
    Code SQL : 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
       switch(
          agence="ag1", "ag1_new",
          agence="ag2", "ag2_new",
          agence="ag3", "ag2_new",
          agence="ag4", "ag4",
          agence="ag5", "ag1_new",
          agence="ag6", "ag6"
          ) as groupeAgence,
       Sum(Nombre) as Total
    FROM maTableAgence
    GROUP BY
       switch(
          agence="ag1", "ag1_new",
          agence="ag2", "ag2_new",
          agence="ag3", "ag2_new",
          agence="ag4", "ag4",
          agence="ag5", "ag1_new",
          agence="ag6", "ag6"
          )

  11. #11
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    253
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 253
    Points : 90
    Points
    90
    Par défaut
    Exactement,

    malheureusement, avec switch j'ai un message d'erreur

    Opérateur absent dans l'expression switch

    Je continue à chercher sur cette piste.

  12. #12
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    253
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 253
    Points : 90
    Points
    90
    Par défaut
    ça y est j'ai réussi
    voici mon code:


    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 Sum(
        MaTable.Nombre) AS Total
     
     
    IIf( (Agence="Ag1" or   Agence="Ag5"), "Ag_new1",
     
         IIf((Agence="Ag2" or Agence="Ag3"), "Ag_new2", Agence)) As Agence_New
     
    FROM MaTable
    Group BY
     
    IIf( (Agence="Ag1" or   Agence="Ag5"), "Ag_new1",
     
         IIf((Agence="Ag2" or Agence="Ag3"), "Ag_new2", Agence))
     
     
    Order BY
    IIf( (Agence="Ag1" or   Agence="Ag5"), "Ag_new1",
     
         IIf((Agence="Ag2" or Agence="Ag3"), "Ag_new2", Agence));


    Grand Merci à toi Vodiem sans toi je n'aurai pas pu avancer si vite

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

Discussions similaires

  1. [CR XI] Comment sommer certains champs et pas d'autres depuis une même table source
    Par MaasDVSue dans le forum SAP Crystal Reports
    Réponses: 7
    Dernier message: 17/10/2014, 11h52
  2. Réponses: 2
    Dernier message: 27/08/2010, 11h23
  3. Réponses: 13
    Dernier message: 06/08/2008, 14h36
  4. Réponses: 8
    Dernier message: 24/01/2008, 22h36
  5. Réponses: 4
    Dernier message: 06/03/2007, 12h00

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