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 :

Aide requête sql


Sujet :

Langage SQL

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2015
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2015
    Messages : 5
    Points : 5
    Points
    5
    Par défaut Aide requête sql
    Bonjour à tous le monde,

    Me voici en face d'un problème
    Conf : Base HFSQL

    Voici la configuration de mes tables:
    T_aliments ( id, libelle, type) : table ou je référence tous les noms des différents plats ( le type étant : entrée/plat/fromage etc..)
    t_lnk_repas_util (id_repas, id_util ,date_repas) : 1 ligne représente 1 repas pour 1 utilisateur
    t_lnk_repas_aliments(id_repas,id_aliment) : 1 ligne permet de lié un aliment à un repas ==> 5 lignes pour un repas

    Le but étant de pouvoir sortir un état pour compter le nombre d'aliments dans une journée
    Exemple 01/01/2015 :
    entrée_1 : 15
    entrée_2: 7
    plat_1 : 12
    légumes_1 : 7
    etc...

    J'arrive à obtenir cet état avec la requête suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    select distinct libelle, count(libelle) 
    from T_LNK_REPAS_UTIL lru LEFT OUTER JOIN T_LNK_REPAS_ALIMENTS lra ON (lru.id_repas = lra.id_repas), T_LNK_REPAS_ALIMENTS lra  left outer join T_ALIMENTS a on(lra.id_aliments = a.id_aliments) 
    where Date_repas = '20150101' group by libelle
    Seulement voilà...
    Je souhaiterais que avoir le même comptage mais avec plat et légumes piper (un bon coup de franglais ça fait pas de mal)

    Exemple :
    entrée_1 : 20
    entrée _2 : 7
    plat_1 || légume_1 : 2
    plat_1 || légume_2 : 7
    plat_2 || légume_2 : 3
    fromage_1: 8
    ect..

    Voici un essai d'auto jointure qui... bien sur ne fonctionne pas ( ben oui sinon je ne serais pas la x) )

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    select id_util, lru.id_repas, a.libelle
    FROM T_LNK_REPAS_UTIL lru, T_LNK_REPAS_ALIMENTS lra, T_ALIMENTS a, t_aliments b
    where lru.date_repas = '20150603'
    and lru.id_repas = lra.id_repas
    AND (lra.id_aliments = a.id_aliments(+) AND a.id_type in (5,55))
    AND (lra.id_aliments = b.id_aliments(+) AND b.id_type in (2,22))
    A tous ceux qui ont pris le temps de lire merci !

    A Bientôt

    Cordialement.

  2. #2
    Membre éclairé Avatar de bstevy
    Homme Profil pro
    Solutions Architect
    Inscrit en
    Mai 2009
    Messages
    552
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Japon

    Informations professionnelles :
    Activité : Solutions Architect
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2009
    Messages : 552
    Points : 870
    Points
    870
    Par défaut
    De ce que je comprends, vous voulez introduire une règle de gestion particulière pour les lignes plats et légume.
    De ce fait, le meilleur moyene est sans doute de séparer votre requète en deux


    D'un coté, vous selectionnez vos types qui sont différents de plat et légume, et vous affichez le count

    De l'autre, vous faite une jointure entre plat et légume, avec une somme des counts, et une concaténation (le mot francais pour PIPER) des valeurs de la colonne "libelle"

    Le tout, avec un union all devrait vous afficher le résultat attendu.

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2015
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2015
    Messages : 5
    Points : 5
    Points
    5
    Par défaut
    Merci pour la réponse,

    Je ferai un retour dès que j'aurais le temps de m'y remettre

    Merci.

    Cordialement.

Discussions similaires

  1. Réponses: 4
    Dernier message: 13/11/2007, 23h23
  2. Aide Requête SQL
    Par jjg65 dans le forum Langage SQL
    Réponses: 5
    Dernier message: 26/07/2007, 11h37
  3. Aide requête SQL - UPDATE phpmyadmin
    Par laulau37 dans le forum Langage SQL
    Réponses: 2
    Dernier message: 20/06/2007, 11h19
  4. Aide requête sql
    Par viny dans le forum PostgreSQL
    Réponses: 18
    Dernier message: 14/09/2006, 22h31
  5. Aide Requête SQL (UPDATE)
    Par Glowprod dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 26/07/2006, 15h04

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