Bonjour à tous,
Quelle est la solution pour faire une vue indexée depuis une requête comprenant une sous requête ?
J'ai essayé plusieurs techniques mais je n'y arrive pas ?
Faudrait il partir sur une table "consolidée" qui contiendrait déja le max(version) ?
Solution avec sous requête:
Solution avec un JOIN:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 CREATE VIEW v_frequence30 AS SELECT i.datepoint30, sum (ISNULL (freq.frequence,0) / 30) AS freq_30mn, COUNT_BIG(*) as count FROM frequence freq INNER JOIN interval_1mn i ON i.datepoint = freq.datepoint WHERE freq.dateversion in (SELECT max(dateversion) FROM frequence freq1 where freq1.datepoint=freq.datepoint) GROUP BY i.datepoint30 GO
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 SELECT i.datepoint30, sum (ISNULL (freq.frequence, 0) / 30) AS freq_30mn, COUNT_BIG (*) AS count FROM frequence freq INNER JOIN interval_1mn i ON i.datepoint = freq.datepoint INNER JOIN (SELECT max (dateversion) AS dateversion, datepoint FROM frequence GROUP BY datepoint) AS maxfreq ON maxfreq.dateversion = freq.dateversion AND maxfreq.datepoint = freq.datepoint GROUP BY i.datepoint30
Partager