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 :

select dans la clause From


Sujet :

Langage SQL

  1. #1
    Membre du Club
    Inscrit en
    Avril 2003
    Messages
    124
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 124
    Points : 56
    Points
    56
    Par défaut select dans la clause From
    Je fais pas mal de requêtes mais pas des très compliquées. Et là j'ai un petit problème avec Interbase (V6.1 - opensource).

    J'ai 2 tables BOOK1 et BOOK2 qui comporte les mêmes champs (ID_CLIENT, HEBDO, QTE)

    BOOK 1

    1 200701 2
    2 200701 4
    3 200701 5
    1 200702 3
    2 200702 4

    BOOK 2

    4 200701 1
    5 200701 2
    6 200701 4
    4 200702 5
    6 200702 3

    Donnerait :

    200701 18
    200702 15



    Je veux faire la somme des quantités hebdomadaires sur ces deux tables.

    Je pensais donc à :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    SELECT HEBDO, SUM(QTE) AS QTE
    FROM
      (SELECT HEBDO, QTE FROM BOOK1 
       UNION
       SELECT HEBDO, QTE FROM BOOK2)
    GROUP BY HEBDO
    mais la clause FROM n'accepte pas le SELECT.

    Connaissez vous une autre méthode ?

    Merci

  2. #2
    Membre expert
    Avatar de e-ric
    Homme Profil pro
    Apprenti chat, bienfaiteur de tritons et autres bestioles
    Inscrit en
    Mars 2002
    Messages
    1 561
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Apprenti chat, bienfaiteur de tritons et autres bestioles

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 561
    Points : 3 955
    Points
    3 955
    Par défaut
    Salut

    Dommage cette notation serait intéressante.

    A défaut de mieux, crées une vue qui "habille" l'union :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    CREATE VIEW ALL_BOOKS AS 
      SELECT HEBDO, QTE FROM BOOK1 
      UNION
      SELECT HEBDO, QTE FROM BOOK2
    Sur cette vue, tu appliques ton SELECT avec GROUP.

    Je ne peux pas tester. Donne des nouvelles si ça marche.

    cdlt

    e-ric

  3. #3
    Membre du Club
    Inscrit en
    Avril 2003
    Messages
    124
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 124
    Points : 56
    Points
    56
    Par défaut
    Merci pour ta réponse mais elle ne me convient pas car afin de ne pas dépendre de mon SGBDR (si je veux évoluer facilement vers un autre), ma base n'est qu'un fichier de stockage de données. Je n'ai donc que des tables dedans ; ni de PS, ni de vues. Ce choix peut se discuter mais c'est le mien.

    Si il n'y a pas de solution dite SQL direct, je vais retravailler la structure de ma base et notemment de mes 2 tables en les fusionnant en une seule où j'ajouterais un flag (0 ou 1) pour savoir si les enregistrement réagissent à la manière de BOOK1 ou de BOOK2. Il va donc falloir que je me retape un peut de programme.

    Si quelqun a la solution, j'attends encore un peu ...

  4. #4
    Membre expert
    Avatar de e-ric
    Homme Profil pro
    Apprenti chat, bienfaiteur de tritons et autres bestioles
    Inscrit en
    Mars 2002
    Messages
    1 561
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Apprenti chat, bienfaiteur de tritons et autres bestioles

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 561
    Points : 3 955
    Points
    3 955
    Par défaut
    Salut

    La solution que tu as retenu permet de rationnaliser la structure de ta base, c'est très pertinent si les deux tables ont une structure identique.

    Sinon, j'ai cru comprendre que Firebird permettra dans un avenir proche d'écrire directement une telle requête comme tu le souhaite, à vérifier bien sûr. Oracle le permet déjà, c'est effectivement très pratique.

    cdlt

    e-ric

  5. #5
    Membre du Club
    Inscrit en
    Avril 2003
    Messages
    124
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 124
    Points : 56
    Points
    56
    Par défaut
    Je pense basculer sur FireBird dès que je sortirais un peu la tête de l'eau. Vu que personne semble avoir d'idée, cette fois-ci je vais me taper un peu de code à refaire (ça m'apprendra à vouloir compliquer les choses - c'est la résultante d'une mauvaise analyse du problème à la base).

    Merci pour tes réponses

Discussions similaires

  1. Sous-select dans la clause FROM
    Par DIJON dans le forum SQL
    Réponses: 16
    Dernier message: 16/11/2007, 18h24
  2. message d'erreur dans access (clause FROM)
    Par Gabe74 dans le forum Access
    Réponses: 2
    Dernier message: 24/01/2007, 20h08
  3. Variable dans la clause from ?
    Par All Jinx dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 29/11/2006, 11h38
  4. Erreur de syntaxe dans la clause from
    Par shub dans le forum Access
    Réponses: 1
    Dernier message: 12/06/2006, 20h24
  5. Réponses: 2
    Dernier message: 03/06/2006, 00h22

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