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 :

Besoin d'aide pour créer une requête


Sujet :

Requêtes et SQL.

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 63
    Points : 18
    Points
    18
    Par défaut Besoin d'aide pour créer une requête
    Bonjour, j'ai un problème où je bloque :

    voici le résultat de ma requête :


    22/05/2008 0
    21/05/2008 40
    20/05/2008 12
    19/05/2008 108

    Je voudrais que le 40 se mette à la date du 22/05/2008, que le 12 se mette à la date du 21/05/2008 et que le 108 se mette à la date du 20/05/2008 et qu'au 19/05/2008 se mette le chiffre se trouvant au 16/05/2008.

    Pouvez-vous m'aider?

  2. #2
    Membre expert
    Avatar de mout1234
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    2 210
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 2 210
    Points : 3 228
    Points
    3 228
    Par défaut
    Bonjour,

    Je doute fort que quelqu'un sache t'aider.

    Précise STP le contexte, ce que tu entends par "le 40 se mette à la date du 22/05/2008" et montre le code SQL de ta requête.

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 63
    Points : 18
    Points
    18
    Par défaut
    Les chiffre en faite ce sont les en-cours et je voudrais avoir le jour du systeme par exemple aujourd'hui le 22/05/2008, l'en-cours de la veille.

    En faite je voudrais qu'il s'affiche sur la ligne d'aujourd'hui l'en-cours de la veille.

  4. #4
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 642
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 642
    Points : 34 351
    Points
    34 351
    Par défaut
    Il me semble que la manipulation des données selon leur ordre est assez particulière.

    L'idée serait d'avoir en fait 3 colonnes
    DT_AvantModif
    DT_ApresModif
    SommeDecalée.

    La première requete sert à trouver DT_AvantModif et DT_ApresModif.
    La seconde relie simplement DT_ApresModif avec la table de départ.

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 63
    Points : 18
    Points
    18
    Par défaut
    et comment faire ces requêtes.

    Il doivent contenir quoi?

  6. #6
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 642
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 642
    Points : 34 351
    Points
    34 351
    Par défaut
    en 3 étapes par exemple :
    1/ récupération des combinaisons de toutes les dates
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT T1.ChampDate AS DateAvantModif, T2.ChampDate as Date2
    FROM MaTable AS T1, MaTable AS T2
    WHERE T1.ChampDate>T2.ChampDate;

    2/que tu transformes en sous requete en prenant le max

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT DateAvantModif, MAX(Date2) As DateApresModif FROM (SELECT T1.ChampDate AS DateAvantModif, T2.ChampDate as Date2
    FROM MaTable AS T1, MaTable AS T2
    WHERE T1.ChampDate>T2.ChampDate) GROUP BY DateAvantModif;

    3/ tu relies les valeurs (ici ma requête du 2 s'appelle R1
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT R1.DateApresModif, MaTable.Somme
    FROM R1 INNER JOIN MaTable ON R1.DateApresModif = MaTable.ChampDate;

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 63
    Points : 18
    Points
    18
    Par défaut
    donc je doit faire 3 requêtes ou je doit mettre les 3 dans une seule requête?

  8. #8
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 642
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 642
    Points : 34 351
    Points
    34 351
    Par défaut
    les 2 solutions fonctionnent,
    à maintenir c'est mieux d'en avoir 3 qu'une seule

  9. #9
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 63
    Points : 18
    Points
    18
    Par défaut
    T1 c quoi c'est une table.

    En faite j'utilise une table appelé Jours de Charges et pour le champs date c'est Date_Charge

    Pourrais tu me donner les 3 requêtes avec en remplacant les T1 etc... par c'est nom la stp?

  10. #10
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 642
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 642
    Points : 34 351
    Points
    34 351
    Par défaut
    T1 est un alias, comme il apparait ici :

    Par contre, ne pousse pas mémé dans les orties,
    tu remplaces MaTable par [Jours de Charges] et ChampDate par [Date_Charge] et ca passe

  11. #11
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 63
    Points : 18
    Points
    18
    Par défaut
    la requête du 2 je doit l'appeler R1 pour qu'il la prenne dans la requête du 3 c'est ça?

  12. #12
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 642
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 642
    Points : 34 351
    Points
    34 351
    Par défaut
    oui

  13. #13
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 124
    Points : 55 905
    Points
    55 905
    Billets dans le blog
    131
    Par défaut
    Bonsoir

    Ne serait-pas plus simple d'utiliser une seule requête sur base de la source de données qui te donne les deux colonnes que tu montres dans ton premier message...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT [DateSaisie]+1 AS Lendemain, Valeur
    FROM Table3
    ORDER BY [DateSaisie]+1 DESC;
    en adaptant les noms des champs et de la table ou de la requête selon ceux de ta situation...

    Ou alors je n'ai pas compris la question...

  14. #14
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 219
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 79
    Localisation : France

    Informations professionnelles :
    Secteur : Services à domicile

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 219
    Points : 1 707
    Points
    1 707
    Par défaut
    autre solution si il y a un champ n° auto dans la requête ou si l'on peut le mettre au cas où les dates ne se suivraient pas ex : WE

  15. #15
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 63
    Points : 18
    Points
    18
    Par défaut
    Merci le Vieux ta requête fonctionne.

  16. #16
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 642
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 642
    Points : 34 351
    Points
    34 351
    Par défaut
    Hello,
    @ Pierre : il me semblait impossible de passer par cette méthode, dans la mesure où la date précédent le 19/05 est le 16/05 (jours ouvrés).

    @ Fabien : comme tu n'as pas l'air d'avoir trouvé, voila la requête en un seul morceau :
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT R1.DateApresModif, [Jours de Charges].Somme
    FROM (SELECT DateAvantModif, MAX(Date2) AS DateApresModif FROM (SELECT T1.Date_Charge AS DateAvantModif, T2.Date_Charge AS Date2
    FROM [Jours de Charges] AS T1, [Jours de Charges] AS T2
    WHERE T1.Date_Charge>T2.Date_Charge) GROUP BY DateAvantModif)) AS R1 INNER JOIN [Jours de Charges] ON R1.DateApresModif = [Jours de Charges].Date_Charge;

    edit : suppression du ; et ajout des deux parentheses

  17. #17
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 124
    Points : 55 905
    Points
    55 905
    Billets dans le blog
    131
    Par défaut
    S'il faut tenir compte des samedis et dimanches

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT IIf(Weekday([datesaisie],2)=5,[datesaisie]+3,[datesaisie]+1) AS Jour, Valeur
    FROM Table3
    ORDER BY IIf(Weekday([datesaisie],2)=5,[datesaisie]+3,[datesaisie]+1) DESC;

  18. #18
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 63
    Points : 18
    Points
    18
    Par défaut
    pourquoi il y a 2 FROM dans la requête il veut pas l'exécuter à cause de ça

    MaTable.Somme ne marche pas que veut tu dire par MaTable.Somme?

  19. #19
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 124
    Points : 55 905
    Points
    55 905
    Billets dans le blog
    131
    Par défaut
    Fabien,

    As-tu essayé ma requête? Ne te donne-t-elle pas satisfaction?

  20. #20
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 63
    Points : 18
    Points
    18
    Par défaut
    ta requête fonctionne sauf qu'elle me donne jamer la ligne avec le numéro 1 comment dois je faire?

    je voudrais aussi intégrer ta requete dans une autre comment je dois faire?

Discussions similaires

  1. Besoin d'aide pour créer une requête
    Par cedric/copy dans le forum ASP
    Réponses: 6
    Dernier message: 13/03/2009, 16h29
  2. Besoin d'aide pour créer une BD
    Par desfrags dans le forum Débuter
    Réponses: 6
    Dernier message: 30/01/2008, 22h20
  3. [MySQL] besoin d'aide pour exécuter une requête et en récupérer le résultat
    Par fast462 dans le forum PHP & Base de données
    Réponses: 9
    Dernier message: 28/05/2007, 10h30
  4. besoin d 'aide pour formuler une requête
    Par cdu dans le forum Langage SQL
    Réponses: 2
    Dernier message: 08/04/2006, 19h38
  5. besoin d'aide pour optimiser une requête
    Par jisse dans le forum Langage SQL
    Réponses: 4
    Dernier message: 27/01/2006, 09h41

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