none
Filtrer les données de ma demande SQL RRS feed

  • Question

  • Bonjour,

    lorsque j´éxecute la demande SQL suivante dans SQL Server Management, elle me donne un tableau avec les données du 18-06-2012 jusqu´a aujourd´hui. j ´aimerais completer cette demande SQL en sorte que seul les resultats des 30 derniers jours soient affichés sur le tableau.

    USE BarForce SELECT CONVERT(date, FirstInProductionDate) AS Datum, COUNT(CONVERT(date, FirstInProductionDate)) As FirstInProductionDate FROM SlitteApp WHERE FirstInProductionDate IS NOT NULL GROUP BY CONVERT(date, FirstInProductionDate) ORDER BY CONVERT(date, FirstInProductionDate)

    Es ce que quelqu´un peut m´aider comment completer cette demande SQL:

    MERCI

    mercredi 18 février 2015 10:03

Réponses

  • Bonjour,

    Il faut ajouter une condition dans votre clause WHERE :

    ... 
    WHERE 
     FirstInProductionDate IS NOT NULL
     AND CONVERT(date, FirstInProductionDate) >= DATEADD("d", -30, getdate()) 
    ... 

    La fonction DATEADD permet d'ajouter des éléments à une date (jour, mois, année, etc...) donc en prenant la date du jour -30 jours vous avez votre date limite, il suffit ensuite de filtrer vos lignes dont la date est supérieure à cette limite.

    Cordialement,


    Yan Grenier

    • Proposé comme réponse Yan Grenier - MTFC mercredi 18 février 2015 10:30
    • Marqué comme réponse maness mercredi 18 février 2015 10:32
    mercredi 18 février 2015 10:26
  • Bonjour,

    Pourquoi ne pas faire une sous requête qui récupérai la date système et qui compare ensuite avec votre date vous faites des Alias puis ensuite une petite soustraction et enfin un WHERE de l'alias < 30

    Cordialement,


    Vers l'infini et au delà

    • Marqué comme réponse maness mercredi 18 février 2015 10:32
    mercredi 18 février 2015 10:17

Toutes les réponses

  • Bonjour,

    Pourquoi ne pas faire une sous requête qui récupérai la date système et qui compare ensuite avec votre date vous faites des Alias puis ensuite une petite soustraction et enfin un WHERE de l'alias < 30

    Cordialement,


    Vers l'infini et au delà

    • Marqué comme réponse maness mercredi 18 février 2015 10:32
    mercredi 18 février 2015 10:17
  • Bonjour Kévin,

    je suis nul en SQL, j´ai juste besoin du tableau pour completer mon programm en C#. je vous serais infiniment reconnaissante si vous m´envoyer un exemple de code pour effectuer ceque vous avez proposer plus haut

    merci

    cordialement

    • Marqué comme réponse maness mercredi 18 février 2015 10:32
    • Non marqué comme réponse maness mercredi 18 février 2015 10:32
    mercredi 18 février 2015 10:21
  • Bonjour,

    Il faut ajouter une condition dans votre clause WHERE :

    ... 
    WHERE 
     FirstInProductionDate IS NOT NULL
     AND CONVERT(date, FirstInProductionDate) >= DATEADD("d", -30, getdate()) 
    ... 

    La fonction DATEADD permet d'ajouter des éléments à une date (jour, mois, année, etc...) donc en prenant la date du jour -30 jours vous avez votre date limite, il suffit ensuite de filtrer vos lignes dont la date est supérieure à cette limite.

    Cordialement,


    Yan Grenier

    • Proposé comme réponse Yan Grenier - MTFC mercredi 18 février 2015 10:30
    • Marqué comme réponse maness mercredi 18 février 2015 10:32
    mercredi 18 février 2015 10:26
  • Merci,

    Vous etes des anges.

    merci bcp

    mercredi 18 février 2015 10:32
  • Bonjour,

    Désole de revenir. juste apres que execution dans mon programm C# mon tableau s ´affiche maintenant avec des Heures. es ce que je peux filtrer ces heures sur ma demande SQL afin qu´elle ne s´affiche pas?

    Merci


    • Modifié maness mercredi 18 février 2015 10:57
    mercredi 18 février 2015 10:56
  • Attention cela n'a rien à voir avec SQL, en C# une datetime à toujours une heure, en l'occurrence pour vous c'est 12AM cad minuit.

    C'est à votre programme C# d'afficher la date uniquement, utilisez les paramètres de formatage d'une date, ou du contrôle si vous utilisez un contrôle. J'ai l'impression que vous utilisez Webform, donc certainement une gridview. Je ne suis pas familiarisé avec cette techno mais de mémoire il doit y avoir sur votre colonne un paramètre de formatage (voir cet article http://forums.asp.net/t/1001482.aspx?DateTime+Format+in+gridview+colum) ou vous pouvez indiquer la manière d'afficher votre date suivant les formats de date :

    https://msdn.microsoft.com/fr-fr/library/az4se3k1(v=vs.110).aspx

    https://msdn.microsoft.com/fr-fr/library/8kb3ddd4(v=vs.110).aspx

    Cordialement,


    Yan Grenier

    mercredi 18 février 2015 11:05
  • ok merci

    je vais y essayer

    mercredi 18 février 2015 11:20
  • J'ai fait une erreur en répondant directement.

    S'il faut continuer cette discussion, merci de créer une nouvelle discussion car l'intitulé de cette discussion n'a rien a voir avec les derniers messages.

    Si une personne rencontre le même problème, elle ne trouvera pas forcément cette discussion.

    Désolé pour avoir oublié de le rappeler.

    Cordialement,


    Yan Grenier

    mercredi 18 février 2015 12:46