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 :

Requête de sélection en fonction de dates


Sujet :

Requêtes et SQL.

  1. #1
    Membre à l'essai
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Janvier 2013
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2013
    Messages : 19
    Points : 17
    Points
    17
    Par défaut Requête de sélection en fonction de dates
    Bonjour,

    Je suis un peu perdu dans la création de requête.
    J'ai 2 tables une listant des champs concernant des lieux et l'autre listant des champs concernant des rapports d'activité liés aux lieux de la première table.
    Je souhaiterai créer une requête qui me permette de ne faire ressortir que les derniers rapports liés à chaque lieux. Pour chaque rapport j'ai une date et un ID lié au lieu.
    j'aimerai donc que la requête m'affiche le nom des lieux ainsi que les dates et conclusions générales du dernier rapport lié à chaque lieu.
    J'ai essayé plusieurs choses qui n'ont pas fonctionées.
    Je ne travaille qu'en mode création, je ne code pas mais je vous le donne pour info :

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT [Audit - Usines].Factory, [Audit - Reports].Audit_date, [Audit - Reports].Préconisation
    FROM [Audit - Usines] INNER JOIN [Audit - Reports] ON [Audit - Usines].ID_Usine = [Audit - Reports].ID_Usine
    GROUP BY [Audit - Usines].Factory, [Audit - Reports].Audit_date, [Audit - Reports].Préconisation, [Audit - Reports].Initiative
    HAVING ((([Audit - Reports].Initiative)="ICS"));

    Savez-vous comment obtenir le résultat souhaité ?
    D'avance merci pour votre aide.

  2. #2
    Membre éprouvé
    Inscrit en
    Août 2008
    Messages
    740
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 740
    Points : 1 045
    Points
    1 045
    Par défaut
    Bonjour,

    peux tu poster ta base, avec tes 2 tables et quelques données

  3. #3
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    N'utilises pas de requête de statistiques (Group by) pour faire du déboulonnage!
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT Distinct [Audit - Usines].Factory, [Audit - Reports].Audit_date, [Audit - Reports].Préconisation
    FROM [Audit - Usines] INNER JOIN [Audit - Reports] ON [Audit - Usines].ID_Usine = [Audit - Reports].ID_Usine
     
    Where ((([Audit - Reports].Initiative)="ICS"));
    Dernière modification par Invité ; 07/12/2017 à 10h13.

  4. #4
    Membre à l'essai
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Janvier 2013
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2013
    Messages : 19
    Points : 17
    Points
    17
    Par défaut
    Citation Envoyé par accessisgood Voir le message
    Bonjour,

    peux tu poster ta base, avec tes 2 tables et quelques données
    je suis désolé mais je ne peux pas poster ma base mais je peux donner plus d'information concernant la structure si besoin.

  5. #5
    Membre à l'essai
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Janvier 2013
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2013
    Messages : 19
    Points : 17
    Points
    17
    Par défaut
    Citation Envoyé par dysorthographie Voir le message
    Bonjour,
    N'utilises pas de requête de statistiques (Group by) pour faire du déboulonnage!
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT Distinct [Audit - Usines].Factory, [Audit - Reports].Audit_date, [Audit - Reports].Préconisation
    FROM [Audit - Usines] INNER JOIN [Audit - Reports] ON [Audit - Usines].ID_Usine = [Audit - Reports].ID_Usine
     
    Where ((([Audit - Reports].Initiative)="ICS"));
    Bonjour,

    ok merci. Peux-tu me dire ce que ça change ?
    Je n'ai aucune base en Access j'apprends un peu sur le tas par besoin.
    merci

  6. #6
    Invité
    Invité(e)
    Par défaut
    modèle de requête

    Select [Champs]
    From [Tables]
    Where [Contitions]
    Group By [Champs]<>[Somme;Moyenne,Etc]
    Having [coditions]=[Somme;Moyenne,Etc]


    le group by consomme de la ressource SQL doit grouper les données dans un requête temporaire avant d'effectuer le having!

    en d'autre terme les données sont sélectionnées et filtrées selon la close where le résultat est réinjecté dans une autre requête qui exécute le group By en enfin nous avons une troisième requête temporaire qui filtre selon le having!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Select Count([Population Mondial]),Sex
     From Glob 
    Where Pays='France' 
    Group By Sex
    Having Count([Population Mondial])>1000
    le where concerne le Select pour ne pas surchargé le Group By
    le Having concerne le Group By

    le Select distinct ne retourne pas dans la requête les valeur déjà rencontré dans le déroulement de la requête!
    Dernière modification par Invité ; 07/12/2017 à 11h03.

  7. #7
    Membre à l'essai
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Janvier 2013
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2013
    Messages : 19
    Points : 17
    Points
    17
    Par défaut
    Bonjour,

    Merci pour votre réponse rapide. Je comprends mieux maintenant ce qui n'allait pas. Si maintenant je veux lui dire de ne prendre que les [Audit-date] de moins de 2 ans par rapport à la date du jour ou à une date fixe. Vous savez comment je peux faire ?
    J'avais trouvé la formule Expr1: DiffDate("aaaa";[Audit_date];Date())>2 mais ça ne fonctionne pas. il me dit que "Factory" n'est pas spécifiée en tant que partie d'une fonction d'agrégation.
    Je suis encore une fois un peu perdu parce que je ne veux pas un regroupement mais simplement qu'il ne prenne en compte que les lignes pour lesquel la date est de moins de 2 ans.
    Tant que j'y suis je voudrai aussi savoir s'il est possible de lui dire que je ne veux pas qu'il y ai deux ligne avec la même valeur dans [Factory] et qu'en cas de doublon il faut prendre la ligne la plus récente.
    ça me paraissait simple au début mais je n'y arrive pas.

    Merci

    Pour la date j'ai trouvé, j'ai le code suivant :

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT DISTINCT [Audit - Usines].Factory, [Audit - Reports].Audit_date, [Audit - Reports].Préconisation
    FROM [Audit - Usines] INNER JOIN [Audit - Reports] ON [Audit - Usines].ID_Usine = [Audit - Reports].ID_Usine
    WHERE ((([Audit - Reports].Initiative)="ICS") AND (DateDiff("yyyy",[Audit_date],Date())<2));

    reste l'élimination des doublons.

Discussions similaires

  1. [WD18] Requête SQL sélection condition sur 2 Dates
    Par zouzoukha dans le forum WinDev
    Réponses: 2
    Dernier message: 25/07/2014, 11h32
  2. [SQL] Élaborer une requête de sélection en fonction d'un formulaire
    Par encore_php dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 22/02/2008, 08h10
  3. Problème de sélection en fonction des dates
    Par skare dans le forum Requêtes et SQL.
    Réponses: 5
    Dernier message: 22/06/2007, 06h47
  4. Requête de sélection avec fonction "compte"
    Par KEROZEN dans le forum Access
    Réponses: 3
    Dernier message: 25/05/2006, 10h11
  5. Regrouper une sélection en fonction d'un champ et d'une date
    Par 12_darte_12 dans le forum SQL Procédural
    Réponses: 5
    Dernier message: 29/03/2006, 17h12

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