Bonjour,
Le titre n'est peut-être pas explique mais ce que je souhaite est de répéter des lignes d'une table A selon les valeurs d'une table B.
Le bout de script suivant et quelques explications permettront de comprendre je pense.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
with tabA AS (
	select 201101 as date, 'A' as val UNION ALL
	select 201103, 'B' UNION ALL
	select 201107, 'C'
),
tabB as (
	select 201101 as date UNION ALL
	select 201102 as date UNION ALL
	select 201103 as date UNION ALL
	select 201104 as date UNION ALL
	select 201105 as date UNION ALL
	select 201106 as date UNION ALL
	select 201107 as date UNION ALL
	select 201108 as date UNION ALL
	select 201109 as date 	
)
select 
	tabA.val 
	, tabA.date as dateval
	, tabB.date as date
from tabA, tabB
La table A représente des valeurs valable à date.
La table B représente une liste de dates pour lesquelles je souhaite obtenir les valeurs valables.

Je souhaite donc filtrer la requête précédente pour n'obtenir quel les lignes pour lesquelles la valeur courante est toujours valable, i.e. il n'y a pas eu de nouvelle définition de valeur.

Le résultat souhaité devrait être celui-ci :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
select 201101 as date, 'A' as val UNION ALL
select 201102 as date, 'A' as val UNION ALL
select 201103 as date, 'B' as val UNION ALL
select 201104 as date, 'B' as val UNION ALL
select 201105 as date, 'B' as val UNION ALL
select 201106 as date, 'B' as val UNION ALL
select 201107 as date, 'C' as val UNION ALL
select 201108 as date, 'C' as val UNION ALL
select 201109 as date, 'C' as val
Merci pour votre aide.