Bonjour à tous,
Je débute en PLSQL et dois créer une procédure pour qui rempli une table pour la dimension «Temps » de notre Data Warehouse. Ma procédure fonctionne bien, mais j’ai un problème de calcul au niveau d’une ligne précise.
Mon problème : je dois calculer en fonction du premier jour du mois de janvier, la période de Production ISO correspondante.
Exemple:
Le 01.01.2006 était un dimanche et correspondait à la période Iso nr. 52, mais la société dans laquelle je fais mon stage, calcul leur période de „production ISO“ à partir du 1er janvier de chaque année. En d’autres mots, avec le début du 1er janvier de chaque année, commence la 1ere semaine Iso de l’année pour cette Société.
1er janvier 2006 doit appartenir par exemple à la période de „production ISO“ 1 et non la période 52 comme dans Outlook.
Date Nr. de la semaine ISO Période de Production ISO
Dimanche 01/01/2006 52 1
Mardi 01/01/2008 1 1
jeudi 01/01/2009 1 1
Vendredi 01/01/2010 53 1
Dimanche 01/01/2012 52 1
Et le « décomptage » de la période dois bien sur suivre pour les mois suivants.
Pour d’abord tester les fonctions d’oracle qui pourront m’aider, j’ai essayé ceci:
Il n’y a pas de problème. Mais quand je tombe sur une semaine ISO = 1, mon select me retourne 0, ce qui est faux.
Code : Sélectionner tout - Visualiser dans une fenêtre à part select to_number(to_char(sysdate-288,'iw'))-1 from dual
Pardon quelqu’un peut-il me guider pour me dire comment résoudre ce genre de problème?
Ou encore pourriez-vous m'orienter s'il vous plaît ?
Merci d’avance
Fiona
Partager