Précédent   Forum du club des développeurs et IT Pro > Bases de données > MS SQL-Server > Développement
Développement Forum d'entraide sur le Transact-SQL, le CLR, les procédures stockées, les triggers, les requêtes SQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 18/10/2012, 14h16   #1
guigui69
Candidat au titre de Membre du Club
 
Inscription : octobre 2006
Messages : 498
Détails du profil
Informations forums :
Inscription : octobre 2006
Messages : 498
Points : 10
Points : 10
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 :
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
guigui69 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/10/2012, 07h39   #2
iberserk
Expert Confirmé
 
Avatar de iberserk
 
Homme Bruno IGNACE
Architecte de base de données
Inscription : novembre 2004
Messages : 1 514
Détails du profil
Informations personnelles :
Nom : Homme Bruno IGNACE
Âge : 31
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 514
Points : 2 756
Points : 2 756
Envoyer un message via MSN à iberserk
Ajoutez une colonne avec la date!

Code :
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
iberserk est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/10/2012, 08h20   #3
guigui69
Candidat au titre de Membre du Club
 
Inscription : octobre 2006
Messages : 498
Détails du profil
Informations forums :
Inscription : octobre 2006
Messages : 498
Points : 10
Points : 10
Bonjour et merci pour votre réponse.

Ma table est composé de ceci:

Code :
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
guigui69 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/10/2012, 11h48   #4
Kropernic
Membre Expert
 
Avatar de Kropernic
 
Homme
Analyste / Programmeur / DBA
Inscription : juillet 2006
Messages : 1 932
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 30
Localisation : Belgique

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

Informations forums :
Inscription : juillet 2006
Messages : 1 932
Points : 1 466
Points : 1 466
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 (anciennement Griftou).
Kropernic est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/10/2012, 16h04   #5
StringBuilder
Membre Expert
 
Homme Sylvain Devidal
Chef de projets Générix
Inscription : février 2010
Messages : 1 517
Détails du profil
Informations personnelles :
Nom : Homme Sylvain Devidal
Âge : 34
Localisation : France, Rhône (Rhône Alpes)

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

Informations forums :
Inscription : février 2010
Messages : 1 517
Points : 2 381
Points : 2 381
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 !
StringBuilder est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/10/2012, 20h31   #6
iberserk
Expert Confirmé
 
Avatar de iberserk
 
Homme Bruno IGNACE
Architecte de base de données
Inscription : novembre 2004
Messages : 1 514
Détails du profil
Informations personnelles :
Nom : Homme Bruno IGNACE
Âge : 31
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 514
Points : 2 756
Points : 2 756
Envoyer un message via MSN à iberserk
Citation:
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
iberserk est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/10/2012, 10h33   #7
StringBuilder
Membre Expert
 
Homme Sylvain Devidal
Chef de projets Générix
Inscription : février 2010
Messages : 1 517
Détails du profil
Informations personnelles :
Nom : Homme Sylvain Devidal
Âge : 34
Localisation : France, Rhône (Rhône Alpes)

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

Informations forums :
Inscription : février 2010
Messages : 1 517
Points : 2 381
Points : 2 381
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.
StringBuilder est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/10/2012, 14h07   #8
guigui69
Candidat au titre de Membre du Club
 
Inscription : octobre 2006
Messages : 498
Détails du profil
Informations forums :
Inscription : octobre 2006
Messages : 498
Points : 10
Points : 10
Bonjour et merci pour vos réponses,

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

Merci

guigui69
guigui69 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/01/2013, 08h50   #9
guigui69
Candidat au titre de Membre du Club
 
Inscription : octobre 2006
Messages : 498
Détails du profil
Informations forums :
Inscription : octobre 2006
Messages : 498
Points : 10
Points : 10
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é:
Citation:
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
guigui69 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 12h28.


 
 
 
 
Partenaires

Hébergement Web