Meilleur auteur de réponses
Filtrer les données de ma demande SQL

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
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
-
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
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
-
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
-
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
-
-
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
-
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
-
-
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