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

Requêtes et SQL. Discussion :

sql : ne prendre qu'une seule donnée


Sujet :

Requêtes et SQL.

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

    Informations forums :
    Inscription : Octobre 2006
    Messages : 251
    Points : 57
    Points
    57
    Par défaut sql : ne prendre qu'une seule donnée
    Bonjour,

    Je souhaite associer un budget à chaque poste de dépense (=alimentation, loisir …), budget qui est ajusté au fil du temps mais lorsque je fais la requête j’ai des lignes qui apparaissent plusieurs fois
    requete est :

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    SELECT dépense.ddate, dépense.montant, dépense.poste, budget.budget
    FROM dépense INNER JOIN budget ON dépense.poste = budget.poste
    where dépense.ddate>=budget.date_début

    un exemple des contenus des tables « Budget » et « dépense » (des postes peuvent apparaître en double suivant la réestimation des budgets)

    Budget
    date_début budget poste
    01/01/2015 200 1
    01/01/2015 1000 2
    02/07/2015 500 1
    15/04/2015 750 2


    dépense
    ddate montant poste
    02/05/2015 20 1
    02/08/2015 25 1
    03/04/2015 205 2
    26/04/2015 150 2

    Est-il possible de faire apparaître le bon budget à la bonne date et faire apparaitre qu’une seule ligne ?

    Merci par avance,

    Cordialement,

  2. #2
    Membre actif

    Homme Profil pro
    Elève au Lycée ayant pour ambition Ingenieur Informaticien
    Inscrit en
    Avril 2014
    Messages
    285
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Elève au Lycée ayant pour ambition Ingenieur Informaticien
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2014
    Messages : 285
    Points : 268
    Points
    268
    Billets dans le blog
    1
    Par défaut
    Bonjour,

    En examinent ton sql je pense pas que sa soit possible de réaliser ce que tu veux(à moins que tu change de critère)

    tu dis que ddate(dépense) doit être supérieure ou égale à date_début(budget)

    Regarde l'enregistrement de la ddate(dépense) du 02/08/15 tu remarque que cette date est supérieure à toute les date_début(budget) et aussi il y' a 2 postes de même numéro qui correspond à cela.

    Alors dans ce ca quel poste choisir?
    Cordialement,

    "C'est une requête SQL qui entre dans un bar, et le serveur répond : « Il n'y a plus de tables ! ».
    Refusée au bar, la requête SQL veut aller en boîte et le videur lui dit : « Non, dehors ! C'est select ici. »

    "

    Sankara Adama
    A+

  3. #3
    Membre actif

    Homme Profil pro
    Elève au Lycée ayant pour ambition Ingenieur Informaticien
    Inscrit en
    Avril 2014
    Messages
    285
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Elève au Lycée ayant pour ambition Ingenieur Informaticien
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2014
    Messages : 285
    Points : 268
    Points
    268
    Billets dans le blog
    1
    Par défaut
    Nom : mamessfinal.png
Affichages : 133
Taille : 25,2 Ko
    Cordialement,

    "C'est une requête SQL qui entre dans un bar, et le serveur répond : « Il n'y a plus de tables ! ».
    Refusée au bar, la requête SQL veut aller en boîte et le videur lui dit : « Non, dehors ! C'est select ici. »

    "

    Sankara Adama
    A+

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

    Informations forums :
    Inscription : Octobre 2006
    Messages : 251
    Points : 57
    Points
    57
    Par défaut
    bonjour,
    merci pour ce retour

    en fait justement je voulais afficher par exemple pour cette du 02/08/2015 le budget du 02/07/2015 (date la plus proche du 02/08/2015) c'est à dire 500€
    si la dépense de 25€ pour ce poste 1 n'était pas intervenu le 02/08/2015 mais le 08/02/2015 alors j'aurai aimé avoir le budget du 01/01/2015 correspondant au poste 1 cad 200€ (le budget de ce poste 1 n'a été réévalué que le 02/07/2015 et au moment de la dépense du 08/02/2015 on n'avait que le budget du 01/01/2015 et pas celui du 02/07/2015)
    a chaque date et chaque poste ne doit etre associé qu'un seul budget (suivant la date de la dépense et de la détermination du budget)

    je ne sais pas si c'est plus clair et si possible.

    merci

  5. #5
    Membre actif

    Homme Profil pro
    Elève au Lycée ayant pour ambition Ingenieur Informaticien
    Inscrit en
    Avril 2014
    Messages
    285
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Elève au Lycée ayant pour ambition Ingenieur Informaticien
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2014
    Messages : 285
    Points : 268
    Points
    268
    Billets dans le blog
    1
    Par défaut
    Nom : tux.PNG
