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

 Firebird Discussion :

[débutant] problème avec Group by


Sujet :

Firebird

  1. #1
    Membre régulier
    Inscrit en
    Avril 2002
    Messages
    103
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 103
    Points : 120
    Points
    120
    Par défaut [débutant] problème avec Group by
    Salut à tous,

    je débuté avec InterBase et ma question va certainement en énerverplus d'un... J'ai recherché un peu dans le forum et n'ai pas trouvé de réponse à mon petit problème... donc...

    voici ma requete
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT (CANT_NOM || ' / ' || DEPT_NUM) AS ID_CANT, CANT_NUM
    FROM TCOMMUNES, TCANTONS
    WHERE TCOMMUNES.CANT_NUM=TCANTONS.CANT_NUM
    GROUP BY CANT_NUM
    ORDER BY CANT_NOM
    ma clause de regroupement est incomplète, je sais...
    mais le "code" que j'utilise d'ordinaire, avec Access par exemple, à savoir
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    GROUP BY (CANT_NOM || ' / ' || DEPT_NUM),CANT_NUM
    ne passe pas...

    comment faut-t-il faire ???

    merci à vous pour vos réponses
    Ce n'est pas parce qu'on pédale dans la semoule, qu'on est sûr de manger du couscous... (anonyme)

  2. #2
    Membre expert
    Avatar de Barbibulle
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    2 048
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 2 048
    Points : 3 342
    Points
    3 342
    Par défaut
    Faite un groupe by N° de la colonne


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT (CANT_NOM || ' / ' || DEPT_NUM) AS ID_CANT, CANT_NUM 
    FROM TCOMMUNES, TCANTONS 
    WHERE TCOMMUNES.CANT_NUM=TCANTONS.CANT_NUM 
    GROUP BY 1, 2
    le ORDER BY CANT_NOM est inutile car le group by va faire un tri par (CANT_NOM || ' / ' || DEPT_NUM), CANT_NUM (et donc par cant_nom)


    sinon créez une Ps ou vue avec votre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT (CANT_NOM || ' / ' || DEPT_NUM) AS ID_CANT, CANT_NUM 
    FROM TCOMMUNES, TCANTONS
    Ensuite vous pourrez faire un select sur cette vue ou PS en groupant par ID_CANT.

  3. #3
    Membre régulier
    Inscrit en
    Avril 2002
    Messages
    103
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 103
    Points : 120
    Points
    120
    Par défaut
    Bonsoir,

    merci pour cette réponse si rapide...

    malheureusement, cela ne fonctionne pas...

    j'ai droit à
    "1" Symbole inconnu ligne 4
    j'utilise IBEasy+ version 1.3 avec Interbase 6 et Delphi 3...

    peut-être me manque-t-il quelque chose... ?

    @+
    Ce n'est pas parce qu'on pédale dans la semoule, qu'on est sûr de manger du couscous... (anonyme)

  4. #4
    Membre expert
    Avatar de Barbibulle
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    2 048
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 2 048
    Points : 3 342
    Points
    3 342
    Par défaut
    Sous Firebird1.5 celà fonctionne parfaitement et je suppose que sous IB7.X aussi.

    Il me semblait pourtant que sous IB6 celà fonctionnait également mais peut être pas quand la colonne en question est une colonne calculée.


    Donc il vous reste les 2 autres solutions :

    - Migrer sous FB1.5 ou IB7.x
    - Utiliser une vue( ou PS) pour le select ... et faire un select ... group by sur cette vue (ou PS).

  5. #5
    Membre régulier
    Inscrit en
    Avril 2002
    Messages
    103
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 103
    Points : 120
    Points
    120
    Par défaut
    Salut,

    migrer sous FireBird... je crois savoir que c'est la même chose, mais j'ai commencé acec IB et je le sens pas plus que ça là... de plus j'ai enfin trouvé des outils conviviaux pour IB, alors...

    cela dit si ces outils (IBEasy par exemple...) fonctionnent aussi avec FireBird je suis preneur...

    non... j'ai cherché encore et encore, avec la piste que vous m'avez fournie dans la première réponse...

    et j'ai trouvé comme quoi il faut persévérer...

    la solution est très simple, une fois connue, il convient de placer dans le GROUP BY tous les champs du SELECT, ce qui donne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT (CANT_NOM || ' / ' || DEPT_NUM) AS ID, CANT_NUM
    FROM TCANTONS,TCOMMUNES
    WHERE TCANTONS.CANT_NUM=TCOMMUNES.CANT_NUM
    GROUP BY CANT_NOM, CANT_NUM, DEPT_NUM
    et voilà le tour est joué... merci encore pour votre aide... et certainement à très bientôt vu que je vais persévérer dans IB...

    @+
    Ce n'est pas parce qu'on pédale dans la semoule, qu'on est sûr de manger du couscous... (anonyme)

  6. #6
    Membre expert
    Avatar de Barbibulle
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    2 048
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 2 048
    Points : 3 342
    Points
    3 342
    Par défaut
    Citation Envoyé par Amenofis
    Salut,

    migrer sous FireBird... je crois savoir que c'est la même chose, mais j'ai commencé acec IB et je le sens pas plus que ça là... de plus j'ai enfin trouvé des outils conviviaux pour IB, alors...
    ca depend de ce que vous appelez la même chose.
    Oui fb1.5 est compatible à 99.9% avec IB6, mais fb1.5 apporte des nouveautées et des corrections de bugs et évolue contrairement à IB6 qui lui est figée et n'évolura plus jamais (même pas de correction des bugs connus). IB6 est figé alors que FB ou IB7.X eux évoluent.

    Citation Envoyé par Amenofis
    cela dit si ces outils (IBEasy par exemple...) fonctionnent aussi avec FireBird je suis preneur...
    Essayé c'est l'adopter

    Citation Envoyé par Amenofis
    non... j'ai cherché encore et encore, avec la piste que vous m'avez fournie dans la première réponse...

    et j'ai trouvé comme quoi il faut persévérer...

    la solution est très simple, une fois connue, il convient de placer dans le GROUP BY tous les champs du SELECT, ce qui donne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT (CANT_NOM || ' / ' || DEPT_NUM) AS ID, CANT_NUM
    FROM TCANTONS,TCOMMUNES
    WHERE TCANTONS.CANT_NUM=TCOMMUNES.CANT_NUM
    GROUP BY CANT_NOM, CANT_NUM, DEPT_NUM
    et voilà le tour est joué... merci encore pour votre aide... et certainement à très bientôt vu que je vais persévérer dans IB...

    @+
    J'avais pas vu que vous n'aviez pas mis toutes les colonnes ds le group by..... Mais ca n'empèche que la solution avec l'index des colonne fonctionne sous FB et il me semblait que sous IB aussi.

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

Discussions similaires

  1. [Débutant] Problème avec Dev-Cpp 4.9.9.0
    Par P4Pi dans le forum Dev-C++
    Réponses: 7
    Dernier message: 16/01/2010, 16h48
  2. [XML][XSLT] Débutant {Probléme avec For-each-group}
    Par Silvia12 dans le forum XSL/XSLT/XPATH
    Réponses: 6
    Dernier message: 29/01/2006, 21h38
  3. [débutant] problème avec le curseur (sablier)
    Par bat dans le forum AWT/Swing
    Réponses: 4
    Dernier message: 01/12/2004, 08h26
  4. [débutant] problème avec un "if"
    Par pingoui dans le forum Langage
    Réponses: 10
    Dernier message: 11/08/2004, 09h46
  5. [débutant] Problèmes avec CRegKey
    Par Pedro dans le forum MFC
    Réponses: 4
    Dernier message: 10/11/2003, 15h28

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