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 :

Besoin d'aide pour une requête SQL


Sujet :

SQL Oracle

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 8
    Points : 7
    Points
    7
    Par défaut Besoin d'aide pour une requête SQL
    Bonjour,

    J'aurais besoin d'un petit coup de main pour une requête SQL...

    Une table 3 champs:

    ARTICLE TYPE ORDRE
    A X 3
    A Y 3
    B X 1
    C X 2
    D X 4

    J'aimerais construire une requête me permettant d'afficher:

    ARTICLE TYPE ORDRE
    B X 1
    C X 2
    A Y 3
    D X 4

    A savoir récupérer la liste des articles de type X uniquement s'il n'y a pas de type Y auquel cas on récupère le type Y le tout ordonné sur la dernière colonne

    Je tourne et retourne sans résultat probant...

    Merci d'avance pour votre aide

    Cordialement

    Marsu

    ps: c'est un exemple simplifié mon cas réel comporte plus de colonne, etc; mais cela représente la problèmatique

  2. #2
    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
    Il y a que le type X et Y ?
    Si oui
    Cherchez sur ce forum First/Last dans leur version agrégée.

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 8
    Points : 7
    Points
    7
    Par défaut
    Bonsoir Mnitu,

    Citation Envoyé par mnitu Voir le message
    Il y a que le type X et Y ?
    Si oui
    Non il y a plusieurs valeurs possibles, j'ai simplifié..

    Merci

  4. #4
    Membre chevronné

    Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2002
    Messages
    1 288
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Août 2002
    Messages : 1 288
    Points : 1 936
    Points
    1 936
    Par défaut
    Quelque chose comme ça devrait fonctionner. Il y a peut-être plus performant.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    select * from articles as a
    where (type='Y' and exists (select b.article from articles as b where a.article=b.article and type='X'))
    or (type='X' and not exists (select b.article from articles as b where a.article=b.article and type='Y'))
    order by ordre;
    Delphi 7/XE2/XE3
    C#
    Oracle 9i à 12c
    SQL Server 2008 à 2014

  5. #5
    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
    Citation Envoyé par marsu_31 Voir le message
    Bonsoir Mnitu,



    Non il y a plusieurs valeurs possibles, j'ai simplifié..

    Merci
    OK. Commencez avec First/Last et revenez avec un exemple simplifié mais complet.

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 8
    Points : 7
    Points
    7
    Par défaut
    Merci à vous deux pour vos réponses.

    Je regarde chacune des solutions

    Cdlt

    Nicolas

  7. #7
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 8
    Points : 7
    Points
    7
    Par défaut
    ça fonctionne a voir avec la montée en charge si le temps de traitement est acceptable ou s'il me faudra chercher à optimiser la requête.

    J'ai finalement utilisé un mix de vos deux propositions de solution.

    Merci encore

    Cdlt

    Nicolas

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

Discussions similaires

  1. Besoin d'aide pour une requête SQL
    Par p_oum dans le forum MS SQL Server
    Réponses: 9
    Dernier message: 26/11/2009, 09h29
  2. Besoin d'aide pour une requête SQL
    Par sexy-meta dans le forum Langage SQL
    Réponses: 6
    Dernier message: 08/07/2008, 14h36
  3. Besoin d'aide pour une requête SQL
    Par FranckyVegas dans le forum Langage SQL
    Réponses: 7
    Dernier message: 27/05/2008, 20h16
  4. Besoin d'aide pour une requête SQL
    Par Borami dans le forum Langage SQL
    Réponses: 1
    Dernier message: 07/11/2005, 10h33
  5. Besoin d'aide pour une Requête SQL ...
    Par Kokito dans le forum Requêtes
    Réponses: 2
    Dernier message: 07/07/2004, 11h56

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