Label Décisionnel
Bienvenue, Invité
Merci de vous identifier ou de vous inscrire.    Mot de passe perdu?
Re:Génerer les dates (1 lecteur(s)) (1) Invité(s)
Aller en bas Répondre Ajouté aux favoris : 0
SUJET: Re:Génerer les dates
#753
watal (Utilisateur)
Fresh Boarder
Messages: 19
graphgraph
Personne n'est hors ligne Cliquez ici pour voir le profil de cet utilisateur
Génerer les dates depuis 6 Mois, 3 Semaines Karma: 0  
Bonjour j'aimerais savoir s'il ya un script pour générer les date comme dans la dimension temps de votre base DWH des tutoriels.
Car je dois remplir ma dimension temps.
Merci.
 
  L'administrateur a désactivé l'accès public en écriture.
#761
rchaumais (Admin)
Administrateur
Messages: 456
graph
Personne n'est hors ligne Cliquez ici pour voir le profil de cet utilisateur
Re:Génerer les dates depuis 6 Mois, 3 Semaines Karma: 13  
Oui, cela existe, il faut juste que nous retrouvons ce script ...

De notre côté, nous avions utilisé DATA GENERATOR, un soft qui fait ce genre de truc (mais payant). Il faut voir si nous avons un script de ce genre dans nos cartons.
 
  L'administrateur a désactivé l'accès public en écriture.
#763
rhooft (Admin)
Administrateur
Messages: 84
graphgraph
Personne n'est hors ligne Cliquez ici pour voir le profil de cet utilisateur
Re:Génerer les dates depuis 6 Mois, 3 Semaines Karma: 5  
bonjour,


voilà une fonction qui retourne un set de donnée contenant un calendrier dont les dates de début et de fin sont paramétrables :


Cette procédure est en revanche valable pour un usage sous SQL Server, s'agit-il du SGBD utilisé ?



CREATE FUNCTION [dbo].[fct_calendar](@start datetime,@end datetime)
RETURNS TABLE
AS

RETURN
(


with calendar(date,isweekday, y, q,m,d,dw,monthname,dayname,w) as
(
select @start ,
case when datepart(dw,@start) in (1,7) then 0 else 1 end,
year(@start),
datepart(qq,@start),
datepart(mm,@start),
datepart(dd,@start),
datepart(dw,@start),
datename(month, @start),
datename(dw, @start),
datepart(wk, @start)
union all
select date + 1,
case when datepart(dw,date + 1) in (1,7) then 0 else 1 end,
year(date + 1),
datepart(qq,date + 1),
datepart(mm,date + 1),
datepart(dd,date + 1),
datepart(dw,date + 1),
datename(month, date + 1),
datename(dw, date + 1),
datepart(wk, date + 1) from calendar where date + 1
 
  L'administrateur a désactivé l'accès public en écriture.
#764
watal (Utilisateur)
Fresh Boarder
Messages: 19
graphgraph
Personne n'est hors ligne Cliquez ici pour voir le profil de cet utilisateur
Re:Génerer les dates depuis 6 Mois, 3 Semaines Karma: 0  
Mon SGBD c'est oracle 9i.
Merci
 
  L'administrateur a désactivé l'accès public en écriture.
#765
rhooft (Admin)
Administrateur
Messages: 84
graphgraph
Personne n'est hors ligne Cliquez ici pour voir le profil de cet utilisateur
Re:Génerer les dates depuis 6 Mois, 3 Semaines Karma: 5  
Voilà une requete de création de vue (je ne l'ai pas encore testée)...
Elle génère un calendrier dont les dates sont comprises entre le 01/01/2000 (paramétrable) et aujourd'hui.

10000 correspond au nombre de lignes générées par la requete sur dual, la clause where de la requete principale limitant les ligens ramenées au strict nécessaire

create or replace view DIM_TIME AS
SELECT Date,
TO_CHAR(Date,’RRRR’) Year,
TO_CHAR(Date,’Q' Quarter,
TO_CHAR(Date,’MONTH’) Month,
TO_CHAR(Date,’DD’) Day
from
( select to_date(’01/01/20002,’dd/mm/rrrr’) + rownum Date
from (select null
from dual
connect by level "inf" 10000)
WHERE Date "inf" SYSDATE+1
ORDER BY 1 ASC
)

ATTENTION : remplacer "inf" par le signe inférieur (bug d'affichage du forum)
 
 
Dernière édition: 13-05-2008 à 08:55 Par rhooft.
  L'administrateur a désactivé l'accès public en écriture.
#768
watal (Utilisateur)
Fresh Boarder
Messages: 19
graphgraph
Personne n'est hors ligne Cliquez ici pour voir le profil de cet utilisateur
Re:Génerer les dates depuis 6 Mois, 3 Semaines Karma: 0  
J'ai écris mon script, mais il est très long et n'exploite pas les fonctions disponible; du coup il n'est pas optimum. Je vais utiliser ton script pour l'optimiser.

Merci.
 
  L'administrateur a désactivé l'accès public en écriture.
Revenir en haut Répondre
Développé par FireBoardObtenir les derniers messages directement sur votre PC
Joomla Template by Joomlashack
Joomla Templates by JoomlaShack Joomla Templates