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 :

Au moins une fois par mois SQL


Sujet :

Langage SQL

  1. #1
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2019
    Messages
    72
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2019
    Messages : 72
    Points : 46
    Points
    46
    Par défaut Au moins une fois par mois SQL
    Bonjour, je souhaiterai afficher une liste de fournisseurs ayant fourni au moins une fois par mois depuis 6 mois

    Voici mon début de requête :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT T0."CardCode" "Code fournisseurs", T0."CardName" "Nom fournisseur" 
    FROM OCPH T0
    WHERE T0."DocDate" ????
    Merci d'avance

  2. #2
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 103
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 103
    Points : 28 394
    Points
    28 394
    Par défaut
    Parmi les lignes des 6 derniers mois regroupées par fournisseur, ne conserver que celles dont le nombre distinct de mois (extrait des dates) est égal à 6.

  3. #3
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2019
    Messages
    72
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2019
    Messages : 72
    Points : 46
    Points
    46
    Par défaut
    Je ne comprends pas votre réponse auriez-vous un exemple à me montrer ?

  4. #4
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 311
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : bourreau
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 10 311
    Points : 39 673
    Points
    39 673
    Billets dans le blog
    9
    Par défaut
    il suffit de traduire en SQL les explications de al1_24

    Soit
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
      select cardcode
           , count(distinct extract (month from docdate))
      from ocph
      group by cardcode
      having count(distinct extract (month from docdate)) = 6

  5. #5
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2019
    Messages
    72
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2019
    Messages : 72
    Points : 46
    Points
    46
    Par défaut
    Ce n'est pas le résultat de ma demande, j'ai peut être mal expliqué, je souhaiterai obtenir une liste de fournisseurs réguliers, afin de différencier les réguliers et les non réguliers j'aimerai obtenir ceux qui ont fourni au minimum une fois par mois depuis janvier 2019 tout les mois. Par exemple "Michel" a fourni au mois de janvier, fevrier, mars, avril, mai, juin, alors je souhaite le voir afficher dans le résultat de ma requête mais si par exemple "Patrick" a fourni au mois de janvier, fevrier, mars, avril, alors je ne souhaite pas le voir afficher car il n'a pas fourni en mai, juin. J'espère avoir été plus précis.

  6. #6
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 103
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 103
    Points : 28 394
    Points
    28 394
    Par défaut
    Il ne manque plus à la requête proposée aimablement par @escartefigue qu'une restriction sur les commandes des six dernier mois...

  7. #7
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2019
    Messages
    72
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2019
    Messages : 72
    Points : 46
    Points
    46
    Par défaut
    Je ne vois pas laquelle

  8. #8
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2019
    Messages
    72
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2019
    Messages : 72
    Points : 46
    Points
    46
    Par défaut
    Personne n'a de réponse ?

  9. #9
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 311
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : bourreau
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 10 311
    Points : 39 673
    Points
    39 673
    Billets dans le blog
    9
    Par défaut
    Les restrictions s'appliquent avec la clause WHERE, vous devriez y arriver en repartant de la requête précédemment proposée dans la réponse n°4

  10. #10
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2019
    Messages
    72
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2019
    Messages : 72
    Points : 46
    Points
    46
    Par défaut
    Vous n'avez pas compris ma demande. Merci quand même.

  11. #11
    Expert éminent sénior
    Homme Profil pro
    Responsable Données
    Inscrit en
    Janvier 2009
    Messages
    5 244
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable Données

    Informations forums :
    Inscription : Janvier 2009
    Messages : 5 244
    Points : 12 878
    Points
    12 878
    Par défaut
    Bonjour,
    La requête donnée par escartefigue renvoie tous les fournisseurs dont les livraisons sont réparties sur 6 mois différents.
    Tu veux les fournisseurs qui ont livré tous les mois sur les 6 derniers mois.
    Donc si on ajoute une restriction sur la requête, pour ne prendre que les livraisons datant de 6 mois ou moins, on a bien la demande initiale:
    Bonjour, je souhaiterai afficher une liste de fournisseurs ayant fourni au moins une fois par mois depuis 6 mois
    Ca revient à récupérer les fournisseurs qui ont livrés sur 6 mois différents les 6 derniers mois.
    Tu ne précises pas le SGBD, mais avec SqlServeur DATEDIFF() permet de connaitre le nombre de mois entre 2 dates.
    Autre solution, passer en paramètre la date de début de la période à prendre en compte, et prendre toutes les livraisons dont la date est supérieure ou égale à cette date (via une requête paramétrée).

    Tatayo.

  12. #12
    Expert éminent
    Avatar de StringBuilder
    Homme Profil pro
    Chef de projets
    Inscrit en
    Février 2010
    Messages
    4 170
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 4 170
    Points : 7 422
    Points
    7 422
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par iKeyyZ Voir le message
    Vous n'avez pas compris ma demande. Merci quand même.
    Vous n'avez pas trop cherché à comprendre la réponse en fait...

Discussions similaires

  1. Crontab une semaine sur deux / deux fois par mois
    Par bo_yoyo dans le forum Shell et commandes GNU
    Réponses: 12
    Dernier message: 25/05/2018, 17h10
  2. [XL-2013] Executer une macro une seule fois par mois
    Par Ghost0000 dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 02/02/2016, 13h54
  3. Réponses: 47
    Dernier message: 01/10/2015, 16h21
  4. Réduction fichier log une fois par mois
    Par ozzy75 dans le forum Administration
    Réponses: 4
    Dernier message: 28/01/2009, 09h02
  5. lu tous les jours mais exécuté une seule fois par mois
    Par sianto dans le forum Scripts/Batch
    Réponses: 13
    Dernier message: 17/11/2008, 09h08

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