Affichages : 131
Taille : 16,6 Ko
    ?
    Cordialement,

    "C'est une requête SQL qui entre dans un bar, et le serveur répond : « Il n'y a plus de tables ! ».
    Refusée au bar, la requête SQL veut aller en boîte et le videur lui dit : « Non, dehors ! C'est select ici. »

    "

    Sankara Adama
    A+

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

    Informations forums :
    Inscription : Octobre 2006
    Messages : 251
    Points : 57
    Points
    57
    Par défaut
    bonjour,

    merci

    c'est presque cela mais le budget de la 2ème ligne (dépense du 26/04/2015) est de 750€ et non de 1000€ : en fait le budget peut etre revu aussi bien à la hausse qu'à la baisse
    (donc je pense qu'un max ne marche pas , je crois que vous avez utilisez ca...)

    Cordialement,

  7. #7
    Membre actif

    Homme Profil pro
    Elève au Lycée ayant pour ambition Ingenieur Informaticien
    Inscrit en
    Avril 2014
    Messages
    285
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Elève au Lycée ayant pour ambition Ingenieur Informaticien
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2014
    Messages : 285
    Points : 268
    Points
    268
    Billets dans le blog
    1
    Par défaut
    Bonsoir,

    Question: Pourquoi le Budget de la deuxieme ligne est de 750€ ?
    Si je pose cette question c'est pour mieux comprendre(je ne connais rien en compatibilité.)

    Tiens bon Moimemess
    Cordialement,

    "C'est une requête SQL qui entre dans un bar, et le serveur répond : « Il n'y a plus de tables ! ».
    Refusée au bar, la requête SQL veut aller en boîte et le videur lui dit : « Non, dehors ! C'est select ici. »

    "

    Sankara Adama
    A+

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

    Informations forums :
    Inscription : Octobre 2006
    Messages : 251
    Points : 57
    Points
    57
    Par défaut
    Bonsoir

    En fait le budget c'est 750€ car il a été revu il aurait pu très bien être à 700 ou 775€

    Merci

  9. #9
    Membre expert
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Octobre 2012
    Messages
    1 873
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2012
    Messages : 1 873
    Points : 3 459
    Points
    3 459
    Par défaut
    Bonjour moimemessssssssss, adama13,

    Si je comprend bien ton problème, tu veux récupérer le montant du budget dont la date est la plus grande dans ta table budget tout en étant plus petite que la date de la dépense. Si c'est bien le cas la requête suivante fait cela.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    SELECT dépense.ddate, dépense.montant, dépense.poste, budget.budget
    FROM dépense INNER JOIN budget ON dépense.poste = budget.poste
    WHERE budget.date_début=(SELECT Max(budget.date_début) AS MaxDedate_début
    FROM budget
    WHERE budget.poste=[dépense].[poste] AND budget.date_début<=[dépense].[ddate];)
    ORDER BY dépense.ddate;
    Je me suis servi des noms de tables et de champs que tu avais mis dans le premier post.

    Bonne journée
    Ce qui se conçoit bien s’énonce clairement et les mots pour le dire arrivent aisément. Nicolas Boileau
    Si tout est OK, n'oubliez pas de cliquer sur

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

    Informations forums :
    Inscription : Octobre 2006
    Messages : 251
    Points : 57
    Points
    57
    Par défaut
    Bonjour,

    Merci pour ce retour
    c'est cela que je cherchais à faire!
    j'étais pas pres de trouver avec ce "select" dans le "where"

    Bonne journée

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

Discussions similaires

  1. SQL : plusieurs table ou une seule ?
    Par Pacen dans le forum Décisions SGBD
    Réponses: 3
    Dernier message: 07/06/2010, 09h27
  2. [PHP 5.0] Extraire une seule donnée avec SimpleXML
    Par kryogen dans le forum Langage
    Réponses: 2
    Dernier message: 14/12/2009, 12h09
  3. Problème TCPListener, Sockets : Une seule donnée reçue
    Par mehdi_862000 dans le forum Visual C++
    Réponses: 2
    Dernier message: 28/09/2009, 03h15
  4. Modifier une seule donnée spécifique.
    Par amerex dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 15/07/2008, 01h23
  5. une seule donnée
    Par yousron dans le forum Access
    Réponses: 1
    Dernier message: 09/01/2007, 14h02

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