begin process at 2010 03 17 03:33:44
  Trouver un code source :
 
dans
 
Accueil > Forum > 

SQL

 > 

Autre

 > 

Procédures Stockées

 > 

Comment recuperer la date du 1er jour de la semaine ??


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Comment recuperer la date du 1er jour de la semaine ??

mardi 11 mars 2008 à 15:53:27 | Comment recuperer la date du 1er jour de la semaine ??

sosou80

Bonjour tous le monde ,

Voila mon petit probléme : j'ai une table temporaire construite dans une procédure stockée comme suit:

#tab_temp( Jour,Mois,Année,Semaine, nb_commande) et voila comme exemple les données de cette table :

                  Jour||Mois||Année||Semaine||nb_commande
                     1      1      2007      1               20
                     2      1      2007      1               15
                     .
                     .
                     7      1      2007      1               54
                     8      1      2007      2               68
                     9      1      2007      2               85
                     .
                     .
Et mnt voila ma question :  Comment récuperer la somme des commande groupée par semaine, avec la date de début de chaque semaine et la date de fin de cette semaine ???.

en se basant sur l'exemple cité au début voila le résultat désirée :

         La date en semaine                   ||           nb_commande
          du 1/1/2007 au  7/1/2007                    20+15+....=somme de toutes les commandes passées durant cette semaine
          du 8/1/2007 à   14/1/2007                   68+85+....=somme de toutes les commandes passées.
                   .
                  .
                  .
                  .
                  .  
si quelqu'un à une idée ca va me permettre d'avancer  !!

Merci pour votre réponse

      
mardi 11 mars 2008 à 17:43:47 | Re : Comment recuperer la date du 1er jour de la semaine ??

sosou80

salut ,j'attend tjrs votre reponse !!!

sachant que je suis sur sql server 2005

merci encore
mercredi 12 mars 2008 à 13:02:19 | Re : Comment recuperer la date du 1er jour de la semaine ??

sosou80

Bonjour,

Personne n'a une idée !! .
En faite j'ai trouvé comment le faire en passant par curseur, mais je préfére bien utiliser une requétte simple ??

J'attend tjrs votre réponse

Et merci
jeudi 13 mars 2008 à 12:18:41 | Re : Comment recuperer la date du 1er jour de la semaine ??

Arthenius

Membre Club
si ton N° de semaine est stocke dans ta table un bon vieux group by devrait faire l'affaire

SELECT semaine, sum(nb_commande) FROM nom_de_ta_table
GROUP BY semaine;



Arthenius
http://blogs.developpeur.org/Arthenius/

"Ce qui ne me tue pas, me rend plus fort..."

jeudi 13 mars 2008 à 12:31:27 | Re : Comment recuperer la date du 1er jour de la semaine ??

sosou80

Bonjour Arthenius,

je ss d'acord avec que cette requette va recuperer kelke chose de ce type :


 semaine                   ||           nb_commande
----------------------------------------------
1                                   20+15+....=somme de toutes les commandes passées durant cette semaine                
2                                       .........................
3                                       ......................      
4
.
.

Mais ce que je souhaite à la sortie est de là !!!!
Voilà à nouveau ce que je souhaite :

La date en semaine                         ||           nb_commande
----------------------------------------------------------------
du 1/1/2007 au  7/1/2007--------> 20+15+....=somme de toutes les commandes passées durant cette semaine.
du 8/1/2007 à   14/1/2007-------->68+85+....=somme de toutes les commandes passées durant cette semaine.
                   .
autrement dit je veux la date complet de la semaine :
-du 1/1/2007  (date de débute de la semaine )
-au  7/1/2007 (date de fin de la semaine)

J'espere que j'etai clair

Et merci encore pour votre réponse


jeudi 13 mars 2008 à 13:55:45 | Re : Comment recuperer la date du 1er jour de la semaine ??

Arthenius

Membre Club
SELECT semaine as ma_semaine_encours, (select min(date) from nom_de_ta_table where semaine = ma_semaine_encours), (select max(date) from nom_de_ta_table where semaine = ma_semaine_encours), sum(nb_commande) FROM nom_de_ta_table
GROUP BY semaine;


un truc de ce genre ???



Arthenius
http://blogs.developpeur.org/Arthenius/

"Ce qui ne me tue pas, me rend plus fort..."

jeudi 13 mars 2008 à 13:56:29 | Re : Comment recuperer la date du 1er jour de la semaine ??

Arthenius

Membre Club
bon elle marchera surement pas cette requete ...apres relecture




Arthenius
http://blogs.developpeur.org/Arthenius/

"Ce qui ne me tue pas, me rend plus fort..."

jeudi 13 mars 2008 à 16:13:29 | Re : Comment recuperer la date du 1er jour de la semaine ??

sosou80

En faite ta requete n'a pas fonctionnée , par contre j'ai réussi à le faire à l'aide du curseur ,

pour ceux qui sont intéressés par ce probléme, voila ma solution :

voici ma table  #Table_add(J (jour) ,  M (jour),A (année) ,nb (nombre de commande), nb_semaine), pour mon exemple , c'est une table construite dans une table temporaire aprés plusieurs traitement,
sachant que J,M,A  :  sont de type int ( dans mon cas bien sur)
Arrangez-vous pour que la 1ere ligne de votre table, commence par la date d'un lundi (c'est ce que j'ai fait moi-même), et la derniére ligne de votre table termine par la date d'un dimanche, ce qui est tout a fait logique lorsqu'on veut des statistiques par semaine.

