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 :

[A-03] SQL : requête de synthese, regrouper les petites valeurs


Sujet :

Requêtes et SQL.

  1. #1
    Membre du Club
    Inscrit en
    Septembre 2008
    Messages
    82
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 82
    Points : 47
    Points
    47
    Par défaut [A-03] SQL : requête de synthese, regrouper les petites valeurs
    bonjour,

    j'ai une requête SQL qui me fournit les donnée dans un graphique comme suit:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT DISTINCTROW qryflight.Designator, Sum(([Day]+[Night])*24) AS Somme
    FROM qryflight
    GROUP BY qryflight.Designator;
    Cela fonctionne très bien mais il existe des désignators avec de petites valeurs que je qualifierais de "parasites" sans pour autant vouloir les mettre de côté.
    J'aimerais regrouper ces petites valeurs (par exemple pour les désignator dont la somme de day et night est inférieur à 10h, ou inférieur à 3% de la somme de tous les désignator) en créant un nouveau qryflight.Designator que je nommerais "autre" et qui me donnerais la somme de toutes ces petites valeurs.
    La table QryFlight est une table avec un champ date(date), designator(string), day (date) et night(date)
    Ces champs day et night sont en fait des durées et j'ai une petite fonction en vba pour les afficher, même si elle dépasse 24h.

    suis je clair? pas sur...

    merci d'avance de vos conseils.

  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 : 51
    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 et bienvenu yupyupxav,

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT DISTINCTROW iif(([Day]+[Night])*24>#10:00:00#,Designator,"autre") AS D, Sum(([Day]+[Night])*24) AS Somme
    FROM qryflight
    GROUP BY iif(([Day]+[Night])*24>#10:00:00#,Designator,"autre")

    Citation Envoyé par yupyupxav
    La table QryFlight est une table avec un champ date(date), designator(string), day (date) et night(date)
    il ne faut pas utiliser Date comme nom de champs, c'est un mot réservé.


  3. #3
    Membre du Club
    Inscrit en
    Septembre 2008
    Messages
    82
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 82
    Points : 47
    Points
    47
    Par défaut
    Merci, c'est exactement ce que je recherchais.

  4. #4
    Membre du Club
    Inscrit en
    Septembre 2008
    Messages
    82
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 82
    Points : 47
    Points
    47
    Par défaut
    En fait,je me suis trompé, le code ne fonctionne pas car la somme de "autre" n'est pas égale à la somme des valeurs <10h mais aussi il reste des valeurs qui sont plus petites que 10h

    j'ai donc un code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    SELECT DISTINCTROW Sum([QFlights.total]) AS somme, qflights.Designator
    FROM qflights
    GROUP BY qflights.Designator;
    avec un champ total qui est de type date. Mon idée est qui les somme qui sont inférieures à 10h (ou une autre durée, par exemple 30h) ne soient plus exprimées par leur désignator mais rassemblées dans un "nouveau" designator appelé "autre"

    Si j'utilise le code suivant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT DISTINCTROW IIf(Sum(total)>1,designator,"autre") AS Expr1, Sum([total]) AS somme
    FROM qflights
    GROUP BY qflights.Designator;
    Access me change bien le désignator d'origine par "autre" si la somme est de moins de 24h, mais je me retrouve avec plusieur désignator "autre". Comment faire fonctionner la commande GROUP BY afin qu'access me regroupe les sommes de tous les designator qui sont devenus "autre"?

    J'utilise Access 2003
    Merci

  5. #5
    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 : 51
    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 as raison cela ne correspond pas, pour te répondre rapidement:

    si requete1:
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT DISTINCTROW Sum([QFlights.total]) AS somme, qflights.Designator
    FROM qflights
    GROUP BY qflights.Designator;
    tu fais:
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    select sum(somme), iif(somme>10,Designator,"autre")
    from requete1
    group by iif(somme>10,Designator,"autre")
    il est possible d'obtenir cela en une seule requete si besoin je te fournirais un ex.


  6. #6
    Membre du Club
    Inscrit en
    Septembre 2008
    Messages
    82
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 82
    Points : 47
    Points
    47
    Par défaut
    Merci, cela fonctionne très bien, j'ai même réussi à mettre tout dans une seule requête. Tout arrive

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

Discussions similaires

  1. [Toutes versions] Question sur les Petite Valeur
    Par Bulveye dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 14/10/2013, 16h44
  2. [SQL] regrouper les requêtes en 1 fichier include ?
    Par grinder59 dans le forum PHP & Base de données
    Réponses: 10
    Dernier message: 27/01/2012, 13h00
  3. Réponses: 5
    Dernier message: 24/07/2006, 14h01
  4. Réponses: 2
    Dernier message: 16/05/2006, 10h52
  5. Comment regrouper les 3requêtes SQL?
    Par SkyDev dans le forum Langage SQL
    Réponses: 16
    Dernier message: 06/03/2004, 13h02

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