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 :

Requete sur une date /semaine


Sujet :

Développement SQL Server

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    816
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 816
    Points : 49
    Points
    49
    Par défaut Requete sur une date /semaine
    Bonjour à tous,


    Environnement : SQL SERVER 2000 (sp4). (windows 2003)

    J'ai une table qui comprend ces informations:

    Champs: Année| Semaine|Jour de la semaine| total heure
    Exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
     
    2012	31	1	5.50
    2012	31	2	5.50
    2012	31	3	5.50
    2012	31	4	5.50
    2012	31	5	4.00
    2012	32	1	5.50
    2012	32	2	5.50
    2012	32	3	5.50
    2012	32	4	5.50
    2012	32	5	4.00
    2012	33	1	5.50
    2012	33	2	5.50
    2012	33	3	5.50
    2012	33	4	5.50
    2012	33	5	4.00
    2012	34	1	5.50
    2012	34	2	5.50
    2012	34	3	5.50
    2012	34	4	5.50
    2012	34	5	4.00
    2012	35	1	5.50
    2012	35	2	5.50
    2012	35	3	5.50
    2012	35	4	5.50
    2012	35	5	4.00
    Au niveau de ma requête je voudrait récupérer le total d'heure entre le 1 aout 2012 et 31 aout 2012.

    Comment je doit m'y prendre?

    Merci d'avance pour vos explication et votre aide

    guigui69

  2. #2
    Membre expert Avatar de iberserk
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Novembre 2004
    Messages
    1 795
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 795
    Points : 3 173
    Points
    3 173
    Par défaut
    Ajoutez une colonne avec la date!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT SUM([total heure]) AS TotalHeure
    FROM TATABLE
    WHERE MADATE BETWEEN '20120801' AND '20120831'
    Ou alors précisez nous la règle utilisée pour le premier jour de la première semaine de l'année...
    Prendre conscience, c'est transformer le voile qui recouvre la lumière en miroir.
    MCTS Database Development
    MCTS Database Administration

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    816
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 816
    Points : 49
    Points
    49
    Par défaut
    Bonjour et merci pour votre réponse.

    Ma table est composé de ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
     
    Champs:
     
     Année| Semaine|Jour de la semaine| total heure
     
    2012	31	1	5.50
    2012	31	2	5.50
    2012	31	3	5.50
    2012	31	4	5.50
    2012	31	5	4.00
    2012	32	1	5.50
    2012	32	2	5.50
    2012	32	3	5.50
    2012	32	4	5.50
    2012	32	5	4.00
    2012	33	1	5.50
    2012	33	2	5.50
    2012	33	3	5.50
    2012	33	4	5.50
    2012	33	5	4.00
    2012	34	1	5.50
    2012	34	2	5.50
    2012	34	3	5.50
    2012	34	4	5.50
    2012	34	5	4.00
    2012	35	1	5.50
    2012	35	2	5.50
    2012	35	3	5.50
    2012	35	4	5.50
    2012	35	5	4.00
    Le jour dans la table correspond à 1 => Lundi 2 => Mardi etc...

    et je voudrait qu'en fonction de la date (du 1/08/2012 au 31/08/2012) cela me retourne la somme. heure

  4. #4
    Expert confirmé
    Avatar de Kropernic
    Homme Profil pro
    Analyste / Programmeur / DBA
    Inscrit en
    Juillet 2006
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste / Programmeur / DBA
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 932
    Points : 4 239
    Points
    4 239
    Par défaut
    Pour paraphraser iberserk, comment voulez-vous qu'on puisse calculer cela si on ne sait pas à quelle date correspond semaine = 1 et jour = 1 ?
    Kropernic

  5. #5
    Expert éminent
    Avatar de StringBuilder
    Homme Profil pro
    Chef de projets
    Inscrit en
    Février 2010
    Messages
    4 153
    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 153
    Points : 7 403
    Points
    7 403
    Billets dans le blog
    1
    Par défaut
    Et en quoi on sait pas à quoi correspond le 3ème jour de la semaine 25 de l'année 2011 ?

    On peut très simplement convertir cette information en date !

    En revanche, la création d'une colonne calculée et persistante ne sera certainement pas un luxe en ce qui concerne les performances !
    On ne jouit bien que de ce qu’on partage.

  6. #6
    Membre expert Avatar de iberserk
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Novembre 2004
    Messages
    1 795
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 795
    Points : 3 173
    Points
    3 173
    Par défaut
    Et en quoi on sait pas à quoi correspond le 3ème jour de la semaine 25 de l'année 2011 ?
    Tout dépend de l'algorithme utilisé pour alimenter les numéro de semaine...
    Cette remarque montre à quel point vous n'avez jamais été confronté au problème...

    norme ISO 8601ou grégorien?
    Prendre conscience, c'est transformer le voile qui recouvre la lumière en miroir.
    MCTS Database Development
    MCTS Database Administration

  7. #7
    Expert éminent
    Avatar de StringBuilder
    Homme Profil pro
    Chef de projets
    Inscrit en
    Février 2010
    Messages
    4 153
    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 153
    Points : 7 403
    Points
    7 403
    Billets dans le blog
    1
    Par défaut
    Ben c'est la même chose quand on stocke n'importe quelle information...

    Il faut décider proprement du format utilisé pour l'enregistrement et la lecture.

    Stocker des numéros de semaine et des jours ne me choque pas si pour la lecture on utilise ces segments pour faire les requêtes.

    Même si en effet il serait préférable de stocker la date, et avoir des colonnes calculées persistantes année, semaine et jour, plutôt que l'inverse.
    On ne jouit bien que de ce qu’on partage.

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    816
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 816
    Points : 49
    Points
    49
    Par défaut
    Bonjour et merci pour vos réponses,

    Je regarde ça lundi pour avoir le début année.

    Merci

    guigui69

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    816
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 816
    Points : 49
    Points
    49
    Par défaut
    Bonjour à tous,

    je reviens sur mon sujet concernant ma demande. (Je n'ai pas pu me remettre sur cette élément avant)

    Voici comment le calendrier est géré:
    Cette table contient les calendriers (de 1 à n par année) des jours ouvrés, fériés et les heures d’ouverture par jour.
    Elle enregistre les heures théoriques
    ID = no d’enregistrement / clef unique
    Ano = année concernée
    Semaine = no de la semaine. La norme ISO (je ne sais plus exactement (8601 je crois !)) dit que la semaine no 1 d’une année est celle qui contient le premier jeudi de l’année.
    Jour de la semaine = 1 pour lundi, 2 pour mardi, …
    Merci d'avance pour vos explications

    guigui69

Discussions similaires

  1. [ODM] problème requete sur une date
    Par ryo_sensei dans le forum Doctrine2
    Réponses: 0
    Dernier message: 11/04/2012, 12h03
  2. [AC-2007] Requete sur une date
    Par Jitoubi dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 03/05/2010, 10h50
  3. [Oracle 9] Requête sur une différence entre dates
    Par claralavraie dans le forum Langage SQL
    Réponses: 2
    Dernier message: 04/09/2006, 17h42
  4. requete sur une date..
    Par kenny49 dans le forum Langage SQL
    Réponses: 3
    Dernier message: 27/06/2006, 13h48
  5. [SQL] Conditions sur une date dans une requete
    Par poufouille dans le forum Bases de données
    Réponses: 4
    Dernier message: 17/03/2004, 14h25

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