J'ai différents types de données impliquant une plage de dates que je souhaite fusionner, mais en même temps, ventilées par jour. Donc, un 3 jours donnée entraînerait trois lignes:Utilisation de la clause de modèle pour développer des dates
start primary_key
start+1 primary_key
start+2 primary_key
Je joue autour de l'utilisation de la clause type de l'instruction select dans 10g et cherchais la meilleure façon d'y parvenir. Actuellement, je rejoins une gamme de dates qui couvre l'ensemble des dates possibles (sélectionnez min (date de début), max (date de fin)). Je préférerais sélectionner les données et ajouter plus de lignes pour les transformer en ensemble de données par jour.
modifier:
J'ai réussi à trouver (comprend maintenant des exemples de données):
SELECT * FROM (
SELECT 123 req_code,
345 req_par_code,
TO_DATE('01-03-2010', 'dd-mm-yyyy') req_start_date,
TO_DATE('05-03-2010', 'dd-mm-yyyy') req_end_date
FROM dual
)
MODEL
PARTITION BY (req_code)
DIMENSION BY (0 d)
MEASURES (SYSDATE dt, req_par_code, req_start_date, req_end_date)
RULES ITERATE(365) UNTIL (dt[iteration_number] >= TRUNC(req_end_date[0])) (
dt[iteration_number] = NVL(dt[iteration_number-1] + 1, TRUNC(req_start_date[0])),
--Copy data across
req_par_code[ iteration_number ] = req_par_code[0],
req_start_date[ iteration_number ] = req_start_date[0],
req_end_date[ iteration_number ] = req_end_date[0]
)
ORDER BY dt, req_code;
Que diriez-vous de donner les commandes CREATE TABLE et INSERT et d'indiquer ce que vous attendez réellement. –