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

SQL Oracle Discussion :

peut-on faire un "foreach"?


Sujet :

SQL Oracle

  1. #1
    Membre du Club
    Inscrit en
    Janvier 2010
    Messages
    84
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 84
    Points : 47
    Points
    47
    Par défaut peut-on faire un "foreach"?
    Salut,

    Je ne sais pas s'il existe un équivalent d'un "foreach" avec sql (ou pl/sql).

    En fait, j'ai une requête qui fonctionne bien en rentrant la valeur de filtre (ici toto):

    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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
     
    select ba, count(bb) from (
    select 
    A.ba,
    B.bb
    from ds A,st B,dl L
    where A.ida2a2 = L.IDA3A5
    and   B.ida2a2 = L.IDA3B5
    and   A.ba = 'toto'
    UNION
    select 
    A.ba,
    B.bb
    from ds A,dst B,dlk L
    where A.ida2a2 = L.IDA3A5
    and   B.ida2a2 = L.IDA3B5
    and   A.ba = 'toto'
    UNION
    select 
    A.ba,
    B.ba
    from ds A,r B,rl L
    where A.ida2a2 = L.IDA3A5
    and   B.ida2a2 = L.IDA3B5
    and   A.ba = 'toto'
    UNION
    select 
    A.ba,
    B.bb
    from ds A,ap B
    where B.bb  like A.ba||'%'
    and   A.ba = 'toto'
    ) group by ba
    ce qui me donné un résultat du style:
    toto;5

    je voudrais passer cette requête sur toutes les valeurs distinct de ba (tous les "toto")
    En fait je voudrais savoir s'il est possible de passer en paramètre de cette requête toutes les valeurs de cette requête:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    select distinct(ba) from ds;
    par avance merci
    YZF-R

  2. #2
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Sr. Specialist Solutions Architect @Databricks
    Inscrit en
    Septembre 2008
    Messages
    8 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Sr. Specialist Solutions Architect @Databricks
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 453
    Points : 18 388
    Points
    18 388
    Par défaut
    En profitant du mécanisme de jointure via la suppression de vos conditions sur a.ba = 'toto' !

  3. #3
    Expert éminent sénior Avatar de mnitu
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2007
    Messages
    5 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2007
    Messages : 5 611
    Points : 11 252
    Points
    11 252
    Par défaut
    Essayez de supprimer les filtres de type
    dans votre requête et d'utiliser group by.

  4. #4
    Membre du Club
    Inscrit en
    Janvier 2010
    Messages
    84
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 84
    Points : 47
    Points
    47
    Par défaut
    Ah ben voui!
    Honte sur moi

    merci pour votre aide!

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

Discussions similaires

  1. ne peut pas simplement "aXSLProc.Process(aCursor);"
    Par didier.cabale dans le forum XMLRAD
    Réponses: 16
    Dernier message: 08/03/2006, 12h25

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