Page 1 sur 1

[SQL] Conseils pour une requête

Posté : 02 mai 2007, 10:10
par LP-Mpascolo
Salut a tous,

J'ai depuis qques jours un souci sur une requête et ca me rend un peu fou, j'avoue...

Je travaille sur une base de données SQL Server. Ces données sont utilisés ensuite dans une application MS Access...

Voila un peu le resultat que je cherche a avoir

Image

Et j'ai donc besoin de CONSEIL POUR LA SUITE PARCE QUE JE NE VOIS PAS COMMENT FAIRE LE RAPPROCHEMENT ENTRE LES 2...

J'ai deja fait la 1re partie de la requete :

Code : Tout sélectionner

SELECT tbl_ms_set_steps.MS_PROJ_START as 'DateStart', tbl_ms_set_steps.MS_PROJ_END as 'DateEnd', tbl_ms_set_steps.est_time as 'Montant', datediff(month,tbl_ms_set_steps.MS_PROJ_START,tbl_ms_set_steps.MS_PROJ_END) AS 'Duree_en_mois', tbl_ms_set_steps.est_time/datediff(month,tbl_ms_set_steps.,tbl_ms_set_steps.MS_PROJ_END) AS 'Resultat' FROM CRM_1.dbo.tbl_ms_set_steps tbl_ms_set_steps WHERE datediff(month,tbl_ms_set_steps.MS_PROJ_START,tbl_ms_set_steps.MS_PROJ_END) <> 0 AND tbl_ms_set_steps.est_time <> 0
J'ai besoin de conseils pour la suite !
Merci d'avance...

Posté : 02 mai 2007, 11:54
par Ryle
A part avec une procédure stockée ou une fonction, je vois difficilement comment tu pourrais multiplier ton nombre d'enregistrement par le nombre de mois que tu as calculé :-k

La seule façon que je vois pour faire ça sans passer par une proc, c'est de croiser avec une table contenant tes dates, ce qui te multiplierait le nombre d'enregistrements par autant de dates comprises dans ta période...

HTH

Posté : 02 mai 2007, 16:10
par Invité
Salut merci de ta reponse (j'avoue que j'ai mis un peu de temps a decrypter ton message :lol:

Pour le moment, je n'ai pas les droits de creer de procedure dans ma base de donnees...

Ce serait donc selon toi, la seule solution ?

Posté : 02 mai 2007, 16:43
par Ryle
Il y en a peut être d'autre, mais à priori, je ne vois pas trop comment à partir d'un seul enregistrement tu pourrais en générer 6 sans boucle (puisque pas de proc). Pour l'instant je vois donc pas d'autre solution que de croiser avec une autre table ou vue pour pouvoir multiplier les résultats .. mais les autres auront peut être d'autres idées :)

Posté : 03 mai 2007, 11:43
par LP-Mpascolo
Ca y est , jai les droits de creer des procedures stockés dans ma base de données (apres qques echanges de mail stressants et coriaces avec mon responsable ) :x :lol:

Je suis maintenant un peu bloqué sur la procedure a creer...
J'a pas encore bien compris le but de creer une procedure stockée dans mon exemple... et surtout comment l'utliser par la suite dans mon exemple et pour regler mon probleme.

Je suis debutant dans la creation de procedure stockée sur SQL Server en fait..

Posté : 03 mai 2007, 14:53
par LP-Mpascolo
En fin de compte, j'ai trouve un tutorial qui peut aider...

Je mets un lien pour les gars qui ont le meme probleme : http://sqlpro.developpez.com/cours/gestiontemps/

Posté : 03 mai 2007, 15:38
par Ryle
En fait pour toi, tout l'intérêt de la procédure est de pouvoir faire une boucle pour gérer les dates que tu n'as pas (les mois entre tes deux dates).
Il te suffit ainsi d'exécuter la requête que tu as donné ci dessus pour récupérer tes données et ton nombre de mois, puis de boucler sur le nombre de mois calculé pour faire un affichage ou une insertion en ajoutant à chaque fois un mois à la date de départ :)