Donc ma table sera du genre:

J   ||  M      ||     A     ||    nb      ||       nb_semaine
-----------------------------------------------
1      1           2007         20               1
2      1           2007         15               1
 .      .            ......            ...   .         ..
 .      .            ......            ..               ..   
7      1          2007         45                1
8      1          2007         68                2
9      1          2007         85                2
.
.
.

declare@somme_nb int
declare  @compteur int
declare  @var_date varchar(30)
declare @jour int
declare@mois int  
declare  @annee int 
declare   @nb int
declare   @nb_semaine int

declare curseur_add_semaine CURSORFOR
select J,M,A ,nb, nb_semaine from #Table_add
CREATETABLE #Table_add_new (date varchar(30),nb_add int)
OPEN curseur_add_semaine
FETCH NEXT FROM curseur_add_semaine INTO @jour,@mois,@annee,@nb,@nb_semaine
set @somme_nb=@nb
set @compteur=1
set @var_date=cast(@jour asvarchar(2))+'/'+cast(@mois asvarchar(2))+'/'+cast(@annee asvarchar(4))
WHILE@@FETCH_STATUS= 0
begin
if @compteur=7
begin
   set @var_date=@var_date+' au '+cast(@jour asvarchar(2))+'/'+cast(@mois asvarchar(2))+'/'+cast(@annee asvarchar(4))
   insertinto #Table_add_new (date,nb_add)values(@var_date,@somme_nb)
   FETCH NEXT FROM curseur_add_semaine INTO @jour,@mois,@annee,@nb,@nb_semaine
   set @somme_nb=@nb
   set @compteur=1
   set @var_date=cast(@jour asvarchar(2))+'/'+cast(@mois asvarchar(2))+'/'+cast(@annee asvarchar(4))
end
else
begin
   FETCH NEXT FROM curseur_add_semaine INTO @jour,@mois,@annee,@nb,@nb_semaine
   set @somme_nb=@somme_nb+@nb
   set @compteur=@compteur+1
end
end
CLOSE curseur_add_semaine
DEALLOCATE curseur_add_semaine

il ne reste qu'à faire un dernier select vers la nouvelle table temporaire:
select
date as'La date en semaine',nb_add 'Le nombre de commandes  passées durant cette semaine'from #Table_add_new


et voila c'est fait , mais je ne sait coté optimisation est ce que c'est la meilleur solution ??,  car j'utilise une autre table temporaire !!
l'essentiel pour moi mnt, c'est que j'ai le résultat souhaitée

Si vous avez d'autre solution n'hesitez pas

Cordialement




jeudi 13 mars 2008 à 16:18:40 | Re : Comment recuperer la date du 1er jour de la semaine ??

sosou80

dslé j'ai pas pu inseré une capture écran de résultat


Cette discussion est classée dans : date, commande, jour, nb, semaine


Répondre à ce message

Sujets en rapport avec ce message

Pb Date (1ère semaine de l'année) [ par Herminator ] Bonjour à tous, J'ai un petit problème de date, lorsque j'exécute la requête suivante : SELECT DATEPART(ww,GETDATE()), GETDATE() Sql Server me renvo aide pour une requete [ par njo80 ] J'ai dans une table plusieurs colonnes, dont une NUM, INS et DATEJe dois compter  le nombre de jour entre de  date.les NUM vont en s'incrémentant et p VB.net 2005 et SQL 2005 Express : Prbl DateTime [ par morleys ] Bonjour à vous tous,Je coince voilà quelque temps sur un probleme d'enregistrement de date SQL 2005.Si j'ai toto = Cdate(Now())        Pour info toto Obtenir date de mise à jour [ par Toub63 ] Bonjour à tous,Est-il possible d'obtenir une date de mise à jour d'un enregistrement via une champ spécial  ou autre fonction de SQL server 2000 ?Un e Mise à jour d'un champs. [ par mehdiyou ] Salut tout le monde, j'ai un petit problème au niveau de Sql. Exple: on a une table Client et une Table commande. Lorsque je change le nom du client d probleme urgent de triggers____ aidez moi SVP-- [ par adilol ] bonjour tout le monde,      SVP,aidez moi,j ai un probleme a resoudre dans 24h c tellement urgent.    voici le probleme:    je dois creer un trigger q NumeroAuto sous Access [ par loloquiqui ] Bonjour à tous ,Voilà, j'ai pris comme référence NuméroAuto comme N° de facture  SOUS ACCESS 2000. Mais depuis une semaine je m'aperçois que ce code n Mise à jour des dates de durée [ par jg_444 ] Bonjour,J'ai une base de donnée Sybase pour garder trace de mes formations et compétences.Lorsque je fais une mise à jour de la durée d'une compétence passage de parametre date [ par JJAIOLI ] Bonjour, je souhaite utiliser une variable date dans mes requêtes SQL au sein d'un script shell, mais j'ai une erreur ORA-00904: "DATE_PARAMETRE": inv UNE REQUETE SQL [ par zaydoo ] BONJOUR LES AMIS je veux faire une requête qui affiche le nombre de commande par mois trié en ordre croissant; j'ai fais cette requête: SELECT MONTHN


Nos sponsors


Sondage...

CalendriCode

Mars 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,671 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales