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

Développement SQL Server Discussion :

Encore une gymnastique avec des dates


Sujet :

Développement SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre expérimenté
    Profil pro
    Mangeur de gauffre
    Inscrit en
    Octobre 2007
    Messages
    4 413
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Mangeur de gauffre

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 413
    Par défaut Encore une gymnastique avec des dates
    Bonjour ici j'ai un cas pour lequel je tourne en rond

    J'ai une table d'article munie de deux dates
    DateCreation
    DateReception

    Je dois extraire pour chaque semaine d'une année le count des articles a recevoir

    C'est a dire les articles créés dont la date de réception est nulle ou superieure a la semaine dite

    Et là je sèche un peu

    Merci de votre aide et pour vos neurones

  2. #2
    Membre éclairé
    Homme Profil pro
    Développeur Full-stack
    Inscrit en
    Novembre 2010
    Messages
    376
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur Full-stack

    Informations forums :
    Inscription : Novembre 2010
    Messages : 376
    Par défaut
    Bonjour,

    Bon, t'as pas fourni un minimum de code. On fait comme on peut. Tu pourrais créer une table Calendrier et faire les jointures nécessaires. Voici une Auto-jointure que j'ai essayé sur ma Table calendrier faite du 1er script en fichier joint:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
     
    SELECT COUNT(P.CalDay) FROM Calendrier P join Calendrier C on P.CalDate = C.CalDate WHERE (P.CalDay = null 
    OR (P.CalDay > (SELECT DATEPART(WEEK,C.CalDate))))
    Cordialement.
    Fichiers attachés Fichiers attachés

  3. #3
    Membre expérimenté
    Profil pro
    Mangeur de gauffre
    Inscrit en
    Octobre 2007
    Messages
    4 413
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Mangeur de gauffre

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 413
    Par défaut
    Merci Alexandre Le Grand

    Désolé de ne pas avoir eté asser clair mais ta proposition ne va pas du tout donner le resultat attendu

    Ce que je dois obtenir c'est un résultat de ce qui n'a pas été reçu par semaine comme ci-dessous
    Et dans ta requete je ne comprends pas pourquoi tu fais un

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT DATEPART(WEEK,C.CalDate)
    Ceci suffit non ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DATEPART(WEEK,C.CalDate)

    Voici le genre de résultat attendu

    Year Week Qty
    2014 1 20
    2014 2 25
    2014 3 18
    2014 5 21
    etc

  4. #4
    Membre expérimenté
    Avatar de Lyche
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2007
    Messages
    2 523
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Janvier 2007
    Messages : 2 523
    Billets dans le blog
    4
    Par défaut
    il suffit de rajouter un YEAR( date ), DATEPART(WEEK, Date ) dans le select et le group by dans ce cas.
    Rejoignez la communauté du chat et partagez vos connaissances ou vos questions avec nous

    Mon Tutoriel pour apprendre les Agregations
    Consultez mon Blog SQL destiné aux débutants

    Pensez à FAQ SQL Server Ainsi qu'aux Cours et Tuto SQL Server

  5. #5
    Membre éclairé
    Homme Profil pro
    Développeur Full-stack
    Inscrit en
    Novembre 2010
    Messages
    376
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur Full-stack

    Informations forums :
    Inscription : Novembre 2010
    Messages : 376
    Par défaut
    Bonjour,

    Citation Envoyé par olibara Voir le message

    ...
    Et dans ta requete je ne comprends pas pourquoi tu fais un

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT DATEPART(WEEK,C.CalDate)
    Ceci suffit non ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DATEPART(WEEK,C.CalDate)

    Voici le genre de résultat attendu

    Year Week Qty
    2014 1 20
    2014 2 25
    2014 3 18
    2014 5 21
    etc
    -------> Les 2 écritures donnent le même résultats.

    Pour la requête précédente, on pourrait l'écrire comme ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    SELECT P.CalYear,P.CalWeekYear, COUNT(P.CalDay) FROM Calendrier P JOIN Calendrier C ON P.CalDate = C.CalDate WHERE (P.CalDay = NULL 
    OR (P.CalDay > ( DATEPART(WEEK,C.CalDate)))) GROUP BY P.CalYear,P.CalWeekYear
    A défaut du script de création de ta table,une auto jointure inspirée de l'exemple donnerait ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    SELECT DATEPART(YEAR,P.DateReception),DATEPART(WEEK,P.DateReception), COUNT(P.IdArticle) FROM MaTable P JOIN MaTable C ON P.DateReception= C.DateReception WHERE (P.DateReception = NULL 
    OR (P.DateReception > ( DATEPART(WEEK,C.DateReception)))) GROUP BY DATEPART(YEAR, P.DateReception), DatePart(WEEK,P.DateReception)
    Essaie ce code fais nous un retour.

    Cordialement.

Discussions similaires

  1. SQL contruire une requête avec des dates d'applications
    Par fredodeveloppeur dans le forum Langage SQL
    Réponses: 1
    Dernier message: 15/04/2013, 02h24
  2. Occulter l'année dans une formule avec des dates
    Par longani dans le forum Conception
    Réponses: 7
    Dernier message: 10/03/2013, 19h33
  3. [AC-2010] Effectuer des calculs avec des dates issues d'une requête
    Par nianiania dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 03/04/2012, 20h51
  4. Réponses: 1
    Dernier message: 03/04/2009, 10h09
  5. Decode avec des dates pour calculer une valeur
    Par decisio dans le forum Langage SQL
    Réponses: 1
    Dernier message: 19/01/2009, 12h50

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