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 :

Besoin aide pour Requete SQL


Sujet :

Langage SQL

  1. #1
    Futur Membre du Club
    Inscrit en
    Mai 2005
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 10
    Points : 8
    Points
    8
    Par défaut Besoin aide pour Requete SQL
    Bonjour,
    Voilà je m'embrouille un peu la tête et j'aurais besoin d'un petit coup de main !
    Alors j'ai plusieurs tables :
    - RUBRIQUES (RUBRIQUE_ID, LIBELLE, CLIENT_ID)
    - RELEVES_RUBRIQUES_USERS (RUBRIQUES_ID, LIBELLE_PERSO,CLIENT_ID)
    Mon problème est le suivant : je voudrait récupérer le libelle_perso (libelle préciser par l'utilisateur, peut ne pas etre préciser) d'une rubrique pour un client 'x' et si ce libelle est null je recup alors le libelle générique (qui est tjr renseigné)

    Ma requête est la suivante :


    SELECT DISTINCT RUBRIQUE_ID, LIBELLE
    FROM(SELECT DISTINCT LIBELLE_PERSO AS LIBELLE, RUBRIQUE_ID, 2 AS ordre
    FROM RELEVES_RUBRIQUES_USERS
    WHERE CLIENT_ID = 119
    AND LIBELLE_PERSO IS NOT NULL
    UNION
    SELECT DISTINCT LIBELLE AS LIBELLE, RUBRIQUE_ID, 1 AS ordre
    FROM RUBRIQUES
    WHERE RUBRIQUE_ID != '001'
    AND CLIENT_ID = 119)


    Mais pour l'instant cette requete est incomplète vu qu'elle me rend tous les résultats. (expl de lignes renvoyées: libelle="heure rtt" rubrique_id=45 et libelle="passage de consigne" rubrique_id=45 ) la premiere étant le libelle_perso et la seconde le libelle normal, j'aimerais donc que libelle perso vu qu'il existe, et sinon les autres libelles....On ma dit de bidouiller avec les ordre mais je vois pas cmt faire, Ensuite faudra que je mette les résultats dans une Hashtable en C#

    Je vous remercie par avance!

  2. #2
    Expert éminent
    Avatar de Swoög
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Points : 8 339
    Points
    8 339
    Par défaut
    pourrais-tu préciser ton SGBD s'il te plaît ?
    Rédacteur "éclectique" (XML, Cours PHP, Cours JavaScript, IRC, Web...)
    Les Règles du Forum - Mon Site Web sur DVP.com (Développement Web, PHP, (X)HTML/CSS, SQL, XML, IRC)
    je ne répondrai à aucune question technique via MP, MSN ou Skype : les Forums sont là pour ça !!! Merci de me demander avant de m'ajouter à vos contacts sinon je bloque !
    pensez à la balise [ code ] (bouton #) et au tag (en bas)

  3. #3
    Futur Membre du Club
    Inscrit en
    Mai 2005
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 10
    Points : 8
    Points
    8
    Par défaut
    c'est oracle

  4. #4
    Expert éminent
    Avatar de Swoög
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Points : 8 339
    Points
    8 339
    Par défaut
    Je ne comprend pas pourquoi tes deux tables ont un champ CLIENT_ID...


    Si j'ai bien compris ce que tu veux faire, essaie (Je suppose que tu une version >= 9 ) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
       SELECT R.RUBRIQUE_ID, RRU.LIBELLE_PERSO
       FROM RUBRIQUES R
          INNER JOIN RELEVES_RUBRIQUES_USERS RRU
             ON R.RUBRIQUE_ID = RRU.RUBRIQUE_ID AND R.CLIENT_ID = RRU.CLIENT_ID
       WHERE R.CLIENT_ID = 119
    UNION
       SELECT R.RUBRIQUE_ID, R.LIBELLE
       FROM RUBRIQUES R
          LEFT JOIN RELEVES_RUBRIQUES_USERS RRU
             ON R.RUBRIQUE_ID = RRU.RUBRIQUE_ID AND R.CLIENT_ID = RRU.CLIENT_ID
       WHERE R.CLIENT_ID = 119
           AND RRU.RRU.LIBELLE_PERSO = NULL
    Rédacteur "éclectique" (XML, Cours PHP, Cours JavaScript, IRC, Web...)
    Les Règles du Forum - Mon Site Web sur DVP.com (Développement Web, PHP, (X)HTML/CSS, SQL, XML, IRC)
    je ne répondrai à aucune question technique via MP, MSN ou Skype : les Forums sont là pour ça !!! Merci de me demander avant de m'ajouter à vos contacts sinon je bloque !
    pensez à la balise [ code ] (bouton #) et au tag (en bas)

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    140
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 140
    Points : 166
    Points
    166
    Par défaut
    Bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    select r.RUBRIQUE_ID, coalesce(LIBELLE_PERSO ,LIBELLE)
    FROM RUBRIQUES r left outer join RELEVES_RUBRIQUES_USERS u
    on r.RUBRIQUE_ID = u.RUBRIQUE_ID 
    and u.CLIENT_ID = 119
    Pour moi client_id n'a pas d'utilité dans la table RUBRIQUES ou il faut l'ajouter dans la jointure

  6. #6
    Inactif   Avatar de Médiat
    Inscrit en
    Décembre 2003
    Messages
    1 946
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 946
    Points : 2 227
    Points
    2 227
    Par défaut
    En supposant que le libelle générique est celui obtenu avec CLIENT_ID = NULL :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    SELECT R.RUBRIQUE_ID, COALESCE(SPE.LIBELLE, GEN.LIBELLE)
    FROM RUBRIQUES R LEFT  JOIN RELEVES_RUBRIQUES_USERS SPE
                             ON R.RUBRIQUE_ID = SPE.RUBRIQUE_ID 
                            AND R.CLIENT_ID   = SPE.CLIENT_ID
                     INNER JOIN RELEVES_RUBRIQUES_USERS GEN
                             ON R.RUBRIQUE_ID = GEN.RUBRIQUE_ID 
                            AND GEN.CLIENT_ID IS NULL
    WHERE R.CLIENT_ID = 119
    J'affirme péremptoirement que toute affirmation péremptoire est fausse
    5ième élément : barde-prince des figures de style, duc de la synecdoque
    Je ne réponds jamais aux questions techniques par MP

  7. #7
    Futur Membre du Club
    Inscrit en
    Mai 2005
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 10
    Points : 8
    Points
    8
    Par défaut
    Le client_id me sert car il est passer en paramètre de ma fonction qui appelle ma requête
    Je vous remercie pour vos réponses j'ai pu m'en sortir et ressortir les bons résultats de ma requête.

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

Discussions similaires

  1. Besoin d'aide pour Requetes SQL
    Par Sophyyy dans le forum Langage SQL
    Réponses: 4
    Dernier message: 26/04/2009, 11h57
  2. [Toutes versions] Besoin d'aide pour Requetes SQL
    Par Sophyyy dans le forum Requêtes et SQL.
    Réponses: 12
    Dernier message: 23/04/2009, 15h52
  3. [OGS ?] Demande d'aide pour requete SQL
    Par hamtary dans le forum Langage SQL
    Réponses: 3
    Dernier message: 31/03/2006, 12h58
  4. Aide Pour Requete SQL Simple ... Merci d'avance :)
    Par thefutureisnow dans le forum Langage SQL
    Réponses: 3
    Dernier message: 09/12/2005, 11h39

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