<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Laurent Banon: SQL Server Blogger</title><link>http://blogs.msdn.com/lbanon/default.aspx</link><description /><dc:language>en-US</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>Alimentation d’une table de dimension temps</title><link>http://blogs.msdn.com/lbanon/archive/2009/12/02/alimentation-d-une-table-de-dimension-temps.aspx</link><pubDate>Wed, 02 Dec 2009 09:26:06 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9931316</guid><dc:creator>lbanon</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/lbanon/comments/9931316.aspx</comments><wfw:commentRss>http://blogs.msdn.com/lbanon/commentrss.aspx?PostID=9931316</wfw:commentRss><description>&lt;p&gt;&lt;span style="color:#ff640e; font-family:Arial"&gt;&lt;strong&gt;Expression du besoin :
&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:#1f497d"&gt;Un besoin récurrent est de définir une table de dimension temps et de l'alimenter.
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p&gt;&lt;span style="color:#ff640e; font-family:Arial"&gt;&lt;strong&gt;Mise en place :
&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:#1f497d"&gt;Le script ci-dessous crée une structure simplifiée de la table « DimDate » issue de la base d'exemple AdventureWorksDW.
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:#1f497d"&gt;En effet, par simplicité, seule les informations de langue anglaise sont enregistrées dans cette table.
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p&gt;&lt;span style="color:#1f497d"&gt;L'alimentation de la table est réalisé à l'aide d'une procédure stockée qui prend en paramètre les deux bornes des dates.
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New"&gt;&lt;span style="color:blue"&gt;IF&lt;/span&gt;
			&lt;span style="color:gray"&gt;EXISTS&lt;span style="color:blue"&gt;
					&lt;span style="color:gray"&gt;(&lt;span style="color:blue"&gt;SELECT&lt;/span&gt; *&lt;/span&gt; FROM&lt;/span&gt;
				&lt;span style="color:green"&gt;sys&lt;span style="color:gray"&gt;.&lt;span style="color:green"&gt;objects&lt;/span&gt;
						&lt;span style="color:blue"&gt;WHERE&lt;/span&gt;
						&lt;span style="color:fuchsia"&gt;object_id&lt;/span&gt; =&lt;/span&gt;
					&lt;span style="color:fuchsia"&gt;OBJECT_ID&lt;span style="color:gray"&gt;(&lt;span style="color:red"&gt;N'[dbo].[DimDate]'&lt;span style="color:gray"&gt;)&lt;/span&gt;
								&lt;span style="color:gray"&gt;AND&lt;/span&gt;
								&lt;span style="color:blue"&gt;type&lt;/span&gt;
								&lt;span style="color:gray"&gt;in&lt;span style="color:blue"&gt;
										&lt;span style="color:gray"&gt;(&lt;span style="color:red"&gt;N'U'&lt;span style="color:gray"&gt;))
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New"&gt;&lt;span style="color:blue"&gt;DROP&lt;/span&gt;
			&lt;span style="color:blue"&gt;TABLE&lt;/span&gt; [dbo]&lt;span style="color:gray"&gt;.&lt;/span&gt;[DimDate]
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:blue; font-family:Courier New"&gt;GO
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New"&gt;&lt;span style="color:blue"&gt;CREATE&lt;/span&gt;
			&lt;span style="color:blue"&gt;TABLE&lt;/span&gt; [dbo]&lt;span style="color:gray"&gt;.&lt;/span&gt;[DimDate]&lt;span style="color:gray"&gt;(
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New"&gt;    [DateKey] [int] &lt;span style="color:blue"&gt;identity&lt;/span&gt;
			&lt;span style="color:gray"&gt;NOT&lt;/span&gt;
			&lt;span style="color:gray"&gt;NULL,
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New"&gt;    [FullDateAlternateKey] [date] &lt;span style="color:gray"&gt;NOT&lt;/span&gt;
			&lt;span style="color:gray"&gt;NULL,
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New"&gt;    [DayNumberOfWeek] [tinyint] &lt;span style="color:gray"&gt;NOT&lt;/span&gt;
			&lt;span style="color:gray"&gt;NULL,
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New"&gt;    [EnglishDayNameOfWeek] [nvarchar]&lt;span style="color:gray"&gt;(&lt;/span&gt;10&lt;span style="color:gray"&gt;)&lt;/span&gt;
			&lt;span style="color:gray"&gt;NOT&lt;/span&gt;
			&lt;span style="color:gray"&gt;NULL,
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New"&gt;    [DayNumberOfMonth] [tinyint] &lt;span style="color:gray"&gt;NOT&lt;/span&gt;
			&lt;span style="color:gray"&gt;NULL,
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New"&gt;    [DayNumberOfYear] [smallint] &lt;span style="color:gray"&gt;NOT&lt;/span&gt;
			&lt;span style="color:gray"&gt;NULL,
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New"&gt;    [WeekNumberOfYear] [tinyint] &lt;span style="color:gray"&gt;NOT&lt;/span&gt;
			&lt;span style="color:gray"&gt;NULL,
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New"&gt;    [EnglishMonthName] [nvarchar]&lt;span style="color:gray"&gt;(&lt;/span&gt;10&lt;span style="color:gray"&gt;)&lt;/span&gt;
			&lt;span style="color:gray"&gt;NOT&lt;/span&gt;
			&lt;span style="color:gray"&gt;NULL,
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New"&gt;    [MonthNumberOfYear] [tinyint] &lt;span style="color:gray"&gt;NOT&lt;/span&gt;
			&lt;span style="color:gray"&gt;NULL,
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New"&gt;    [CalendarQuarter] [tinyint] &lt;span style="color:gray"&gt;NOT&lt;/span&gt;
			&lt;span style="color:gray"&gt;NULL,
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New"&gt;    [CalendarYear] [smallint] &lt;span style="color:gray"&gt;NOT&lt;/span&gt;
			&lt;span style="color:gray"&gt;NULL,
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New"&gt;    [CalendarSemester] [tinyint] &lt;span style="color:gray"&gt;NOT&lt;/span&gt;
			&lt;span style="color:gray"&gt;NULL,
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New"&gt;    
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New"&gt;
			&lt;span style="color:blue"&gt;CONSTRAINT&lt;/span&gt; [PK_DimDate_DateKey] &lt;span style="color:blue"&gt;PRIMARY&lt;/span&gt;
			&lt;span style="color:blue"&gt;KEY&lt;/span&gt;
			&lt;span style="color:blue"&gt;CLUSTERED&lt;/span&gt;
		&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:gray; font-family:Courier New"&gt;(
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New"&gt;    [DateKey] &lt;span style="color:blue"&gt;ASC
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:gray; font-family:Courier New"&gt;))
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:blue; font-family:Courier New"&gt;GO
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New"&gt;&lt;span style="color:blue"&gt;IF&lt;/span&gt;
			&lt;span style="color:gray"&gt;EXISTS&lt;span style="color:blue"&gt;
					&lt;span style="color:gray"&gt;(&lt;span style="color:blue"&gt;SELECT&lt;/span&gt; *&lt;/span&gt; FROM&lt;/span&gt;
				&lt;span style="color:green"&gt;sys&lt;span style="color:gray"&gt;.&lt;span style="color:green"&gt;objects&lt;/span&gt;
						&lt;span style="color:blue"&gt;WHERE&lt;/span&gt;
						&lt;span style="color:fuchsia"&gt;object_id&lt;/span&gt; =&lt;/span&gt;
					&lt;span style="color:fuchsia"&gt;OBJECT_ID&lt;span style="color:gray"&gt;(&lt;span style="color:red"&gt;N'[dbo].[FillDimDate]'&lt;span style="color:gray"&gt;)&lt;/span&gt;
								&lt;span style="color:gray"&gt;AND&lt;/span&gt;
								&lt;span style="color:blue"&gt;type&lt;/span&gt;
								&lt;span style="color:gray"&gt;in&lt;span style="color:blue"&gt;
										&lt;span style="color:gray"&gt;(&lt;span style="color:red"&gt;N'P'&lt;span style="color:gray"&gt;,&lt;/span&gt; N'PC'&lt;span style="color:gray"&gt;))
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New"&gt;&lt;span style="color:blue"&gt;DROP&lt;/span&gt;
			&lt;span style="color:blue"&gt;PROCEDURE&lt;/span&gt; [dbo]&lt;span style="color:gray"&gt;.&lt;/span&gt;[FillDimDate]
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:blue; font-family:Courier New"&gt;GO
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New"&gt;&lt;span style="color:blue"&gt;Create&lt;/span&gt;
			&lt;span style="color:blue"&gt;Procedure&lt;/span&gt; FillDimDate
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New"&gt;    @starting_dt &lt;span style="color:blue"&gt;datetime
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New"&gt;    &lt;span style="color:gray"&gt;,&lt;/span&gt;@ending_dt &lt;span style="color:blue"&gt;datetime
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p&gt;&lt;span style="color:blue; font-family:Courier New"&gt;as
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New"&gt;&lt;span style="color:blue"&gt;set&lt;/span&gt;
			&lt;span style="color:blue"&gt;datefirst&lt;/span&gt; 1
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New"&gt;&lt;span style="color:blue"&gt;declare&lt;/span&gt; @cntr_day &lt;span style="color:blue"&gt;datetime&lt;span style="color:gray"&gt;,&lt;/span&gt;@diff int&lt;span style="color:gray"&gt;,&lt;/span&gt;@cntr int&lt;span style="color:gray"&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New"&gt;&lt;span style="color:blue"&gt;SET&lt;/span&gt; @cntr &lt;span style="color:gray"&gt;=&lt;/span&gt; 0 
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New"&gt;&lt;span style="color:blue"&gt;select&lt;/span&gt; @diff &lt;span style="color:gray"&gt;=&lt;/span&gt;
			&lt;span style="color:fuchsia"&gt;datediff&lt;span style="color:gray"&gt;(&lt;/span&gt;dd&lt;span style="color:gray"&gt;,&lt;/span&gt;@starting_dt&lt;span style="color:gray"&gt;,&lt;/span&gt;@ending_dt&lt;span style="color:gray"&gt;)&lt;/span&gt;
			&lt;/span&gt;
		&lt;/span&gt;&lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New"&gt;&lt;span style="color:blue"&gt;while&lt;/span&gt; @cntr &lt;span style="color:gray"&gt;&amp;lt;=&lt;/span&gt; @diff 
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:blue; font-family:Courier New"&gt;begin
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New"&gt;    &lt;span style="color:blue"&gt;select&lt;/span&gt; @cntr_day &lt;span style="color:gray"&gt;=&lt;/span&gt;
			&lt;span style="color:fuchsia"&gt;dateadd&lt;span style="color:gray"&gt;(&lt;/span&gt;dd&lt;span style="color:gray"&gt;,&lt;/span&gt;@cntr&lt;span style="color:gray"&gt;,&lt;/span&gt;@starting_dt&lt;span style="color:gray"&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New"&gt;    &lt;span style="color:blue"&gt;insert&lt;/span&gt;
			&lt;span style="color:blue"&gt;into&lt;/span&gt; [DimDate] 
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:blue; font-family:Courier New"&gt;    &lt;span style="color:gray"&gt;(&lt;/span&gt;FullDateAlternateKey&lt;span style="color:gray"&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New"&gt;    DayNumberOfWeek &lt;span style="color:gray"&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New"&gt;    EnglishDayNameOfWeek&lt;span style="color:gray"&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New"&gt;    DayNumberOfMonth&lt;span style="color:gray"&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New"&gt;    DayNumberOfYear&lt;span style="color:gray"&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New"&gt;    WeekNumberOfYear&lt;span style="color:gray"&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New"&gt;    EnglishMonthName&lt;span style="color:gray"&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New"&gt;    MonthNumberOfYear&lt;span style="color:gray"&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New"&gt;    CalendarQuarter&lt;span style="color:gray"&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New"&gt;    CalendarYear&lt;span style="color:gray"&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New"&gt;    CalendarSemester&lt;span style="color:gray"&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New"&gt;    &lt;span style="color:blue"&gt;select&lt;/span&gt;
		&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New"&gt;    @cntr_day 
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New"&gt;    &lt;span style="color:gray"&gt;,&lt;span style="color:fuchsia"&gt;datepart&lt;span style="color:gray"&gt;(&lt;/span&gt;dw&lt;span style="color:gray"&gt;,&lt;/span&gt;@cntr_day&lt;span style="color:gray"&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New"&gt;    &lt;span style="color:gray"&gt;,&lt;span style="color:blue"&gt;case&lt;/span&gt;
				&lt;span style="color:fuchsia"&gt;datepart&lt;span style="color:gray"&gt;(&lt;/span&gt;dw&lt;span style="color:gray"&gt;,&lt;/span&gt;@cntr_day&lt;span style="color:gray"&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New"&gt;    &lt;span style="color:blue"&gt;when&lt;/span&gt; 1 &lt;span style="color:blue"&gt;then&lt;/span&gt;
			&lt;span style="color:red"&gt;'Monday'
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New"&gt;    &lt;span style="color:blue"&gt;when&lt;/span&gt; 2 &lt;span style="color:blue"&gt;then&lt;/span&gt;
			&lt;span style="color:red"&gt;'Tuesday'
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New"&gt;    &lt;span style="color:blue"&gt;when&lt;/span&gt; 3 &lt;span style="color:blue"&gt;then&lt;/span&gt;
			&lt;span style="color:red"&gt;'Wednesday'
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New"&gt;    &lt;span style="color:blue"&gt;when&lt;/span&gt; 4 &lt;span style="color:blue"&gt;then&lt;/span&gt;
			&lt;span style="color:red"&gt;'Thursday'
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New"&gt;    &lt;span style="color:blue"&gt;when&lt;/span&gt; 5 &lt;span style="color:blue"&gt;then&lt;/span&gt;
			&lt;span style="color:red"&gt;'Friday'
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New"&gt;    &lt;span style="color:blue"&gt;when&lt;/span&gt; 6 &lt;span style="color:blue"&gt;then&lt;/span&gt;
			&lt;span style="color:red"&gt;'Saturday'
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New"&gt;    &lt;span style="color:blue"&gt;when&lt;/span&gt; 7 &lt;span style="color:blue"&gt;then&lt;/span&gt;
			&lt;span style="color:red"&gt;'Sunday'
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New"&gt;    &lt;span style="color:blue"&gt;end
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New"&gt;    &lt;span style="color:gray"&gt;,&lt;span style="color:fuchsia"&gt;datepart&lt;span style="color:gray"&gt;(&lt;span style="color:fuchsia"&gt;day&lt;span style="color:gray"&gt;,&lt;/span&gt;@cntr_day&lt;span style="color:gray"&gt;)&lt;/span&gt;
						&lt;/span&gt;
					&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New"&gt;    &lt;span style="color:gray"&gt;,&lt;span style="color:fuchsia"&gt;datepart&lt;span style="color:gray"&gt;(&lt;/span&gt;dy&lt;span style="color:gray"&gt;,&lt;/span&gt;@cntr_day&lt;span style="color:gray"&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New"&gt;    &lt;span style="color:gray"&gt;,&lt;span style="color:fuchsia"&gt;datepart&lt;span style="color:gray"&gt;(&lt;/span&gt;wk&lt;span style="color:gray"&gt;,&lt;/span&gt;@cntr_day&lt;span style="color:gray"&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New"&gt;    &lt;span style="color:gray"&gt;,&lt;span style="color:blue"&gt;case&lt;/span&gt;
				&lt;span style="color:fuchsia"&gt;datepart&lt;span style="color:gray"&gt;(&lt;/span&gt;mm&lt;span style="color:gray"&gt;,&lt;/span&gt;@cntr_day&lt;span style="color:gray"&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New"&gt;    &lt;span style="color:blue"&gt;when&lt;/span&gt; 1 &lt;span style="color:blue"&gt;then&lt;/span&gt;
			&lt;span style="color:red"&gt;'January'
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New"&gt;    &lt;span style="color:blue"&gt;when&lt;/span&gt; 2 &lt;span style="color:blue"&gt;then&lt;/span&gt;
			&lt;span style="color:red"&gt;'February'
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New"&gt;    &lt;span style="color:blue"&gt;when&lt;/span&gt; 3 &lt;span style="color:blue"&gt;then&lt;/span&gt;
			&lt;span style="color:red"&gt;'March'
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New"&gt;    &lt;span style="color:blue"&gt;when&lt;/span&gt; 4 &lt;span style="color:blue"&gt;then&lt;/span&gt;
			&lt;span style="color:red"&gt;'April'
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New"&gt;    &lt;span style="color:blue"&gt;when&lt;/span&gt; 5 &lt;span style="color:blue"&gt;then&lt;/span&gt;
			&lt;span style="color:red"&gt;'May'
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New"&gt;    &lt;span style="color:blue"&gt;when&lt;/span&gt; 6 &lt;span style="color:blue"&gt;then&lt;/span&gt;
			&lt;span style="color:red"&gt;'June'
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New"&gt;    &lt;span style="color:blue"&gt;when&lt;/span&gt; 7 &lt;span style="color:blue"&gt;then&lt;/span&gt;
			&lt;span style="color:red"&gt;'July'
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New"&gt;    &lt;span style="color:blue"&gt;when&lt;/span&gt; 8 &lt;span style="color:blue"&gt;then&lt;/span&gt;
			&lt;span style="color:red"&gt;'August'
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New"&gt;    &lt;span style="color:blue"&gt;when&lt;/span&gt; 9 &lt;span style="color:blue"&gt;then&lt;/span&gt;
			&lt;span style="color:red"&gt;'September'
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New"&gt;    &lt;span style="color:blue"&gt;when&lt;/span&gt; 10 &lt;span style="color:blue"&gt;then&lt;/span&gt;
			&lt;span style="color:red"&gt;'October'
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New"&gt;    &lt;span style="color:blue"&gt;when&lt;/span&gt; 11 &lt;span style="color:blue"&gt;then&lt;/span&gt;
			&lt;span style="color:red"&gt;'November'
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New"&gt;    &lt;span style="color:blue"&gt;when&lt;/span&gt; 12 &lt;span style="color:blue"&gt;then&lt;/span&gt;
			&lt;span style="color:red"&gt;'December'
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New"&gt;    &lt;span style="color:blue"&gt;end
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New"&gt;    &lt;span style="color:gray"&gt;,&lt;span style="color:fuchsia"&gt;datepart&lt;span style="color:gray"&gt;(&lt;/span&gt;mm&lt;span style="color:gray"&gt;,&lt;/span&gt;@cntr_day&lt;span style="color:gray"&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New"&gt;    &lt;span style="color:gray"&gt;,&lt;span style="color:fuchsia"&gt;datepart&lt;span style="color:gray"&gt;(&lt;/span&gt;qq&lt;span style="color:gray"&gt;,&lt;/span&gt;@cntr_day&lt;span style="color:gray"&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New"&gt;    &lt;span style="color:gray"&gt;,&lt;span style="color:fuchsia"&gt;datepart&lt;span style="color:gray"&gt;(&lt;/span&gt;yy&lt;span style="color:gray"&gt;,&lt;/span&gt;@cntr_day&lt;span style="color:gray"&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New"&gt;    &lt;span style="color:gray"&gt;,&lt;span style="color:blue"&gt;case &lt;span style="color:gray"&gt;(&lt;span style="color:fuchsia"&gt;datepart&lt;span style="color:gray"&gt;(&lt;/span&gt;mm&lt;span style="color:gray"&gt;,&lt;span style="color:fuchsia"&gt;getdate&lt;span style="color:gray"&gt;()))
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New"&gt;    &lt;span style="color:blue"&gt;when&lt;/span&gt; 1 &lt;span style="color:blue"&gt;then&lt;/span&gt; 1
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New"&gt;    &lt;span style="color:blue"&gt;when&lt;/span&gt; 2 &lt;span style="color:blue"&gt;then&lt;/span&gt; 1
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New"&gt;    &lt;span style="color:blue"&gt;when&lt;/span&gt; 3 &lt;span style="color:blue"&gt;then&lt;/span&gt; 1
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New"&gt;    &lt;span style="color:blue"&gt;when&lt;/span&gt; 4 &lt;span style="color:blue"&gt;then&lt;/span&gt; 1
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New"&gt;    &lt;span style="color:blue"&gt;when&lt;/span&gt; 5 &lt;span style="color:blue"&gt;then&lt;/span&gt; 1
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New"&gt;    &lt;span style="color:blue"&gt;when&lt;/span&gt; 6 &lt;span style="color:blue"&gt;then&lt;/span&gt; 1
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New"&gt;    &lt;span style="color:blue"&gt;else&lt;/span&gt; 2
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New"&gt;    &lt;span style="color:blue"&gt;end&lt;/span&gt;
		&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New"&gt;    &lt;span style="color:blue"&gt;set&lt;/span&gt; @cntr &lt;span style="color:gray"&gt;=&lt;/span&gt; @cntr &lt;span style="color:gray"&gt;+&lt;/span&gt; 1 
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:blue; font-family:Courier New"&gt;end
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p&gt;&lt;span style="color:blue; font-family:Courier New"&gt;GO
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New"&gt;&lt;span style="color:blue"&gt;EXECUTE&lt;/span&gt; FillDimDate&lt;span style="color:blue"&gt;
			&lt;/span&gt;@starting_dt &lt;span style="color:gray"&gt;=&lt;span style="color:red"&gt;'2006-01-01'&lt;span style="color:gray"&gt;,&lt;/span&gt;@ending_dt &lt;span style="color:gray"&gt;=&lt;/span&gt; '2009-12-31'
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:blue; font-family:Courier New"&gt;GO
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9931316" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/lbanon/archive/tags/SSAS/default.aspx">SSAS</category></item><item><title>Zoom sur l’algorithme série temporelle</title><link>http://blogs.msdn.com/lbanon/archive/2009/11/21/zoom-sur-l-algorithme-s-rie-temporelle.aspx</link><pubDate>Sat, 21 Nov 2009 12:47:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9926723</guid><dc:creator>lbanon</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/lbanon/comments/9926723.aspx</comments><wfw:commentRss>http://blogs.msdn.com/lbanon/commentrss.aspx?PostID=9926723</wfw:commentRss><description>&lt;div style="border-bottom: #4f81bd 1pt solid; border-left: medium none; padding-bottom: 4pt; padding-left: 0cm; padding-right: 0cm; border-top: medium none; border-right: medium none; padding-top: 0cm; mso-element: para-border-div; mso-border-bottom-themecolor: accent1"&gt;&lt;/div&gt;  &lt;p style="mso-list: l0 level1 lfo1" class="NumHeading1"&gt;&lt;a name="_Toc246568646"&gt;&lt;strong&gt;&lt;font size="4"&gt;&lt;font color="#004080"&gt;&lt;span style="mso-ansi-language: fr"&gt;&lt;span style="mso-list: ignore"&gt;1&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="mso-ansi-language: fr"&gt;Présentation de l’algorithme de série temporel&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/strong&gt;&lt;/a&gt;&lt;span style="mso-ansi-language: fr"&gt;&lt;strong&gt;&lt;font size="5"&gt;&lt;font color="#004080"&gt;&lt;font size="4"&gt;le&lt;/font&gt;             &lt;p&gt;&lt;/p&gt;         &lt;/font&gt;&lt;/font&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="mso-ansi-language: fr"&gt;     &lt;p&gt;&amp;#160;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="mso-ansi-language: fr"&gt;L’algorithme de série temporal a évolué de manière significative sous SQL Server 2008.     &lt;p&gt;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="mso-ansi-language: fr"&gt;SQL Server 2005 utilise l’algorithme ARTXP de la recherché de Microsoft.      &lt;p&gt;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="mso-ansi-language: fr"&gt;Cet algorithme est bien connu pour sa pertinence mais peut néanmoins avoir certaines instabilité sur des projection à long termes.     &lt;p&gt;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="mso-ansi-language: fr"&gt;Pour cette raison SQL Server 2008 introduit en complément l’algorithme ARIMA. L’utilisateur doit-il faire un choix entre du long termes ou un algorithme précis sur des projections à court terme ?     &lt;p&gt;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="mso-ansi-language: fr"&gt;Dans un soucis à la fois de pertinence et simplicité, SQL Server 2008 compose avec les deux algorithmes.     &lt;p&gt;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="mso-ansi-language: fr"&gt;Afin de contrôler ce comportement, nous avons trois nouveaux paramètres qui sont:     &lt;p&gt;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p style="text-indent: -18pt; mso-list: l1 level1 lfo2" class="MsoListParagraph"&gt;&lt;span style="mso-ansi-language: fr; mso-fareast-font-family: calibri; mso-bidi-font-family: calibri"&gt;&lt;span style="mso-list: ignore"&gt;-&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="mso-ansi-language: fr"&gt;FORECAST_METHOD – contrôle quel algorithme est utilisé. La valeur “MIXED” est celle par défaut mais nous pouvons spécifier également ARIMA ou ARTXP.     &lt;p&gt;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p style="text-indent: -18pt; mso-list: l1 level1 lfo2" class="MsoListParagraph"&gt;&lt;span style="mso-ansi-language: fr; mso-fareast-font-family: calibri; mso-bidi-font-family: calibri"&gt;&lt;span style="mso-list: ignore"&gt;-&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="mso-ansi-language: fr"&gt;PREDICTION_SMOOTHING – contrôle le niveau de composition des deux algorithmes. Une valeur proche de 0favorise ARTXP tandis qu’une valeur proche de 1 favorise plus ARIMA.     &lt;p&gt;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p style="text-indent: -18pt; mso-list: l1 level1 lfo2" class="MsoListParagraph"&gt;&lt;span style="mso-ansi-language: fr; mso-fareast-font-family: calibri; mso-bidi-font-family: calibri"&gt;&lt;span style="mso-list: ignore"&gt;-&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="mso-ansi-language: fr"&gt;INSTABILITY_SENSITIVITY Si l’algorithme choisit est ARTXP, il est possible de définir des seuils pour lesquelles les données d’entrée de prédictions ne sont pas pris en compte.     &lt;p&gt;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="mso-ansi-language: fr"&gt;     &lt;p&gt;&amp;#160;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p style="mso-list: l0 level2 lfo1" class="NumHeading2"&gt;&lt;a name="_Toc246568647"&gt;&lt;span style="mso-ansi-language: fr; mso-bidi-font-family: calibri; mso-bidi-theme-font: minor-latin"&gt;&lt;span style="mso-list: ignore"&gt;1.1&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="mso-ansi-language: fr"&gt;Représentation de données de série temporel&lt;/span&gt;&lt;/a&gt;&lt;span style="mso-ansi-language: fr"&gt;     &lt;p&gt;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="mso-ansi-language: fr"&gt;Nous avons deux types de représentation de série temporel qui sont illustrés à travers les deux tableaux ci-dessous :     &lt;p&gt;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;b style="mso-bidi-font-weight: normal"&gt;&lt;u&gt;&lt;span style="mso-ansi-language: fr"&gt;Représentation dénormalisée         &lt;p&gt;&lt;/p&gt;       &lt;/span&gt;&lt;/u&gt;&lt;/b&gt;&lt;/p&gt;  &lt;table style="border-bottom: medium none; border-left: medium none; border-collapse: collapse; margin-left: 11.35pt; border-top: medium none; border-right: medium none; mso-border-top-alt: solid #999999 1.0pt; mso-border-bottom-alt: solid #999999 1.0pt; mso-yfti-tbllook: 1184; mso-padding-alt: 0cm 2.85pt 0cm 2.85pt" class="MsoTableGrid" border="1" cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;     &lt;tr style="mso-yfti-irow: -1; mso-yfti-firstrow: yes"&gt;       &lt;td style="border-bottom: #999999 1.5pt solid; border-left: medium none; padding-bottom: 0cm; padding-left: 2.85pt; width: 74.25pt; padding-right: 2.85pt; background: #e6e6e6; border-top: #999999 1.5pt solid; border-right: medium none; padding-top: 0cm" valign="top" width="99"&gt;         &lt;p style="line-height: normal; margin: 3pt 0cm; mso-yfti-cnfc: 1" class="MsoNormal"&gt;&lt;b&gt;&lt;span style="font-family: &amp;quot;Segoe Condensed&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 10pt; mso-ansi-language: fr; mso-fareast-font-family: &amp;#39;Segoe Condensed&amp;#39;; mso-bidi-font-family: &amp;#39;Segoe Condensed&amp;#39;; mso-fareast-language: fr"&gt;Date               &lt;p&gt;&lt;/p&gt;             &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td style="border-bottom: #999999 1.5pt solid; border-left: medium none; padding-bottom: 0cm; padding-left: 2.85pt; width: 74.75pt; padding-right: 2.85pt; background: #e6e6e6; border-top: #999999 1.5pt solid; border-right: medium none; padding-top: 0cm" valign="top" width="100"&gt;         &lt;p style="line-height: normal; margin: 3pt 0cm; mso-yfti-cnfc: 1" class="MsoNormal"&gt;&lt;b&gt;&lt;span style="font-family: &amp;quot;Segoe Condensed&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 10pt; mso-ansi-language: fr; mso-fareast-font-family: &amp;#39;Segoe Condensed&amp;#39;; mso-bidi-font-family: &amp;#39;Segoe Condensed&amp;#39;; mso-fareast-language: fr"&gt;Vente Produit A               &lt;p&gt;&lt;/p&gt;             &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td style="border-bottom: #999999 1.5pt solid; border-left: medium none; padding-bottom: 0cm; padding-left: 2.85pt; width: 74.8pt; padding-right: 2.85pt; background: #e6e6e6; border-top: #999999 1.5pt solid; border-right: medium none; padding-top: 0cm" valign="top" width="100"&gt;         &lt;p style="line-height: normal; margin: 3pt 0cm; mso-yfti-cnfc: 1" class="MsoNormal"&gt;&lt;b&gt;&lt;span style="font-family: &amp;quot;Segoe Condensed&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 10pt; mso-ansi-language: fr; mso-fareast-font-family: &amp;#39;Segoe Condensed&amp;#39;; mso-bidi-font-family: &amp;#39;Segoe Condensed&amp;#39;; mso-fareast-language: fr"&gt;Vente Produit B               &lt;p&gt;&lt;/p&gt;             &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td style="border-bottom: #999999 1.5pt solid; border-left: medium none; padding-bottom: 0cm; padding-left: 2.85pt; width: 74.8pt; padding-right: 2.85pt; background: #e6e6e6; border-top: #999999 1.5pt solid; border-right: medium none; padding-top: 0cm" valign="top" width="100"&gt;         &lt;p style="line-height: normal; margin: 3pt 0cm; mso-yfti-cnfc: 1" class="MsoNormal"&gt;&lt;b&gt;&lt;span style="font-family: &amp;quot;Segoe Condensed&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 10pt; mso-ansi-language: fr; mso-fareast-font-family: &amp;#39;Segoe Condensed&amp;#39;; mso-bidi-font-family: &amp;#39;Segoe Condensed&amp;#39;; mso-fareast-language: fr"&gt;Vente Produit C               &lt;p&gt;&lt;/p&gt;             &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr style="mso-yfti-irow: 0"&gt;       &lt;td style="border-bottom: #999999 1pt solid; border-left: medium none; padding-bottom: 0cm; padding-left: 2.85pt; width: 74.25pt; padding-right: 2.85pt; border-top: medium none; border-right: medium none; padding-top: 0cm; mso-border-top-alt: solid #999999 1.0pt" valign="top" width="99"&gt;         &lt;p style="line-height: normal; margin: 3pt 0cm; mso-yfti-cnfc: 64" class="MsoNormal"&gt;&lt;span style="font-family: &amp;quot;Segoe&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 10pt; mso-ansi-language: fr; mso-fareast-font-family: &amp;#39;Arial Narrow&amp;#39;; mso-bidi-font-family: segoe; mso-fareast-language: fr"&gt;Janvier 2008             &lt;p&gt;&lt;/p&gt;           &lt;/span&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td style="border-bottom: #999999 1pt solid; border-left: medium none; padding-bottom: 0cm; padding-left: 2.85pt; width: 74.75pt; padding-right: 2.85pt; border-top: medium none; border-right: medium none; padding-top: 0cm; mso-border-top-alt: solid #999999 1.0pt" valign="top" width="100"&gt;         &lt;p style="line-height: normal; margin: 3pt 0cm; mso-yfti-cnfc: 64" class="MsoNormal"&gt;&lt;span style="font-family: &amp;quot;Segoe&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 10pt; mso-ansi-language: fr; mso-fareast-font-family: &amp;#39;Arial Narrow&amp;#39;; mso-bidi-font-family: segoe; mso-fareast-language: fr"&gt;10             &lt;p&gt;&lt;/p&gt;           &lt;/span&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td style="border-bottom: #999999 1pt solid; border-left: medium none; padding-bottom: 0cm; padding-left: 2.85pt; width: 74.8pt; padding-right: 2.85pt; border-top: medium none; border-right: medium none; padding-top: 0cm; mso-border-top-alt: solid #999999 1.0pt" valign="top" width="100"&gt;         &lt;p style="line-height: normal; margin: 3pt 0cm; mso-yfti-cnfc: 64" class="MsoNormal"&gt;&lt;span style="font-family: &amp;quot;Segoe&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 10pt; mso-ansi-language: fr; mso-fareast-font-family: &amp;#39;Arial Narrow&amp;#39;; mso-bidi-font-family: segoe; mso-fareast-language: fr"&gt;12             &lt;p&gt;&lt;/p&gt;           &lt;/span&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td style="border-bottom: #999999 1pt solid; border-left: medium none; padding-bottom: 0cm; padding-left: 2.85pt; width: 74.8pt; padding-right: 2.85pt; border-top: medium none; border-right: medium none; padding-top: 0cm; mso-border-top-alt: solid #999999 1.0pt" valign="top" width="100"&gt;         &lt;p style="line-height: normal; margin: 3pt 0cm; mso-yfti-cnfc: 64" class="MsoNormal"&gt;&lt;span style="font-family: &amp;quot;Segoe&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 10pt; mso-ansi-language: fr; mso-fareast-font-family: &amp;#39;Arial Narrow&amp;#39;; mso-bidi-font-family: segoe; mso-fareast-language: fr"&gt;15             &lt;p&gt;&lt;/p&gt;           &lt;/span&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr style="mso-yfti-irow: 1"&gt;       &lt;td style="border-bottom: medium none; border-left: medium none; padding-bottom: 0cm; padding-left: 2.85pt; width: 74.25pt; padding-right: 2.85pt; border-top: medium none; border-right: medium none; padding-top: 0cm" valign="top" width="99"&gt;         &lt;p style="line-height: normal; margin: 3pt 0cm; mso-yfti-cnfc: 128" class="MsoNormal"&gt;&lt;span style="font-family: &amp;quot;Segoe&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 10pt; mso-ansi-language: fr; mso-fareast-font-family: segoe; mso-bidi-font-family: segoe; mso-fareast-language: fr"&gt;Février 2008             &lt;p&gt;&lt;/p&gt;           &lt;/span&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td style="border-bottom: medium none; border-left: medium none; padding-bottom: 0cm; padding-left: 2.85pt; width: 74.75pt; padding-right: 2.85pt; border-top: medium none; border-right: medium none; padding-top: 0cm" valign="top" width="100"&gt;         &lt;p style="line-height: normal; margin: 3pt 0cm; mso-yfti-cnfc: 128" class="MsoNormal"&gt;&lt;span style="font-family: &amp;quot;Segoe&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 10pt; mso-ansi-language: fr; mso-fareast-font-family: segoe; mso-bidi-font-family: segoe; mso-fareast-language: fr"&gt;12             &lt;p&gt;&lt;/p&gt;           &lt;/span&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td style="border-bottom: medium none; border-left: medium none; padding-bottom: 0cm; padding-left: 2.85pt; width: 74.8pt; padding-right: 2.85pt; border-top: medium none; border-right: medium none; padding-top: 0cm" valign="top" width="100"&gt;         &lt;p style="line-height: normal; margin: 3pt 0cm; mso-yfti-cnfc: 128" class="MsoNormal"&gt;&lt;span style="font-family: &amp;quot;Segoe&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 10pt; mso-ansi-language: fr; mso-fareast-font-family: segoe; mso-bidi-font-family: segoe; mso-fareast-language: fr"&gt;16             &lt;p&gt;&lt;/p&gt;           &lt;/span&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td style="border-bottom: medium none; border-left: medium none; padding-bottom: 0cm; padding-left: 2.85pt; width: 74.8pt; padding-right: 2.85pt; border-top: medium none; border-right: medium none; padding-top: 0cm" valign="top" width="100"&gt;         &lt;p style="line-height: normal; margin: 3pt 0cm; mso-yfti-cnfc: 128" class="MsoNormal"&gt;&lt;span style="font-family: &amp;quot;Segoe&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 10pt; mso-ansi-language: fr; mso-fareast-font-family: segoe; mso-bidi-font-family: segoe; mso-fareast-language: fr"&gt;18             &lt;p&gt;&lt;/p&gt;           &lt;/span&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr style="mso-yfti-irow: 2; mso-yfti-lastrow: yes"&gt;       &lt;td style="border-bottom: #999999 1pt solid; border-left: medium none; padding-bottom: 0cm; padding-left: 2.85pt; width: 74.25pt; padding-right: 2.85pt; border-top: #999999 1pt solid; border-right: medium none; padding-top: 0cm" valign="top" width="99"&gt;         &lt;p style="line-height: normal; margin: 3pt 0cm; mso-yfti-cnfc: 64" class="MsoNormal"&gt;&lt;span style="font-family: &amp;quot;Segoe&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 10pt; mso-ansi-language: fr; mso-fareast-font-family: &amp;#39;Arial Narrow&amp;#39;; mso-bidi-font-family: segoe; mso-fareast-language: fr"&gt;Mars 2008             &lt;p&gt;&lt;/p&gt;           &lt;/span&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td style="border-bottom: #999999 1pt solid; border-left: medium none; padding-bottom: 0cm; padding-left: 2.85pt; width: 74.75pt; padding-right: 2.85pt; border-top: #999999 1pt solid; border-right: medium none; padding-top: 0cm" valign="top" width="100"&gt;         &lt;p style="line-height: normal; margin: 3pt 0cm; mso-yfti-cnfc: 64" class="MsoNormal"&gt;&lt;span style="font-family: &amp;quot;Segoe&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 10pt; mso-ansi-language: fr; mso-fareast-font-family: &amp;#39;Arial Narrow&amp;#39;; mso-bidi-font-family: segoe; mso-fareast-language: fr"&gt;10             &lt;p&gt;&lt;/p&gt;           &lt;/span&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td style="border-bottom: #999999 1pt solid; border-left: medium none; padding-bottom: 0cm; padding-left: 2.85pt; width: 74.8pt; padding-right: 2.85pt; border-top: #999999 1pt solid; border-right: medium none; padding-top: 0cm" valign="top" width="100"&gt;         &lt;p style="line-height: normal; margin: 3pt 0cm; mso-yfti-cnfc: 64" class="MsoNormal"&gt;&lt;span style="font-family: &amp;quot;Segoe&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 10pt; mso-ansi-language: fr; mso-fareast-font-family: &amp;#39;Arial Narrow&amp;#39;; mso-bidi-font-family: segoe; mso-fareast-language: fr"&gt;12             &lt;p&gt;&lt;/p&gt;           &lt;/span&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td style="border-bottom: #999999 1pt solid; border-left: medium none; padding-bottom: 0cm; padding-left: 2.85pt; width: 74.8pt; padding-right: 2.85pt; border-top: #999999 1pt solid; border-right: medium none; padding-top: 0cm" valign="top" width="100"&gt;         &lt;p style="line-height: normal; margin: 3pt 0cm; mso-yfti-cnfc: 64" class="MsoNormal"&gt;&lt;span style="font-family: &amp;quot;Segoe&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 10pt; mso-ansi-language: fr; mso-fareast-font-family: &amp;#39;Arial Narrow&amp;#39;; mso-bidi-font-family: segoe; mso-fareast-language: fr"&gt;15             &lt;p&gt;&lt;/p&gt;           &lt;/span&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="mso-ansi-language: fr"&gt;     &lt;p&gt;&amp;#160;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;b style="mso-bidi-font-weight: normal"&gt;&lt;u&gt;&lt;span style="mso-ansi-language: fr"&gt;Représentation normalisée         &lt;p&gt;&lt;/p&gt;       &lt;/span&gt;&lt;/u&gt;&lt;/b&gt;&lt;/p&gt;  &lt;table style="border-bottom: medium none; border-left: medium none; border-collapse: collapse; margin-left: 11.35pt; border-top: medium none; border-right: medium none; mso-border-top-alt: solid #999999 1.0pt; mso-border-bottom-alt: solid #999999 1.0pt; mso-yfti-tbllook: 1184; mso-padding-alt: 0cm 2.85pt 0cm 2.85pt" class="MsoTableGrid" border="1" cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;     &lt;tr style="mso-yfti-irow: -1; mso-yfti-firstrow: yes"&gt;       &lt;td style="border-bottom: #999999 1.5pt solid; border-left: medium none; padding-bottom: 0cm; padding-left: 2.85pt; width: 74.25pt; padding-right: 2.85pt; background: #e6e6e6; border-top: #999999 1.5pt solid; border-right: medium none; padding-top: 0cm" valign="top" width="99"&gt;         &lt;p style="line-height: normal; margin: 3pt 0cm; mso-yfti-cnfc: 1" class="MsoNormal"&gt;&lt;b&gt;&lt;span style="font-family: &amp;quot;Segoe Condensed&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 10pt; mso-ansi-language: fr; mso-fareast-font-family: &amp;#39;Segoe Condensed&amp;#39;; mso-bidi-font-family: &amp;#39;Segoe Condensed&amp;#39;; mso-fareast-language: fr"&gt;Date               &lt;p&gt;&lt;/p&gt;             &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td style="border-bottom: #999999 1.5pt solid; border-left: medium none; padding-bottom: 0cm; padding-left: 2.85pt; width: 74.75pt; padding-right: 2.85pt; background: #e6e6e6; border-top: #999999 1.5pt solid; border-right: medium none; padding-top: 0cm" valign="top" width="100"&gt;         &lt;p style="line-height: normal; margin: 3pt 0cm; mso-yfti-cnfc: 1" class="MsoNormal"&gt;&lt;b&gt;&lt;span style="font-family: &amp;quot;Segoe Condensed&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 10pt; mso-ansi-language: fr; mso-fareast-font-family: &amp;#39;Segoe Condensed&amp;#39;; mso-bidi-font-family: &amp;#39;Segoe Condensed&amp;#39;; mso-fareast-language: fr"&gt;Type produit               &lt;p&gt;&lt;/p&gt;             &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td style="border-bottom: #999999 1.5pt solid; border-left: medium none; padding-bottom: 0cm; padding-left: 2.85pt; width: 74.8pt; padding-right: 2.85pt; background: #e6e6e6; border-top: #999999 1.5pt solid; border-right: medium none; padding-top: 0cm" valign="top" width="100"&gt;         &lt;p style="line-height: normal; margin: 3pt 0cm; mso-yfti-cnfc: 1" class="MsoNormal"&gt;&lt;b&gt;&lt;span style="font-family: &amp;quot;Segoe Condensed&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 10pt; mso-ansi-language: fr; mso-fareast-font-family: &amp;#39;Segoe Condensed&amp;#39;; mso-bidi-font-family: &amp;#39;Segoe Condensed&amp;#39;; mso-fareast-language: fr"&gt;Vente               &lt;p&gt;&lt;/p&gt;             &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr style="mso-yfti-irow: 0"&gt;       &lt;td style="border-bottom: #999999 1pt solid; border-left: medium none; padding-bottom: 0cm; padding-left: 2.85pt; width: 74.25pt; padding-right: 2.85pt; border-top: medium none; border-right: medium none; padding-top: 0cm; mso-border-top-alt: solid #999999 1.0pt" valign="top" width="99"&gt;         &lt;p style="line-height: normal; margin: 3pt 0cm; mso-yfti-cnfc: 64" class="MsoNormal"&gt;&lt;span style="font-family: &amp;quot;Segoe&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 10pt; mso-ansi-language: fr; mso-fareast-font-family: &amp;#39;Arial Narrow&amp;#39;; mso-bidi-font-family: segoe; mso-fareast-language: fr"&gt;Janvier 2008             &lt;p&gt;&lt;/p&gt;           &lt;/span&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td style="border-bottom: #999999 1pt solid; border-left: medium none; padding-bottom: 0cm; padding-left: 2.85pt; width: 74.75pt; padding-right: 2.85pt; border-top: medium none; border-right: medium none; padding-top: 0cm; mso-border-top-alt: solid #999999 1.0pt" valign="top" width="100"&gt;         &lt;p style="line-height: normal; margin: 3pt 0cm; mso-yfti-cnfc: 64" class="MsoNormal"&gt;&lt;span style="font-family: &amp;quot;Segoe&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 10pt; mso-ansi-language: fr; mso-fareast-font-family: &amp;#39;Arial Narrow&amp;#39;; mso-bidi-font-family: segoe; mso-fareast-language: fr"&gt;Produit A             &lt;p&gt;&lt;/p&gt;           &lt;/span&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td style="border-bottom: #999999 1pt solid; border-left: medium none; padding-bottom: 0cm; padding-left: 2.85pt; width: 74.8pt; padding-right: 2.85pt; border-top: medium none; border-right: medium none; padding-top: 0cm; mso-border-top-alt: solid #999999 1.0pt" valign="top" width="100"&gt;         &lt;p style="line-height: normal; margin: 3pt 0cm; mso-yfti-cnfc: 64" class="MsoNormal"&gt;&lt;span style="font-family: &amp;quot;Segoe&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 10pt; mso-ansi-language: fr; mso-fareast-font-family: &amp;#39;Arial Narrow&amp;#39;; mso-bidi-font-family: segoe; mso-fareast-language: fr"&gt;12             &lt;p&gt;&lt;/p&gt;           &lt;/span&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr style="mso-yfti-irow: 1"&gt;       &lt;td style="border-bottom: medium none; border-left: medium none; padding-bottom: 0cm; padding-left: 2.85pt; width: 74.25pt; padding-right: 2.85pt; border-top: medium none; border-right: medium none; padding-top: 0cm" valign="top" width="99"&gt;         &lt;p style="line-height: normal; margin: 3pt 0cm; mso-yfti-cnfc: 128" class="MsoNormal"&gt;&lt;span style="font-family: &amp;quot;Segoe&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 10pt; mso-ansi-language: fr; mso-fareast-font-family: segoe; mso-bidi-font-family: segoe; mso-fareast-language: fr"&gt;Janvier 2008             &lt;p&gt;&lt;/p&gt;           &lt;/span&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td style="border-bottom: medium none; border-left: medium none; padding-bottom: 0cm; padding-left: 2.85pt; width: 74.75pt; padding-right: 2.85pt; border-top: medium none; border-right: medium none; padding-top: 0cm" valign="top" width="100"&gt;         &lt;p style="line-height: normal; margin: 3pt 0cm; mso-yfti-cnfc: 128" class="MsoNormal"&gt;&lt;span style="font-family: &amp;quot;Segoe&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 10pt; mso-ansi-language: fr; mso-fareast-font-family: segoe; mso-bidi-font-family: segoe; mso-fareast-language: fr"&gt;Produit B             &lt;p&gt;&lt;/p&gt;           &lt;/span&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td style="border-bottom: medium none; border-left: medium none; padding-bottom: 0cm; padding-left: 2.85pt; width: 74.8pt; padding-right: 2.85pt; border-top: medium none; border-right: medium none; padding-top: 0cm" valign="top" width="100"&gt;         &lt;p style="line-height: normal; margin: 3pt 0cm; mso-yfti-cnfc: 128" class="MsoNormal"&gt;&lt;span style="font-family: &amp;quot;Segoe&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 10pt; mso-ansi-language: fr; mso-fareast-font-family: segoe; mso-bidi-font-family: segoe; mso-fareast-language: fr"&gt;16             &lt;p&gt;&lt;/p&gt;           &lt;/span&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr style="mso-yfti-irow: 2"&gt;       &lt;td style="border-bottom: #999999 1pt solid; border-left: medium none; padding-bottom: 0cm; padding-left: 2.85pt; width: 74.25pt; padding-right: 2.85pt; border-top: #999999 1pt solid; border-right: medium none; padding-top: 0cm" valign="top" width="99"&gt;         &lt;p style="line-height: normal; margin: 3pt 0cm; mso-yfti-cnfc: 64" class="MsoNormal"&gt;&lt;span style="font-family: &amp;quot;Segoe&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 10pt; mso-ansi-language: fr; mso-fareast-font-family: &amp;#39;Arial Narrow&amp;#39;; mso-bidi-font-family: segoe; mso-fareast-language: fr"&gt;Janvier 2008             &lt;p&gt;&lt;/p&gt;           &lt;/span&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td style="border-bottom: #999999 1pt solid; border-left: medium none; padding-bottom: 0cm; padding-left: 2.85pt; width: 74.75pt; padding-right: 2.85pt; border-top: #999999 1pt solid; border-right: medium none; padding-top: 0cm" valign="top" width="100"&gt;         &lt;p style="line-height: normal; margin: 3pt 0cm; mso-yfti-cnfc: 64" class="MsoNormal"&gt;&lt;span style="font-family: &amp;quot;Segoe&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 10pt; mso-ansi-language: fr; mso-fareast-font-family: &amp;#39;Arial Narrow&amp;#39;; mso-bidi-font-family: segoe; mso-fareast-language: fr"&gt;Produit C             &lt;p&gt;&lt;/p&gt;           &lt;/span&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td style="border-bottom: #999999 1pt solid; border-left: medium none; padding-bottom: 0cm; padding-left: 2.85pt; width: 74.8pt; padding-right: 2.85pt; border-top: #999999 1pt solid; border-right: medium none; padding-top: 0cm" valign="top" width="100"&gt;         &lt;p style="line-height: normal; margin: 3pt 0cm; mso-yfti-cnfc: 64" class="MsoNormal"&gt;&lt;span style="font-family: &amp;quot;Segoe&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 10pt; mso-ansi-language: fr; mso-fareast-font-family: &amp;#39;Arial Narrow&amp;#39;; mso-bidi-font-family: segoe; mso-fareast-language: fr"&gt;12             &lt;p&gt;&lt;/p&gt;           &lt;/span&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr style="mso-yfti-irow: 3"&gt;       &lt;td style="border-bottom: medium none; border-left: medium none; padding-bottom: 0cm; padding-left: 2.85pt; width: 74.25pt; padding-right: 2.85pt; border-top: medium none; border-right: medium none; padding-top: 0cm" valign="top" width="99"&gt;         &lt;p style="line-height: normal; margin: 3pt 0cm; mso-yfti-cnfc: 128" class="MsoNormal"&gt;&lt;span style="font-family: &amp;quot;Segoe&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 10pt; mso-ansi-language: fr; mso-fareast-font-family: segoe; mso-bidi-font-family: segoe; mso-fareast-language: fr"&gt;Février 2008             &lt;p&gt;&lt;/p&gt;           &lt;/span&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td style="border-bottom: medium none; border-left: medium none; padding-bottom: 0cm; padding-left: 2.85pt; width: 74.75pt; padding-right: 2.85pt; border-top: medium none; border-right: medium none; padding-top: 0cm" valign="top" width="100"&gt;         &lt;p style="line-height: normal; margin: 3pt 0cm; mso-yfti-cnfc: 128" class="MsoNormal"&gt;&lt;span style="font-family: &amp;quot;Segoe&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 10pt; mso-ansi-language: fr; mso-fareast-font-family: segoe; mso-bidi-font-family: segoe; mso-fareast-language: fr"&gt;Produit A             &lt;p&gt;&lt;/p&gt;           &lt;/span&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td style="border-bottom: medium none; border-left: medium none; padding-bottom: 0cm; padding-left: 2.85pt; width: 74.8pt; padding-right: 2.85pt; border-top: medium none; border-right: medium none; padding-top: 0cm" valign="top" width="100"&gt;         &lt;p style="line-height: normal; margin: 3pt 0cm; mso-yfti-cnfc: 128" class="MsoNormal"&gt;&lt;span style="font-family: &amp;quot;Segoe&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 10pt; mso-ansi-language: fr; mso-fareast-font-family: segoe; mso-bidi-font-family: segoe; mso-fareast-language: fr"&gt;12             &lt;p&gt;&lt;/p&gt;           &lt;/span&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr style="mso-yfti-irow: 4"&gt;       &lt;td style="border-bottom: #999999 1pt solid; border-left: medium none; padding-bottom: 0cm; padding-left: 2.85pt; width: 74.25pt; padding-right: 2.85pt; border-top: #999999 1pt solid; border-right: medium none; padding-top: 0cm" valign="top" width="99"&gt;         &lt;p style="line-height: normal; margin: 3pt 0cm; mso-yfti-cnfc: 64" class="MsoNormal"&gt;&lt;span style="font-family: &amp;quot;Segoe&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 10pt; mso-ansi-language: fr; mso-fareast-font-family: &amp;#39;Arial Narrow&amp;#39;; mso-bidi-font-family: segoe; mso-fareast-language: fr"&gt;Février 2008             &lt;p&gt;&lt;/p&gt;           &lt;/span&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td style="border-bottom: #999999 1pt solid; border-left: medium none; padding-bottom: 0cm; padding-left: 2.85pt; width: 74.75pt; padding-right: 2.85pt; border-top: #999999 1pt solid; border-right: medium none; padding-top: 0cm" valign="top" width="100"&gt;         &lt;p style="line-height: normal; margin: 3pt 0cm; mso-yfti-cnfc: 64" class="MsoNormal"&gt;&lt;span style="font-family: &amp;quot;Segoe&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 10pt; mso-ansi-language: fr; mso-fareast-font-family: &amp;#39;Arial Narrow&amp;#39;; mso-bidi-font-family: segoe; mso-fareast-language: fr"&gt;Produit B             &lt;p&gt;&lt;/p&gt;           &lt;/span&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td style="border-bottom: #999999 1pt solid; border-left: medium none; padding-bottom: 0cm; padding-left: 2.85pt; width: 74.8pt; padding-right: 2.85pt; border-top: #999999 1pt solid; border-right: medium none; padding-top: 0cm" valign="top" width="100"&gt;         &lt;p style="line-height: normal; margin: 3pt 0cm; mso-yfti-cnfc: 64" class="MsoNormal"&gt;&lt;span style="font-family: &amp;quot;Segoe&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 10pt; mso-ansi-language: fr; mso-fareast-font-family: &amp;#39;Arial Narrow&amp;#39;; mso-bidi-font-family: segoe; mso-fareast-language: fr"&gt;16             &lt;p&gt;&lt;/p&gt;           &lt;/span&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr style="mso-yfti-irow: 5; mso-yfti-lastrow: yes"&gt;       &lt;td style="border-bottom: #999999 1pt solid; border-left: medium none; padding-bottom: 0cm; padding-left: 2.85pt; width: 74.25pt; padding-right: 2.85pt; border-top: medium none; border-right: medium none; padding-top: 0cm" valign="top" width="99"&gt;         &lt;p style="line-height: normal; margin: 3pt 0cm; mso-yfti-cnfc: 128" class="MsoNormal"&gt;&lt;span style="font-family: &amp;quot;Segoe&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 10pt; mso-ansi-language: fr; mso-fareast-font-family: segoe; mso-bidi-font-family: segoe; mso-fareast-language: fr"&gt;Février 2008             &lt;p&gt;&lt;/p&gt;           &lt;/span&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td style="border-bottom: #999999 1pt solid; border-left: medium none; padding-bottom: 0cm; padding-left: 2.85pt; width: 74.75pt; padding-right: 2.85pt; border-top: medium none; border-right: medium none; padding-top: 0cm" valign="top" width="100"&gt;         &lt;p style="line-height: normal; margin: 3pt 0cm; mso-yfti-cnfc: 128" class="MsoNormal"&gt;&lt;span style="font-family: &amp;quot;Segoe&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 10pt; mso-ansi-language: fr; mso-fareast-font-family: segoe; mso-bidi-font-family: segoe; mso-fareast-language: fr"&gt;Produit C             &lt;p&gt;&lt;/p&gt;           &lt;/span&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td style="border-bottom: #999999 1pt solid; border-left: medium none; padding-bottom: 0cm; padding-left: 2.85pt; width: 74.8pt; padding-right: 2.85pt; border-top: medium none; border-right: medium none; padding-top: 0cm" valign="top" width="100"&gt;         &lt;p style="line-height: normal; margin: 3pt 0cm; mso-yfti-cnfc: 128" class="MsoNormal"&gt;&lt;span style="font-family: &amp;quot;Segoe&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 10pt; mso-ansi-language: fr; mso-fareast-font-family: segoe; mso-bidi-font-family: segoe; mso-fareast-language: fr"&gt;12             &lt;p&gt;&lt;/p&gt;           &lt;/span&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="mso-ansi-language: fr"&gt;     &lt;p&gt;&amp;#160;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="mso-ansi-language: fr"&gt;     &lt;p&gt;&amp;#160;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="mso-ansi-language: fr"&gt;L’avantage de la représentation de type dénormalisé est la visualisation des données.     &lt;p&gt;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="mso-ansi-language: fr"&gt;Cependant si nous souhaitons ajouter un grand nombre de série, il faut ajouter de même les colonnes associées ce qui devient difficilement gérable.     &lt;p&gt;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="mso-ansi-language: fr"&gt;     &lt;p&gt;&amp;#160;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="mso-ansi-language: fr"&gt;Concernant le modèle normalisé, il est plus souple pour rajouter des séries mais nous ne pouvons pas configurer des paramètres spécifiques pour les valeurs « normalisé ».     &lt;p&gt;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="mso-ansi-language: fr"&gt;Le produit A aura le même paramètre que le produit B…     &lt;p&gt;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="mso-ansi-language: fr"&gt;De plus le DMX utilisait pour faire de la prédiction est plus simple dans le cas de données dénormalisées.     &lt;p&gt;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="mso-ansi-language: fr"&gt;     &lt;p&gt;&amp;#160;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p style="mso-list: l0 level2 lfo1" class="NumHeading2"&gt;&lt;a name="_Toc246568648"&gt;&lt;span style="mso-ansi-language: fr; mso-bidi-font-family: calibri; mso-bidi-theme-font: minor-latin"&gt;&lt;span style="mso-list: ignore"&gt;1.2&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="mso-ansi-language: fr"&gt;Règles d’application de la série temporel&lt;/span&gt;&lt;/a&gt;&lt;span style="mso-ansi-language: fr"&gt;     &lt;p&gt;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="mso-ansi-language: fr"&gt;Par défaut les données sont censé être complète ; c'est-à-dire que pour chaque série les données doivent être complète.     &lt;p&gt;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="mso-ansi-language: fr"&gt;Pour traiter ce genre de cas, il est nécessaire de définir une règle de substitution des valeurs nulles.     &lt;p&gt;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="mso-ansi-language: fr"&gt;Le paramètre MISSING_VALUE_SUBSTITUTION offre une option pour remplacer les valeurs nulles.     &lt;p&gt;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="mso-ansi-language: fr"&gt;     &lt;p&gt;&amp;#160;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="mso-ansi-language: fr"&gt;Une deuxième règle pour utiliser l’algorithme de série temporel est de trier les données.     &lt;p&gt;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="mso-ansi-language: fr"&gt;     &lt;p&gt;&amp;#160;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="mso-ansi-language: fr"&gt;De plus il est intéressant de spécifier des réglages à l’algorithme afin d’augmenter la pertinence des résultats comme de spécifier que le temps est divisé par trimestre,…,     &lt;p&gt;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="mso-ansi-language: fr"&gt;     &lt;p&gt;&amp;#160;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="mso-ansi-language: fr"&gt;Lorsque nous avons plusieurs séries, SSAS essaye de trouver une relation entre ces dernières.     &lt;p&gt;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="mso-ansi-language: fr"&gt;Nous pouvons contrôler ce comportement à l’aides des paramètres suivants :     &lt;p&gt;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p style="text-indent: -18pt; mso-list: l1 level1 lfo2" class="MsoListParagraph"&gt;&lt;span style="mso-ansi-language: fr; mso-fareast-font-family: calibri; mso-bidi-font-family: calibri"&gt;&lt;span style="mso-list: ignore"&gt;-&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="mso-ansi-language: fr"&gt;L’option PREDICT_ONLY indique que la donnée doit être prédite mais non corrélée avec les autres séries.     &lt;p&gt;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p style="text-indent: -18pt; mso-list: l1 level1 lfo2" class="MsoListParagraph"&gt;&lt;span style="mso-ansi-language: fr; mso-fareast-font-family: calibri; mso-bidi-font-family: calibri"&gt;&lt;span style="mso-list: ignore"&gt;-&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="mso-ansi-language: fr"&gt;L’option INPUT spécifie que les données servent en entrée mais ne doivent pas être prédite.     &lt;p&gt;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="mso-ansi-language: fr"&gt;     &lt;p&gt;&amp;#160;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="mso-ansi-language: fr"&gt;     &lt;p&gt;&amp;#160;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p style="mso-list: l0 level1 lfo1" class="NumHeading1"&gt;&lt;a name="_Toc246568649"&gt;&lt;strong&gt;&lt;font size="4"&gt;&lt;font color="#004080"&gt;&lt;span style="mso-ansi-language: fr"&gt;&lt;span style="mso-list: ignore"&gt;2&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="mso-ansi-language: fr"&gt;Création du modèle&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/strong&gt;&lt;/a&gt;&lt;span style="mso-ansi-language: fr"&gt;     &lt;p&gt;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p style="mso-list: l0 level2 lfo1" class="NumHeading2"&gt;&lt;a name="_Toc246568650"&gt;&lt;span style="mso-ansi-language: fr; mso-bidi-font-family: calibri; mso-bidi-theme-font: minor-latin"&gt;&lt;span style="mso-list: ignore"&gt;2.1&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="mso-ansi-language: fr"&gt;Présentation&lt;/span&gt;&lt;/a&gt;&lt;span style="mso-ansi-language: fr"&gt;     &lt;p&gt;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="mso-ansi-language: fr"&gt;D’une manière générale, les structure de mining crées pour les séries temporels ne sont pas compatibles avec les autre modèles de mining.     &lt;p&gt;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="mso-ansi-language: fr"&gt;L’une des différence de création d’une structure de mining à usage temporel est l’ajout d’un type KEY TIME comme le montre l’exemple ci-dessous.     &lt;p&gt;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; margin-bottom: 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; color: blue; font-size: 12pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-fareast-language: fr; mso-no-proof: yes" lang="EN-US"&gt;CREATE&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 12pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-fareast-language: fr; mso-no-proof: yes" lang="EN-US"&gt; &lt;span style="color: blue"&gt;MINING&lt;/span&gt; &lt;span style="color: blue"&gt;STRUCTURE&lt;/span&gt; [Wine Sales]      &lt;p&gt;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; margin-bottom: 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 12pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-fareast-language: fr; mso-no-proof: yes" lang="EN-US"&gt;(     &lt;p&gt;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; margin-bottom: 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 12pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-fareast-language: fr; mso-no-proof: yes" lang="EN-US"&gt;&lt;span style="mso-tab-count: 1"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;[Month]&lt;span style="mso-tab-count: 2"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color: blue"&gt;DATE&lt;/span&gt; &lt;span style="color: blue"&gt;KEY&lt;/span&gt; TIME,      &lt;p&gt;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; margin-bottom: 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 12pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-fareast-language: fr; mso-no-proof: yes" lang="EN-US"&gt;&lt;span style="mso-tab-count: 1"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;[Fortified]&lt;span style="mso-tab-count: 1"&gt;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color: blue"&gt;DOUBLE&lt;/span&gt; &lt;span style="color: blue"&gt;CONTINUOUS&lt;/span&gt;,      &lt;p&gt;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; margin-bottom: 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 12pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-fareast-language: fr; mso-no-proof: yes" lang="EN-US"&gt;&lt;span style="mso-tab-count: 1"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;[Dry White]&lt;span style="mso-tab-count: 1"&gt;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color: blue"&gt;DOUBLE&lt;/span&gt; &lt;span style="color: blue"&gt;CONTINUOUS&lt;/span&gt;,      &lt;p&gt;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; margin-bottom: 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 12pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-fareast-language: fr; mso-no-proof: yes" lang="EN-US"&gt;&lt;span style="mso-tab-count: 1"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;[Sweet White]&lt;span style="mso-spacerun: yes"&gt;&amp;#160; &lt;/span&gt;&lt;span style="color: blue"&gt;DOUBLE&lt;/span&gt; &lt;span style="color: blue"&gt;CONTINUOUS&lt;/span&gt;,      &lt;p&gt;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; margin-bottom: 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 12pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-fareast-language: fr; mso-no-proof: yes" lang="EN-US"&gt;&lt;span style="mso-tab-count: 1"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 12pt; mso-ansi-language: fr; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-fareast-language: fr; mso-no-proof: yes"&gt;[Red]&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color: blue"&gt;DOUBLE&lt;/span&gt; &lt;span style="color: blue"&gt;CONTINUOUS&lt;/span&gt;,      &lt;p&gt;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; margin-bottom: 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 12pt; mso-ansi-language: fr; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-fareast-language: fr; mso-no-proof: yes"&gt;&lt;span style="mso-tab-count: 1"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;[Rose]&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color: blue"&gt;DOUBLE&lt;/span&gt; &lt;span style="color: blue"&gt;CONTINUOUS&lt;/span&gt;,      &lt;p&gt;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; margin-bottom: 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 12pt; mso-ansi-language: fr; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-fareast-language: fr; mso-no-proof: yes"&gt;&lt;span style="mso-tab-count: 1"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;[Sparkling]&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color: blue"&gt;DOUBLE&lt;/span&gt; &lt;span style="color: blue"&gt;CONTINUOUS&lt;/span&gt;,      &lt;p&gt;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; margin-bottom: 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 12pt; mso-ansi-language: fr; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-fareast-language: fr; mso-no-proof: yes"&gt;&lt;span style="mso-tab-count: 1"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;[Average Red]&lt;span style="mso-spacerun: yes"&gt;&amp;#160; &lt;/span&gt;&lt;span style="color: blue"&gt;DOUBLE&lt;/span&gt; &lt;span style="color: blue"&gt;CONTINUOUS&lt;/span&gt;,      &lt;p&gt;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; margin-bottom: 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 12pt; mso-ansi-language: fr; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-fareast-language: fr; mso-no-proof: yes"&gt;&lt;span style="mso-tab-count: 1"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;[Average White] &lt;span style="color: blue"&gt;DOUBLE&lt;/span&gt; &lt;span style="color: blue"&gt;CONTINUOUS       &lt;p&gt;&lt;/p&gt;     &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; margin-bottom: 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 12pt; mso-ansi-language: fr; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-fareast-language: fr; mso-no-proof: yes"&gt;)     &lt;p&gt;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="mso-ansi-language: fr"&gt;     &lt;p&gt;&amp;#160;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p style="mso-list: l0 level2 lfo1" class="NumHeading2"&gt;&lt;a name="_Toc246568651"&gt;&lt;span style="mso-ansi-language: fr; mso-bidi-font-family: calibri; mso-bidi-theme-font: minor-latin"&gt;&lt;span style="mso-list: ignore"&gt;2.2&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="mso-ansi-language: fr"&gt;Modèle de type « normalisé »&lt;/span&gt;&lt;/a&gt;&lt;span style="mso-ansi-language: fr"&gt;     &lt;p&gt;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="mso-ansi-language: fr"&gt;Dans un modèle de type « normalisé », la colonne de type séries est ajouté comme clé comme le montre l’exemple ci-dessous :     &lt;p&gt;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; margin-bottom: 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; color: blue; font-size: 12pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-fareast-language: fr; mso-no-proof: yes" lang="EN-US"&gt;CREATE&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 12pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-fareast-language: fr; mso-no-proof: yes" lang="EN-US"&gt; &lt;span style="color: blue"&gt;MINING&lt;/span&gt; &lt;span style="color: blue"&gt;STRUCTURE&lt;/span&gt; [Wine Sales Interleaved]      &lt;p&gt;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; margin-bottom: 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 12pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-fareast-language: fr; mso-no-proof: yes" lang="EN-US"&gt;(     &lt;p&gt;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; margin-bottom: 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 12pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-fareast-language: fr; mso-no-proof: yes" lang="EN-US"&gt;&lt;span style="mso-tab-count: 1"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;[Month]&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color: blue"&gt;DATE&lt;/span&gt; &lt;span style="color: blue"&gt;KEY&lt;/span&gt; TIME,      &lt;p&gt;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; margin-bottom: 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 12pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-fareast-language: fr; mso-no-proof: yes" lang="EN-US"&gt;&lt;span style="mso-tab-count: 1"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;[Series]&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color: blue"&gt;TEXT&lt;/span&gt; &lt;span style="color: blue"&gt;KEY&lt;/span&gt;,      &lt;p&gt;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; margin-bottom: 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 12pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-fareast-language: fr; mso-no-proof: yes" lang="EN-US"&gt;&lt;span style="mso-tab-count: 1"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;[Category]&lt;span style="mso-tab-count: 1"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color: blue"&gt;TEXT&lt;/span&gt; &lt;span style="color: blue"&gt;DISCRETE&lt;/span&gt;,      &lt;p&gt;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; margin-bottom: 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 12pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-fareast-language: fr; mso-no-proof: yes" lang="EN-US"&gt;&lt;span style="mso-tab-count: 1"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;[Sales]&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color: blue"&gt;DOUBLE&lt;/span&gt; &lt;span style="color: blue"&gt;CONTINUOUS       &lt;p&gt;&lt;/p&gt;     &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; margin-bottom: 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 12pt; mso-ansi-language: fr; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-fareast-language: fr; mso-no-proof: yes"&gt;)     &lt;p&gt;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="mso-ansi-language: fr"&gt;     &lt;p&gt;&amp;#160;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="mso-ansi-language: fr"&gt;La création du modèle de mining dans ce type de modélisation, il faut ajouter un filtre sur les données de la structure pour préciser la série à analyser.     &lt;p&gt;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; margin-bottom: 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; color: blue; font-size: 12pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-fareast-language: fr; mso-no-proof: yes" lang="EN-US"&gt;ALTER&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 12pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-fareast-language: fr; mso-no-proof: yes" lang="EN-US"&gt; &lt;span style="color: blue"&gt;MINING&lt;/span&gt; &lt;span style="color: blue"&gt;STRUCTURE&lt;/span&gt; [Wine Sales Interleaved]      &lt;p&gt;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; margin-bottom: 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; color: blue; font-size: 12pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-fareast-language: fr; mso-no-proof: yes" lang="EN-US"&gt;ADD&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 12pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-fareast-language: fr; mso-no-proof: yes" lang="EN-US"&gt; &lt;span style="color: blue"&gt;MINING&lt;/span&gt; &lt;span style="color: blue"&gt;MODEL&lt;/span&gt; [Reds Interleaved]      &lt;p&gt;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; margin-bottom: 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 12pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-fareast-language: fr; mso-no-proof: yes" lang="EN-US"&gt;(     &lt;p&gt;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; margin-bottom: 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 12pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-fareast-language: fr; mso-no-proof: yes" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;[Month],      &lt;p&gt;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; margin-bottom: 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 12pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-fareast-language: fr; mso-no-proof: yes" lang="EN-US"&gt;&lt;span style="mso-tab-count: 1"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;[Series],      &lt;p&gt;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; margin-bottom: 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 12pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-fareast-language: fr; mso-no-proof: yes" lang="EN-US"&gt;&lt;span style="mso-tab-count: 1"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;[Sales]&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color: blue"&gt;PREDICT       &lt;p&gt;&lt;/p&gt;     &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; margin-bottom: 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 12pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-fareast-language: fr; mso-no-proof: yes" lang="EN-US"&gt;) &lt;span style="color: blue"&gt;USING&lt;/span&gt; &lt;span style="color: blue"&gt;Microsoft_Time_Series&lt;/span&gt;       &lt;p&gt;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; margin-bottom: 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; color: blue; font-size: 12pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-fareast-language: fr; mso-no-proof: yes" lang="EN-US"&gt;WITH&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 12pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-fareast-language: fr; mso-no-proof: yes" lang="EN-US"&gt; &lt;span style="color: blue"&gt;DRILLTHROUGH&lt;/span&gt;,       &lt;p&gt;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; margin-bottom: 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 12pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-fareast-language: fr; mso-no-proof: yes" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color: blue"&gt;FILTER&lt;/span&gt;([Category] = 'Red')      &lt;p&gt;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;     &lt;p&gt;&amp;#160;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p style="mso-list: l0 level2 lfo1" class="NumHeading2"&gt;&lt;a name="_Toc246568652"&gt;&lt;span style="mso-ansi-language: fr; mso-bidi-font-family: calibri; mso-bidi-theme-font: minor-latin"&gt;&lt;span style="mso-list: ignore"&gt;2.3&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="mso-ansi-language: fr"&gt;Modèle de type « dénormalisé »&lt;/span&gt;&lt;/a&gt;&lt;span style="mso-ansi-language: fr"&gt;     &lt;p&gt;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="mso-ansi-language: fr"&gt;     &lt;p&gt;&amp;#160;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="mso-ansi-language: fr"&gt;Dans le cas de modèle dénormalisé, la construction du modèle de mining est relativement simple puisque cela consiste à appliquer l’attribut PREDICT.     &lt;p&gt;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; margin-bottom: 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; color: blue; font-size: 12pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-fareast-language: fr; mso-no-proof: yes" lang="EN-US"&gt;ALTER&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 12pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-fareast-language: fr; mso-no-proof: yes" lang="EN-US"&gt; &lt;span style="color: blue"&gt;MINING&lt;/span&gt; &lt;span style="color: blue"&gt;STRUCTURE&lt;/span&gt; [Wine Sales]      &lt;p&gt;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; margin-bottom: 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; color: blue; font-size: 12pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-fareast-language: fr; mso-no-proof: yes" lang="EN-US"&gt;ADD&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 12pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-fareast-language: fr; mso-no-proof: yes" lang="EN-US"&gt; &lt;span style="color: blue"&gt;MINING&lt;/span&gt; &lt;span style="color: blue"&gt;MODEL&lt;/span&gt; [Reds]      &lt;p&gt;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; margin-bottom: 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 12pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-fareast-language: fr; mso-no-proof: yes" lang="EN-US"&gt;(     &lt;p&gt;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; margin-bottom: 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 12pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-fareast-language: fr; mso-no-proof: yes" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;[Month],      &lt;p&gt;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; margin-bottom: 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 12pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-fareast-language: fr; mso-no-proof: yes" lang="EN-US"&gt;&lt;span style="mso-tab-count: 1"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;[Fortified]&lt;span style="mso-tab-count: 1"&gt;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color: blue"&gt;PREDICT&lt;/span&gt;,      &lt;p&gt;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; margin-bottom: 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 12pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-fareast-language: fr; mso-no-proof: yes" lang="EN-US"&gt;&lt;span style="mso-tab-count: 1"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;[Red]&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color: blue"&gt;PREDICT&lt;/span&gt;,      &lt;p&gt;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; margin-bottom: 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 12pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-fareast-language: fr; mso-no-proof: yes" lang="EN-US"&gt;&lt;span style="mso-tab-count: 1"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;[Rose]&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color: blue"&gt;PREDICT       &lt;p&gt;&lt;/p&gt;     &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; margin-bottom: 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 12pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-fareast-language: fr; mso-no-proof: yes" lang="EN-US"&gt;) &lt;span style="color: blue"&gt;USING&lt;/span&gt; &lt;span style="color: blue"&gt;Microsoft_Time_Series&lt;/span&gt;       &lt;p&gt;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; margin-bottom: 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; color: blue; font-size: 12pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-fareast-language: fr; mso-no-proof: yes" lang="EN-US"&gt;WITH&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 12pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-fareast-language: fr; mso-no-proof: yes" lang="EN-US"&gt; &lt;span style="color: blue"&gt;DRILLTHROUGH       &lt;p&gt;&lt;/p&gt;     &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;     &lt;p&gt;&amp;#160;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;     &lt;p&gt;&amp;#160;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p style="mso-list: l0 level1 lfo1" class="NumHeading1"&gt;&lt;a name="_Toc246568653"&gt;&lt;strong&gt;&lt;font size="4"&gt;&lt;font color="#004080"&gt;&lt;span lang="EN-US"&gt;&lt;span style="mso-list: ignore"&gt;3&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-US"&gt;Traitement des modèles&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/strong&gt;&lt;/a&gt;&lt;span lang="EN-US"&gt;     &lt;p&gt;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p style="mso-list: l0 level2 lfo1" class="NumHeading2"&gt;&lt;a name="_Toc246568654"&gt;&lt;span style="mso-ansi-language: fr; mso-bidi-font-family: calibri; mso-bidi-theme-font: minor-latin"&gt;&lt;span style="mso-list: ignore"&gt;3.1&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-US"&gt;Présentation&lt;/span&gt;&lt;/a&gt;&lt;span lang="EN-US"&gt;     &lt;p&gt;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="mso-ansi-language: fr"&gt;Le moyen le plus direct pour alimenter une structure est d’utiliser les instructions de type « INSERT INTO ».     &lt;p&gt;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="mso-ansi-language: fr"&gt;Les données des séries ne doivent pas contenir des valeurs nulles.     &lt;p&gt;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="mso-ansi-language: fr"&gt;Pour traiter ce cas, il faut utiliser le paramètre MISSING_DATA_SUBSTITUTION     &lt;p&gt;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p style="mso-list: l0 level2 lfo1" class="NumHeading2"&gt;&lt;a name="_Toc246568655"&gt;&lt;span style="mso-ansi-language: fr; mso-bidi-font-family: calibri; mso-bidi-theme-font: minor-latin"&gt;&lt;span style="mso-list: ignore"&gt;3.2&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="mso-ansi-language: fr"&gt;Traitement d’un modèle dénormalisé&lt;/span&gt;&lt;/a&gt;&lt;span style="mso-ansi-language: fr"&gt;     &lt;p&gt;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="mso-ansi-language: fr"&gt;     &lt;p&gt;&amp;#160;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="mso-ansi-language: fr"&gt;Ce cas est le plus simple car il correspond à un mapping 1 :1 entre une source tabulaire et la structure de data mining.     &lt;p&gt;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; margin-bottom: 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; color: blue; font-size: 12pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-fareast-language: fr; mso-no-proof: yes" lang="EN-US"&gt;INSERT&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 12pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-fareast-language: fr; mso-no-proof: yes" lang="EN-US"&gt; &lt;span style="color: blue"&gt;INTO&lt;/span&gt; &lt;span style="color: blue"&gt;MINING&lt;/span&gt; &lt;span style="color: blue"&gt;STRUCTURE&lt;/span&gt; [Wine Sales]      &lt;p&gt;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; margin-bottom: 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 12pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-fareast-language: fr; mso-no-proof: yes" lang="EN-US"&gt;( [Month],      &lt;p&gt;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; margin-bottom: 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 12pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-fareast-language: fr; mso-no-proof: yes" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&lt;/span&gt;[Fortified], [Red], [Rose], [Average Red],      &lt;p&gt;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; margin-bottom: 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 12pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-fareast-language: fr; mso-no-proof: yes" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&lt;/span&gt;[Dry White], [Sweet White], [Sparkling], [Average White])      &lt;p&gt;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; margin-bottom: 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; color: blue; font-size: 12pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-fareast-language: fr; mso-no-proof: yes" lang="EN-US"&gt;OPENQUERY&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 12pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-fareast-language: fr; mso-no-proof: yes" lang="EN-US"&gt; ([MaDataSource],     &lt;p&gt;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; margin-bottom: 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 12pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-fareast-language: fr; mso-no-proof: yes" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160; &lt;/span&gt;'SELECT      &lt;p&gt;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; margin-bottom: 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 12pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-fareast-language: fr; mso-no-proof: yes" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160; &lt;/span&gt;Month,       &lt;p&gt;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; margin-bottom: 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 12pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-fareast-language: fr; mso-no-proof: yes" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160; &lt;/span&gt;[Fortified], [Red], [Rose],       &lt;p&gt;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; margin-bottom: 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 12pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-fareast-language: fr; mso-no-proof: yes" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;([Fortified] + [Red] + [Rose]) / 3,      &lt;p&gt;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; margin-bottom: 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 12pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-fareast-language: fr; mso-no-proof: yes" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160; &lt;/span&gt;[Dry White], [Sweet White], [Sparkling],      &lt;p&gt;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; margin-bottom: 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 12pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-fareast-language: fr; mso-no-proof: yes" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;([Dry White] + [Sweet White] + [Sparkling]) / 3      &lt;p&gt;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; margin-bottom: 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 12pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-fareast-language: fr; mso-no-proof: yes" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160; &lt;/span&gt;FROM [Wine Sales]      &lt;p&gt;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; margin-bottom: 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 12pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-fareast-language: fr; mso-no-proof: yes" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160; &lt;/span&gt;ORDER BY [Month]')      &lt;p&gt;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; margin-bottom: 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 12pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-fareast-language: fr; mso-no-proof: yes" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&lt;/span&gt;      &lt;p&gt;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="mso-ansi-language: fr; mso-fareast-language: fr; mso-no-proof: yes"&gt;Nous utilisons la fonction OPENQUERY pour se connecter à la source relationnelle.     &lt;p&gt;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="mso-ansi-language: fr"&gt;     &lt;p&gt;&amp;#160;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p style="mso-list: l0 level2 lfo1" class="NumHeading2"&gt;&lt;a name="_Toc246568656"&gt;&lt;span style="mso-ansi-language: fr; mso-bidi-font-family: calibri; mso-bidi-theme-font: minor-latin"&gt;&lt;span style="mso-list: ignore"&gt;3.3&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="mso-ansi-language: fr"&gt;Traitement d’un modèle normalisé&lt;/span&gt;&lt;/a&gt;&lt;span style="mso-ansi-language: fr"&gt;     &lt;p&gt;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="mso-ansi-language: fr"&gt;Dans ce cas, il est nécessaire d’effectuer une transformation des données pour alimenter la structure de data mining.     &lt;p&gt;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; margin-bottom: 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; color: blue; font-size: 12pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-fareast-language: fr; mso-no-proof: yes" lang="EN-US"&gt;INSERT&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 12pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-fareast-language: fr; mso-no-proof: yes" lang="EN-US"&gt; &lt;span style="color: blue"&gt;INTO&lt;/span&gt; &lt;span style="color: blue"&gt;MINING&lt;/span&gt; &lt;span style="color: blue"&gt;STRUCTURE&lt;/span&gt; [Wine Sales Interleaved]      &lt;p&gt;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; margin-bottom: 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 12pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-fareast-language: fr; mso-no-proof: yes" lang="EN-US"&gt;( [Month], [Series], [Category], [Sales] )     &lt;p&gt;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; margin-bottom: 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; color: blue; font-size: 12pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-fareast-language: fr; mso-no-proof: yes" lang="EN-US"&gt;OPENQUERY&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 12pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-fareast-language: fr; mso-no-proof: yes" lang="EN-US"&gt; ([MaDataSource],     &lt;p&gt;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; margin-bottom: 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 12pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-fareast-language: fr; mso-no-proof: yes" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160; &lt;/span&gt;'SELECT * FROM       &lt;p&gt;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; margin-bottom: 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 12pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-fareast-language: fr; mso-no-proof: yes" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160; &lt;/span&gt;(SELECT [Month],       &lt;p&gt;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; margin-bottom: 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 12pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-fareast-language: fr; mso-no-proof: yes" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;[Type],       &lt;p&gt;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; margin-bottom: 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 12pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-fareast-language: fr; mso-no-proof: yes" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;CASE [Type] WHEN ''Red'' THEN ''Red''      &lt;p&gt;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; margin-bottom: 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 12pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-fareast-language: fr; mso-no-proof: yes" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;WHEN ''Rose'' THEN ''Red''      &lt;p&gt;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; margin-bottom: 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 12pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-fareast-language: fr; mso-no-proof: yes" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;WHEN ''Fortified'' THEN ''Red''      &lt;p&gt;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; margin-bottom: 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 12pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-fareast-language: fr; mso-no-proof: yes" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;ELSE ''White''      &lt;p&gt;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; margin-bottom: 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 12pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-fareast-language: fr; mso-no-proof: yes" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;END AS [Category],      &lt;p&gt;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; margin-bottom: 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 12pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-fareast-language: fr; mso-no-proof: yes" lang="EN-US"&gt;&lt;span style="mso-tab-count: 2"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160; &lt;/span&gt;[Sales]&lt;span style="mso-spacerun: yes"&gt;&amp;#160; &lt;/span&gt;      &lt;p&gt;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; margin-bottom: 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 12pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-fareast-language: fr; mso-no-proof: yes" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160; &lt;/span&gt;FROM [Wine Sales2]      &lt;p&gt;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; margin-bottom: 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 12pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-fareast-language: fr; mso-no-proof: yes" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160; &lt;/span&gt;UNION ALL      &lt;p&gt;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; margin-bottom: 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 12pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-fareast-language: fr; mso-no-proof: yes" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160; &lt;/span&gt;SELECT [Month], ''Red Average'' AS [Type], ''Red'' AS [Category], SUM(Sales)/3 AS [Sales]      &lt;p&gt;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; margin-bottom: 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 12pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-fareast-language: fr; mso-no-proof: yes" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160; &lt;/span&gt;FROM [Wine Sales2] t      &lt;p&gt;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; margin-bottom: 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 12pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-fareast-language: fr; mso-no-proof: yes" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160; &lt;/span&gt;WHERE t.[Type] IN (''Red'', ''Fortified'', ''Rose'')      &lt;p&gt;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; margin-bottom: 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 12pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-fareast-language: fr; mso-no-proof: yes" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160; &lt;/span&gt;GROUP BY [Month]      &lt;p&gt;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; margin-bottom: 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 12pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-fareast-language: fr; mso-no-proof: yes" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160; &lt;/span&gt;UNION ALL      &lt;p&gt;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; margin-bottom: 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 12pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-fareast-language: fr; mso-no-proof: yes" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160; &lt;/span&gt;SELECT [Month], ''White Average'' AS [Type], ''White'' AS [Category], SUM(Sales)/3 AS [Sales]      &lt;p&gt;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; margin-bottom: 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 12pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-fareast-language: fr; mso-no-proof: yes" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160; &lt;/span&gt;FROM [Wine Sales2] t      &lt;p&gt;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; margin-bottom: 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 12pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-fareast-language: fr; mso-no-proof: yes" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160; &lt;/span&gt;WHERE t.[Type] IN (''Dry White'', ''Sweet White'', ''Sparkling'')      &lt;p&gt;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; margin-bottom: 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 12pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-fareast-language: fr; mso-no-proof: yes" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160; &lt;/span&gt;GROUP BY [Month]) t      &lt;p&gt;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; margin-bottom: 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 12pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-fareast-language: fr; mso-no-proof: yes" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160; &lt;/span&gt;ORDER BY [Month], [Type] ')&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160; &lt;/span&gt;      &lt;p&gt;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;     &lt;p&gt;&amp;#160;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p style="mso-list: l0 level1 lfo1" class="NumHeading1"&gt;&lt;a name="_Toc246568657"&gt;&lt;span style="mso-ansi-language: fr"&gt;&lt;span style="mso-list: ignore"&gt;4&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="mso-ansi-language: fr"&gt;Etablir une projection de données&lt;/span&gt;&lt;/a&gt;&lt;span style="mso-ansi-language: fr"&gt;     &lt;p&gt;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p style="mso-list: l0 level2 lfo1" class="NumHeading2"&gt;&lt;a name="_Toc246568658"&gt;&lt;span style="mso-ansi-language: fr; mso-bidi-font-family: calibri; mso-bidi-theme-font: minor-latin"&gt;&lt;span style="mso-list: ignore"&gt;4.1&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="mso-ansi-language: fr"&gt;Cas général&lt;/span&gt;&lt;/a&gt;&lt;span style="mso-ansi-language: fr"&gt;     &lt;p&gt;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="mso-ansi-language: fr"&gt;La projection de données s’effectue à l’aide de la fonction &lt;/span&gt;&lt;span style="line-height: 115%; font-family: &amp;quot;Courier New&amp;quot;; color: maroon; font-size: 12pt; mso-ansi-language: fr; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-fareast-language: fr; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&lt;/span&gt;PredictTimeSeries.      &lt;p&gt;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="mso-ansi-language: fr; mso-fareast-language: fr; mso-no-proof: yes"&gt;&lt;a href="http://blogs.msdn.com/blogfiles/lbanon/WindowsLiveWriter/Zoomsurlalgorithmesrietemporelle_C6CC/clip_image002_2.jpg"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="clip_image002" border="0" alt="clip_image002" src="http://blogs.msdn.com/blogfiles/lbanon/WindowsLiveWriter/Zoomsurlalgorithmesrietemporelle_C6CC/clip_image002_thumb.jpg" width="244" height="149" v:shapes="_x0000_i1028" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;span style="mso-ansi-language: fr"&gt;     &lt;p&gt;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="mso-ansi-language: fr"&gt;Le résultat de notre fonction nous donne deux colonnes qui sont TIME et [NomModel]     &lt;p&gt;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p style="mso-list: l0 level2 lfo1" class="NumHeading2"&gt;&lt;a name="_Toc246568659"&gt;&lt;strong&gt;&lt;font size="4"&gt;&lt;font color="#004080"&gt;&lt;span style="mso-ansi-language: fr; mso-bidi-font-family: calibri; mso-bidi-theme-font: minor-latin"&gt;&lt;span style="mso-list: ignore"&gt;4.2&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="mso-ansi-language: fr"&gt;Scénarios de simulation&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/strong&gt;&lt;/a&gt;&lt;span style="mso-ansi-language: fr"&gt;     &lt;p&gt;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p style="mso-list: l0 level3 lfo1" class="NumHeading3"&gt;&lt;a name="_Toc246568660"&gt;&lt;span style="mso-ansi-language: fr; mso-bidi-font-family: calibri; mso-bidi-theme-font: minor-latin"&gt;&lt;span style="mso-list: ignore"&gt;4.2.1&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="mso-ansi-language: fr"&gt;What-if ?&lt;/span&gt;&lt;/a&gt;&lt;span style="mso-ansi-language: fr"&gt;     &lt;p&gt;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="mso-ansi-language: fr"&gt;Que se passerait-il si le mois prochain vis-à-vis de mes ventes globales si j’augmente de 10% le produit A ?      &lt;p&gt;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="mso-ansi-language: fr"&gt;Ce type de cas est géré par la fonction « PREDICTION JOIN ».     &lt;p&gt;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; margin-bottom: 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; color: blue; font-size: 12pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-fareast-language: fr; mso-no-proof: yes" lang="EN-US"&gt;SELECT&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 12pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-fareast-language: fr; mso-no-proof: yes" lang="EN-US"&gt; &lt;span style="color: blue"&gt;FLATTENED&lt;/span&gt;       &lt;p&gt;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; margin-bottom: 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 12pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-fareast-language: fr; mso-no-proof: yes" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color: maroon"&gt;PredictTimeSeries&lt;/span&gt;([Red], 3, 12, &lt;span style="color: blue"&gt;EXTEND_MODEL_CASES&lt;/span&gt;)      &lt;p&gt;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; margin-bottom: 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; color: blue; font-size: 12pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-fareast-language: fr; mso-no-proof: yes" lang="EN-US"&gt;FROM&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 12pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-fareast-language: fr; mso-no-proof: yes" lang="EN-US"&gt; [Reds]     &lt;p&gt;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; margin-bottom: 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; color: blue; font-size: 12pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-fareast-language: fr; mso-no-proof: yes" lang="EN-US"&gt;NATURAL&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 12pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-fareast-language: fr; mso-no-proof: yes" lang="EN-US"&gt; &lt;span style="color: blue"&gt;PREDICTION&lt;/span&gt; &lt;span style="color: blue"&gt;JOIN       &lt;p&gt;&lt;/p&gt;     &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; margin-bottom: 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 12pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-fareast-language: fr; mso-no-proof: yes" lang="EN-US"&gt;(&lt;span style="color: blue"&gt;SELECT&lt;/span&gt; 1 &lt;span style="color: blue"&gt;AS&lt;/span&gt; [Month], 4520 &lt;span style="color: blue"&gt;AS&lt;/span&gt; [Red]      &lt;p&gt;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; margin-bottom: 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 12pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-fareast-language: fr; mso-no-proof: yes" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&lt;/span&gt;&lt;span style="color: blue"&gt;UNION&lt;/span&gt; &lt;span style="color: blue"&gt;SELECT&lt;/span&gt; 2 &lt;span style="color: blue"&gt;AS&lt;/span&gt; [Month], 4000 &lt;span style="color: blue"&gt;AS&lt;/span&gt; [Red]) &lt;span style="color: blue"&gt;as&lt;/span&gt; t      &lt;p&gt;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="mso-ansi-language: fr"&gt;Dans l’exemple ci-dessus, nous souhaitons faire une projection sur l’année à venir en précisant les ventes pour les deux prochains mois.     &lt;p&gt;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="mso-ansi-language: fr"&gt;     &lt;p&gt;&amp;#160;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="mso-ansi-language: fr"&gt;Si nous souhaitons fournir les vente pour le premier et le troisième mois, il faut fournir la valeur « null » pour le second mois. (&lt;/span&gt;&lt;span style="line-height: 115%; font-family: &amp;quot;Courier New&amp;quot;; color: blue; font-size: 12pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-fareast-language: fr; mso-no-proof: yes" lang="EN-US"&gt;SELECT&lt;/span&gt;&lt;span style="line-height: 115%; font-family: &amp;quot;Courier New&amp;quot;; font-size: 12pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-fareast-language: fr; mso-no-proof: yes" lang="EN-US"&gt; 2 &lt;span style="color: blue"&gt;AS&lt;/span&gt; [Month], NULL &lt;span style="color: blue"&gt;AS&lt;/span&gt; [Red])      &lt;p&gt;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p style="mso-list: l0 level3 lfo1" class="NumHeading3"&gt;&lt;a name="_Toc246568661"&gt;&lt;span style="mso-ansi-language: fr; mso-bidi-font-family: calibri; mso-bidi-theme-font: minor-latin; mso-fareast-language: fr; mso-no-proof: yes"&gt;&lt;span style="mso-list: ignore"&gt;4.2.2&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="mso-ansi-language: fr; mso-fareast-language: fr; mso-no-proof: yes"&gt;Nombre de données en entreé faible&lt;/span&gt;&lt;/a&gt;&lt;span style="mso-ansi-language: fr; mso-fareast-language: fr; mso-no-proof: yes"&gt;     &lt;p&gt;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="mso-ansi-language: fr; mso-fareast-language: fr"&gt;Si le nombre de données en entrée est faible pour évaluer une projection, il est possible d’utiliser la fonction REPLACE_MODEL_CASES pour se baser sur l’historique d’un autre produit.     &lt;p&gt;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="mso-ansi-language: fr; mso-fareast-language: fr"&gt;Dans l’exemple ci-dessous nous utilisons un historique d’un autre produit pour faire une projection de deux ans sachant que nous avons uniquement 6 mois d’historique pour notre nouveau produit.     &lt;p&gt;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; margin-bottom: 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 12pt; mso-ansi-language: fr; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-fareast-language: fr; mso-no-proof: yes"&gt;     &lt;p&gt;&amp;#160;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; margin-bottom: 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; color: blue; font-size: 12pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-fareast-language: fr; mso-no-proof: yes" lang="EN-US"&gt;SELECT&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 12pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-fareast-language: fr; mso-no-proof: yes" lang="EN-US"&gt; &lt;span style="color: blue"&gt;FLATTENED       &lt;p&gt;&lt;/p&gt;     &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; margin-bottom: 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 12pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-fareast-language: fr; mso-no-proof: yes" lang="EN-US"&gt;&lt;span style="mso-tab-count: 1"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color: maroon"&gt;PredictTimeSeries&lt;/span&gt;([Average Red], 24, &lt;span style="color: blue"&gt;REPLACE_MODEL_CASES&lt;/span&gt;)      &lt;p&gt;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; margin-bottom: 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; color: blue; font-size: 12pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-fareast-language: fr; mso-no-proof: yes" lang="EN-US"&gt;FROM&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 12pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-fareast-language: fr; mso-no-proof: yes" lang="EN-US"&gt; [Average Sales]     &lt;p&gt;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; margin-bottom: 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; color: blue; font-size: 12pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-fareast-language: fr; mso-no-proof: yes" lang="EN-US"&gt;PREDICTION&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 12pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-fareast-language: fr; mso-no-proof: yes" lang="EN-US"&gt; &lt;span style="color: blue"&gt;JOIN       &lt;p&gt;&lt;/p&gt;     &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; margin-bottom: 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 12pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-fareast-language: fr; mso-no-proof: yes" lang="EN-US"&gt;(&lt;span style="color: blue"&gt;SELECT&lt;/span&gt; 1 &lt;span style="color: blue"&gt;AS&lt;/span&gt; [ Month], 109 &lt;span style="color: blue"&gt;AS&lt;/span&gt; [New Varietal]       &lt;p&gt;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; margin-bottom: 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 12pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-fareast-language: fr; mso-no-proof: yes" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160; &lt;/span&gt;&lt;span style="color: blue"&gt;UNION&lt;/span&gt; &lt;span style="color: blue"&gt;SELECT&lt;/span&gt; 2 &lt;span style="color: blue"&gt;AS&lt;/span&gt; [Month], 123 &lt;span style="color: blue"&gt;AS&lt;/span&gt; [New Varietal]       &lt;p&gt;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; margin-bottom: 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 12pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-fareast-language: fr; mso-no-proof: yes" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160; &lt;/span&gt;&lt;span style="color: blue"&gt;UNION&lt;/span&gt; &lt;span style="color: blue"&gt;SELECT&lt;/span&gt; 3 &lt;span style="color: blue"&gt;AS&lt;/span&gt; [Month], 154 &lt;span style="color: blue"&gt;AS&lt;/span&gt; [New Varietal]       &lt;p&gt;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; margin-bottom: 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 12pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-fareast-language: fr; mso-no-proof: yes" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160; &lt;/span&gt;&lt;span style="color: blue"&gt;UNION&lt;/span&gt; &lt;span style="color: blue"&gt;SELECT&lt;/span&gt; 4 &lt;span style="color: blue"&gt;AS&lt;/span&gt; [Month], 165 &lt;span style="color: blue"&gt;AS&lt;/span&gt; [New Varietal]       &lt;p&gt;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; margin-bottom: 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 12pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-fareast-language: fr; mso-no-proof: yes" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160; &lt;/span&gt;&lt;span style="color: blue"&gt;UNION&lt;/span&gt; &lt;span style="color: blue"&gt;SELECT&lt;/span&gt; 5 &lt;span style="color: blue"&gt;AS&lt;/span&gt; [Month], 225 &lt;span style="color: blue"&gt;AS&lt;/span&gt; [New Varietal]       &lt;p&gt;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; margin-bottom: 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 12pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-fareast-language: fr; mso-no-proof: yes" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160; &lt;/span&gt;&lt;span style="color: blue"&gt;UNION&lt;/span&gt; &lt;span style="color: blue"&gt;SELECT&lt;/span&gt; 6 &lt;span style="color: blue"&gt;AS&lt;/span&gt; [Month], 230 &lt;span style="color: blue"&gt;AS&lt;/span&gt; [New Varietal]       &lt;p&gt;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; margin-bottom: 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 12pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-fareast-language: fr; mso-no-proof: yes" lang="EN-US"&gt;) &lt;span style="color: blue"&gt;AS&lt;/span&gt; t      &lt;p&gt;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; margin-bottom: 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; color: blue; font-size: 12pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-fareast-language: fr; mso-no-proof: yes" lang="EN-US"&gt;ON&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 12pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-fareast-language: fr; mso-no-proof: yes" lang="EN-US"&gt; [Average Sales].Month = t.Month &lt;span style="color: blue"&gt;AND       &lt;p&gt;&lt;/p&gt;     &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; margin-bottom: 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 12pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-fareast-language: fr; mso-no-proof: yes" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160; &lt;/span&gt;[Average Sales].[Average Red] = t.[New Varietal]      &lt;p&gt;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="line-height: 115%; font-family: &amp;quot;Courier New&amp;quot;; font-size: 12pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-fareast-language: fr; mso-no-proof: yes" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160; &lt;/span&gt;      &lt;p&gt;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="mso-ansi-language: fr"&gt;     &lt;p&gt;&amp;#160;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p style="mso-list: l0 level1 lfo1" class="NumHeading1"&gt;&lt;strong&gt;&lt;font size="4"&gt;&lt;font color="#004080"&gt;&lt;span lang="EN-US"&gt;&lt;span style="mso-list: ignore"&gt;5&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-US"&gt;Paramètres           &lt;p&gt;&lt;/p&gt;         &lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p style="mso-list: l0 level2 lfo1" class="NumHeading2"&gt;&lt;a name="_Toc246568670"&gt;&lt;span style="mso-ansi-language: fr; mso-bidi-font-family: calibri; mso-bidi-theme-font: minor-latin; mso-fareast-language: fr"&gt;&lt;span style="mso-list: ignore"&gt;5.1&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="mso-fareast-language: fr" lang="EN-US"&gt;Drill-Throught&lt;/span&gt;&lt;/a&gt;&lt;span style="mso-fareast-language: fr" lang="EN-US"&gt;     &lt;p&gt;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="mso-ansi-language: fr; mso-fareast-language: fr"&gt;La fonctionnalité de Drill-Throught permet de fournir les données qui ont permis d’établir la projection.     &lt;p&gt;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p style="mso-list: l0 level2 lfo1" class="NumHeading2"&gt;&lt;a name="_Toc246568671"&gt;&lt;span style="mso-ansi-language: fr; mso-bidi-font-family: calibri; mso-bidi-theme-font: minor-latin; mso-fareast-language: fr"&gt;&lt;span style="mso-list: ignore"&gt;5.2&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="mso-ansi-language: fr; mso-fareast-language: fr"&gt;Paramètres clés&lt;/span&gt;&lt;/a&gt;&lt;span style="mso-ansi-language: fr; mso-fareast-language: fr"&gt;     &lt;p&gt;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p style="mso-list: l0 level3 lfo1" class="NumHeading3"&gt;&lt;a name="_Toc246568672"&gt;&lt;span style="mso-ansi-language: fr; mso-bidi-font-family: calibri; mso-bidi-theme-font: minor-latin; mso-fareast-language: fr"&gt;&lt;span style="mso-list: ignore"&gt;5.2.1&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="mso-ansi-language: fr; mso-fareast-language: fr"&gt;MISSING_VALUE_SUBSTITUTION&lt;/span&gt;&lt;/a&gt;&lt;span style="mso-ansi-language: fr; mso-fareast-language: fr"&gt;     &lt;p&gt;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="mso-ansi-language: fr; mso-fareast-language: fr"&gt;Il est obligatoire que les séries de données possèdent toute une valeur. Pourquoi ne pas positionner une valeur pour ce paramètre ?     &lt;p&gt;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="mso-ansi-language: fr; mso-fareast-language: fr"&gt;En fait, la valeur fournie a un impact important sur la prédiction des données.     &lt;p&gt;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="mso-ansi-language: fr; mso-fareast-language: fr"&gt;Nous pouvons spécifier au moteur SSAS quelle valeur prendre si une valeur nulle est rencontrée.     &lt;p&gt;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="mso-ansi-language: fr; mso-fareast-language: fr"&gt;Nous avons le choix parmi ces valeurs :     &lt;p&gt;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p style="text-indent: -18pt; mso-list: l1 level1 lfo2" class="MsoListParagraph"&gt;&lt;span style="mso-ansi-language: fr; mso-fareast-font-family: calibri; mso-bidi-font-family: calibri"&gt;&lt;span style="mso-list: ignore"&gt;-&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="mso-ansi-language: fr"&gt;Previous,     &lt;p&gt;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p style="text-indent: -18pt; mso-list: l1 level1 lfo2" class="MsoListParagraph"&gt;&lt;span style="mso-ansi-language: fr; mso-fareast-font-family: calibri; mso-bidi-font-family: calibri"&gt;&lt;span style="mso-list: ignore"&gt;-&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="mso-ansi-language: fr"&gt;Mean,     &lt;p&gt;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p style="text-indent: -18pt; mso-list: l1 level1 lfo2" class="MsoListParagraph"&gt;&lt;span style="mso-ansi-language: fr; mso-fareast-font-family: calibri; mso-bidi-font-family: calibri"&gt;&lt;span style="mso-list: ignore"&gt;-&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="mso-ansi-language: fr"&gt;Number     &lt;p&gt;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="mso-ansi-language: fr; mso-fareast-language: fr"&gt;Ci-dessous un exemple de paramètre sur un modèle de données     &lt;p&gt;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; margin-bottom: 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; color: blue; font-size: 12pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-fareast-language: fr; mso-no-proof: yes" lang="EN-US"&gt;ALTER&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 12pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-fareast-language: fr; mso-no-proof: yes" lang="EN-US"&gt; &lt;span style="color: blue"&gt;MINING&lt;/span&gt; &lt;span style="color: blue"&gt;STRUCTURE&lt;/span&gt; [Red With Filter]      &lt;p&gt;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; margin-bottom: 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; color: blue; font-size: 12pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-fareast-language: fr; mso-no-proof: yes" lang="EN-US"&gt;ADD&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 12pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-fareast-language: fr; mso-no-proof: yes" lang="EN-US"&gt; &lt;span style="color: blue"&gt;MINING&lt;/span&gt; &lt;span style="color: blue"&gt;MODEL&lt;/span&gt; [Reds Before 1990]      &lt;p&gt;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; margin-bottom: 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 12pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-fareast-language: fr; mso-no-proof: yes" lang="EN-US"&gt;(     &lt;p&gt;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; margin-bottom: 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 12pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-fareast-language: fr; mso-no-proof: yes" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160; &lt;/span&gt;Month,      &lt;p&gt;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; margin-bottom: 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 12pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-fareast-language: fr; mso-no-proof: yes" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160; &lt;/span&gt;Red &lt;span style="color: blue"&gt;PREDICT       &lt;p&gt;&lt;/p&gt;     &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; margin-bottom: 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 12pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-fareast-language: fr; mso-no-proof: yes" lang="EN-US"&gt;) &lt;span style="color: blue"&gt;USING&lt;/span&gt; &lt;span style="color: blue"&gt;Microsoft_Time_Series&lt;/span&gt; (MISSING_VALUE_SUBSTITUTION='Previous')      &lt;p&gt;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; margin-bottom: 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; color: blue; font-size: 12pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-fareast-language: fr; mso-no-proof: yes" lang="EN-US"&gt;WITH&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 12pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-fareast-language: fr; mso-no-proof: yes" lang="EN-US"&gt; &lt;span style="color: blue"&gt;DRILLTHROUGH&lt;/span&gt;,       &lt;p&gt;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height: normal; margin-bottom: 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 12pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-fareast-language: fr; mso-no-proof: yes" lang="EN-US"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color: blue"&gt;FILTER&lt;/span&gt;([Month Filter] &amp;lt; '1/1/1990')      &lt;p&gt;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="mso-fareast-language: fr" lang="EN-US"&gt;     &lt;p&gt;&amp;#160;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p style="mso-list: l0 level3 lfo1" class="NumHeading3"&gt;&lt;a name="_Toc246568673"&gt;&lt;span style="mso-bidi-font-family: calibri; mso-bidi-theme-font: minor-latin; mso-fareast-language: fr" lang="EN-US"&gt;&lt;span style="mso-list: ignore"&gt;5.2.2&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="mso-fareast-language: fr" lang="EN-US"&gt;PERIODICITY_HINT&lt;/span&gt;&lt;/a&gt;&lt;span style="mso-fareast-language: fr" lang="EN-US"&gt;     &lt;p&gt;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="mso-ansi-language: fr; mso-fareast-language: fr"&gt;PERIODICITY_HINT est le second parametre le plus important. Il faut toujours mettre la périodicité lorsque nous la connaissons.     &lt;p&gt;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="mso-ansi-language: fr; mso-fareast-language: fr"&gt;Le format de la périodicité est du type n[,…] ce qui signifie que nous pouvons spécifier plusieurs période.     &lt;p&gt;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="mso-ansi-language: fr; mso-fareast-language: fr"&gt;Par exemple une période pour des salaires mensuels peut être par trimestre ou par année. Dans ce cas, le format de la période serait 3,12.     &lt;p&gt;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="mso-ansi-language: fr; mso-fareast-language: fr"&gt;     &lt;p&gt;&amp;#160;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p style="mso-list: l0 level3 lfo1" class="NumHeading3"&gt;&lt;a name="_Toc246568674"&gt;&lt;span style="mso-bidi-font-family: calibri; mso-bidi-theme-font: minor-latin; mso-fareast-language: fr" lang="EN-US"&gt;&lt;span style="mso-list: ignore"&gt;5.2.3&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="mso-fareast-language: fr" lang="EN-US"&gt;HISTORIC_MODEL_COUNT et&lt;span style="mso-spacerun: yes"&gt;&amp;#160; &lt;/span&gt;HISTORIC_MODEL_GAP&lt;/span&gt;&lt;/a&gt;&lt;span style="mso-fareast-language: fr" lang="EN-US"&gt;      &lt;p&gt;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="mso-fareast-language: fr" lang="EN-US"&gt;     &lt;p&gt;&amp;#160;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="mso-ansi-language: fr; mso-fareast-language: fr"&gt;La validation de l’algorithme de série temporal s’effectue à l’aide des paramètres HISTORIC_MODEL_COUNT et&lt;span style="mso-spacerun: yes"&gt;&amp;#160; &lt;/span&gt;HISTORIC_MODEL_GAP qui sont affectés à un modèle de data mining.      &lt;p&gt;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="mso-ansi-language: fr; mso-fareast-language: fr; mso-no-proof: yes"&gt;&lt;a href="http://blogs.msdn.com/blogfiles/lbanon/WindowsLiveWriter/Zoomsurlalgorithmesrietemporelle_C6CC/clip_image004_2.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="clip_image004" border="0" alt="clip_image004" src="http://blogs.msdn.com/blogfiles/lbanon/WindowsLiveWriter/Zoomsurlalgorithmesrietemporelle_C6CC/clip_image004_thumb.png" width="244" height="62" v:shapes="_x0000_i1027" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;span style="mso-ansi-language: fr; mso-fareast-language: fr"&gt;     &lt;p&gt;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="mso-ansi-language: fr; mso-fareast-language: fr"&gt;     &lt;p&gt;&amp;#160;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="mso-ansi-language: fr; mso-fareast-language: fr"&gt;Le principe de ces paramètres est de créer des sous ensemble de modèle pour valider les données     &lt;p&gt;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="mso-ansi-language: fr; mso-fareast-language: fr"&gt;A travers la copie d’écran ci-dessous, le premier modèle prend en entrée N -3 mois, prédit les 3 derniers et compare avec le réel      &lt;p&gt;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="mso-ansi-language: fr; mso-fareast-language: fr"&gt;Le deuxième modèle prend en entrée les N - 6 mois, prédit les 6 suivant et compare avec le réel     &lt;p&gt;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="mso-ansi-language: fr; mso-fareast-language: fr"&gt;Il faut avoir un niveau de profondeur de données suffisant     &lt;p&gt;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p style="text-align: center" class="MsoNormal" align="center"&gt;&lt;span style="mso-ansi-language: fr; mso-fareast-language: fr; mso-no-proof: yes"&gt;&lt;a href="http://blogs.msdn.com/blogfiles/lbanon/WindowsLiveWriter/Zoomsurlalgorithmesrietemporelle_C6CC/clip_image005_2.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="clip_image005" border="0" alt="clip_image005" src="http://blogs.msdn.com/blogfiles/lbanon/WindowsLiveWriter/Zoomsurlalgorithmesrietemporelle_C6CC/clip_image005_thumb.png" width="244" height="136" v:shapes="Picture_x0020_1" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;span style="mso-ansi-language: fr; mso-fareast-language: fr"&gt;     &lt;p&gt;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="mso-ansi-language: fr; mso-fareast-language: fr"&gt;Le paramètre &lt;span style="mso-spacerun: yes"&gt;&amp;#160;&lt;/span&gt;HISTORIC_MODEL_COUNT correspond au numéro du sous modèle et&lt;span style="mso-spacerun: yes"&gt;&amp;#160; &lt;/span&gt;le paramètre HISTORIC_MODEL_GAP au nombre de pas de données à tronquer.      &lt;p&gt;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="mso-ansi-language: fr; mso-fareast-language: fr"&gt;Le lien suivant décrit plus en détails la mise en place de ces deux paramètres :     &lt;p&gt;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;&lt;a href="http://www.sqlserverdatamining.com/ssdm/Home/TipsTricks/tabid/61/Default.aspx?id=26"&gt;&lt;span style="mso-ansi-language: fr; mso-fareast-language: fr" lang="FR"&gt;http://www.sqlserverdatamining.com/ssdm/Home/TipsTricks/tabid/61/Default.aspx?id=26&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;span style="mso-ansi-language: fr; mso-fareast-language: fr"&gt;     &lt;p&gt;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="mso-ansi-language: fr; mso-fareast-language: fr"&gt;     &lt;p&gt;&amp;#160;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="mso-ansi-language: fr"&gt;     &lt;p&gt;&amp;#160;&lt;/p&gt;   &lt;/span&gt;&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9926723" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/lbanon/archive/tags/SSAS/default.aspx">SSAS</category><category domain="http://blogs.msdn.com/lbanon/archive/tags/Data+Mining/default.aspx">Data Mining</category></item><item><title>Définir un membre par défaut d’une dimension de rôle.</title><link>http://blogs.msdn.com/lbanon/archive/2009/11/13/d-finir-un-membre-par-d-faut-d-une-dimension-de-r-le.aspx</link><pubDate>Fri, 13 Nov 2009 08:26:49 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9921815</guid><dc:creator>lbanon</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/lbanon/comments/9921815.aspx</comments><wfw:commentRss>http://blogs.msdn.com/lbanon/commentrss.aspx?PostID=9921815</wfw:commentRss><description>&lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;span style="color: #1f497d"&gt;Avez-vous déjà essayé de définir un membre par défaut sur une dimension qui est décliné en rôle ?&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="color: #1f497d"&gt;&lt;/span&gt;&amp;#160;&lt;a href="http://blogs.msdn.com/blogfiles/lbanon/WindowsLiveWriter/Dfinirunmembrepardfautdunedimensionderl_F5CE/image_2.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/lbanon/WindowsLiveWriter/Dfinirunmembrepardfautdunedimensionderl_F5CE/image_thumb.png" width="244" height="136" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/lbanon/WindowsLiveWriter/Dfinirunmembrepardfautdunedimensionderl_F5CE/image_4.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/lbanon/WindowsLiveWriter/Dfinirunmembrepardfautdunedimensionderl_F5CE/image_thumb_1.png" width="244" height="98" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="color: #1f497d"&gt;Lors du déploiement, vous devriez obtenir l'erreur suivante &lt;/span&gt;&amp;#160; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;a href="http://blogs.msdn.com/blogfiles/lbanon/WindowsLiveWriter/Dfinirunmembrepardfautdunedimensionderl_F5CE/image_6.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/lbanon/WindowsLiveWriter/Dfinirunmembrepardfautdunedimensionderl_F5CE/image_thumb_2.png" width="244" height="24" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;span style="color: #1f497d"&gt;En effet, comment le moteur Analysis Services pourrait savoir sur quelle dimension il faut appliquer le membre par défaut ? &lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="color: #1f497d"&gt;Le seul moyen d'attribuer cette propriété est de l'écrire en script MDX enregistrée dans le cube comme le montre la figure ci-dessous. &lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/lbanon/WindowsLiveWriter/Dfinirunmembrepardfautdunedimensionderl_F5CE/image_8.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/lbanon/WindowsLiveWriter/Dfinirunmembrepardfautdunedimensionderl_F5CE/image_thumb_3.png" width="244" height="48" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;span style="color: #1f497d"&gt;Nous avons ci-dessous, trois requêtes MDX. &lt;/span&gt;&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;&lt;span style="color: #1f497d"&gt;La première affiche explicitement le membre par défaut de la dimension de rôle [Due Date]. &lt;/span&gt;&lt;/li&gt;    &lt;li&gt;&lt;span style="color: #1f497d"&gt;La deuxième n'effectue aucun filtre sur les dimensions. Nous constatons bien que le membre par défaut s'applique bien, à savoir que le cube est agrégé selon l'indicateur choisit croisé avec l'ensemble des membres par défaut. &lt;/span&gt;&lt;/li&gt;    &lt;li&gt;&lt;span style="color: #1f497d"&gt;Dans la troisième requête, nous « enlevons » le membre par défaut de la dimension [Due Date], ce qui donne la somme totale des ventes par Internet ; &lt;/span&gt;&lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/lbanon/WindowsLiveWriter/Dfinirunmembrepardfautdunedimensionderl_F5CE/image_10.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/lbanon/WindowsLiveWriter/Dfinirunmembrepardfautdunedimensionderl_F5CE/image_thumb_4.png" width="220" height="244" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;span style="color: #1f497d"&gt;&lt;/span&gt;&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9921815" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/lbanon/archive/tags/SSAS/default.aspx">SSAS</category></item><item><title>Rédaction d’un fichier rss</title><link>http://blogs.msdn.com/lbanon/archive/2009/08/07/r-daction-d-un-fichier-rss.aspx</link><pubDate>Fri, 07 Aug 2009 12:39:57 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9860060</guid><dc:creator>lbanon</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/lbanon/comments/9860060.aspx</comments><wfw:commentRss>http://blogs.msdn.com/lbanon/commentrss.aspx?PostID=9860060</wfw:commentRss><description>&lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Présentation&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;L’installation de Reporting Services fournit un utilitaire rs.exe exécutable en ligne de commande qui permet de gérer des taches d’administration comme le déploiement en automatique des rapports.&lt;/p&gt;  &lt;p&gt;L’aide en ligne sur la syntaxe de la commande rs.exe est consultable à l’url suivante&lt;/p&gt;  &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms162839.aspx"&gt;http://msdn.microsoft.com/en-us/library/ms162839.aspx&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Cette utilitaire consomme des fichiers qui portent l’extension rss. La logique des tâches à effectuer est contenu dans ce fichier rss.&lt;/p&gt;  &lt;p&gt;Exemple d’invocation de l’utilitaire rs.exe&lt;/p&gt;  &lt;p&gt;rs –i c:\scriptfiles\script_copycontent.rss -s &lt;a href="http://localhost/reportserver"&gt;http://localhost/reportserver&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Nous allons voir par la suite comment créer un fichier rss.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Etapes de mise en oeuvre&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;Sachant que le fichier rss utilise la syntaxe du laguage VB.NET, le principe pour faciliter la rédaction des scripts est de créer un &lt;b&gt;&lt;u&gt;projet &lt;i&gt;console&lt;/i&gt;&lt;/u&gt;&lt;/b&gt; VB.NET dans Visual Studio.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Les étapes de rédaction d’un fichier rss est décrit ci-dessous&lt;/p&gt;  &lt;p&gt;&lt;em&gt;&lt;font size="1"&gt;Démarrer Visual Studio et Sélectionner File&amp;gt;New&amp;gt;Project&lt;/font&gt;&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/lbanon/WindowsLiveWriter/Rdactiondunfichierrss_A3EC/clip_image002_2.jpg"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="clip_image002" border="0" alt="clip_image002" src="http://blogs.msdn.com/blogfiles/lbanon/WindowsLiveWriter/Rdactiondunfichierrss_A3EC/clip_image002_thumb.jpg" width="427" height="339" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;em&gt;Choisir le language VB.NET et le projet Console Application. Préciser l’emplacement du projet.&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/lbanon/WindowsLiveWriter/Rdactiondunfichierrss_A3EC/clip_image004_2.jpg"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="clip_image004" border="0" alt="clip_image004" src="http://blogs.msdn.com/blogfiles/lbanon/WindowsLiveWriter/Rdactiondunfichierrss_A3EC/clip_image004_thumb.jpg" width="250" height="218" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;em&gt;Sélectionner le projet et ouvrir le menu contextuel pour choisir Add Web Reference.&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/lbanon/WindowsLiveWriter/Rdactiondunfichierrss_A3EC/clip_image006_2.jpg"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="clip_image006" border="0" alt="clip_image006" src="http://blogs.msdn.com/blogfiles/lbanon/WindowsLiveWriter/Rdactiondunfichierrss_A3EC/clip_image006_thumb.jpg" width="432" height="297" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;em&gt;Saisir le nom du serveur Reporting Services sur lequel le programme sera testé &lt;/em&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://[servername]/reportserver/reportservice.asmx"&gt;&lt;em&gt;http://[ServerName]/reportserver/reportservice.asmx&lt;/em&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;em&gt;SelectionnerAdd Reference&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/lbanon/WindowsLiveWriter/Rdactiondunfichierrss_A3EC/clip_image008_2.jpg"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="clip_image008" border="0" alt="clip_image008" src="http://blogs.msdn.com/blogfiles/lbanon/WindowsLiveWriter/Rdactiondunfichierrss_A3EC/clip_image008_thumb.jpg" width="432" height="351" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;em&gt;Selectionner les propriétes du projet.&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;em&gt;Enlever les namespaces fournis sauf system et system.diagnostics, puis rajouter System.IO, System.web.Services et System.Xml&lt;/em&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/lbanon/WindowsLiveWriter/Rdactiondunfichierrss_A3EC/clip_image002%5B18%5D.jpg"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="clip_image002[18]" border="0" alt="clip_image002[18]" src="http://blogs.msdn.com/blogfiles/lbanon/WindowsLiveWriter/Rdactiondunfichierrss_A3EC/clip_image002%5B18%5D_thumb.jpg" width="315" height="190" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;em&gt;Le code peut à présent être édité et faire référence à notre classe proxy.&lt;/em&gt; &lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/lbanon/WindowsLiveWriter/Rdactiondunfichierrss_A3EC/clip_image002%5B20%5D.jpg"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="clip_image002[20]" border="0" alt="clip_image002[20]" src="http://blogs.msdn.com/blogfiles/lbanon/WindowsLiveWriter/Rdactiondunfichierrss_A3EC/clip_image002%5B20%5D_thumb.jpg" width="355" height="233" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;em&gt;Une fois testé, afin de créer notre fichier rss, il suffit de: &lt;/em&gt;&lt;/p&gt;  &lt;p&gt;&lt;em&gt;- Enlever la ligne d’instanciation de la classe proxy puisque cette tâche est automatiquement réalisée par l’utilitaire rs.exe. Le nom de cet objet est rs &lt;/em&gt;&lt;/p&gt;  &lt;p&gt;&lt;em&gt;- &lt;b&gt;Enlever les balises Module et End Module&lt;/b&gt; &lt;/em&gt;&lt;/p&gt;  &lt;p&gt;&lt;em&gt;- &lt;b&gt;Copier le contenu dans un fichier avec l’extension rss&lt;/b&gt;&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/lbanon/WindowsLiveWriter/Rdactiondunfichierrss_A3EC/image_2.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/lbanon/WindowsLiveWriter/Rdactiondunfichierrss_A3EC/image_thumb.png" width="434" height="237" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9860060" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/lbanon/archive/tags/SSRS/default.aspx">SSRS</category></item><item><title>La démocratisation du data mining</title><link>http://blogs.msdn.com/lbanon/archive/2009/05/07/vers-une-d-mocratisation-du-data-minin.aspx</link><pubDate>Thu, 07 May 2009 12:30:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9593500</guid><dc:creator>lbanon</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/lbanon/comments/9593500.aspx</comments><wfw:commentRss>http://blogs.msdn.com/lbanon/commentrss.aspx?PostID=9593500</wfw:commentRss><description>&lt;p style="text-align: justify"&gt;&lt;span style="color:#984806; font-size:14pt"&gt;&lt;strong&gt;Mais au juste, qu'est-ce que le data mining?
&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="text-align: justify"&gt;
 &lt;/p&gt;&lt;p style="text-align: justify"&gt;Commençons par rectifier quelques fausses idées.
&lt;/p&gt;&lt;p style="text-align: justify"&gt;Les activités suivantes ne sont pas une implémentation du data mining:
&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;div style="text-align: justify"&gt;Le "reporting ad_hoc". C'est la conception de rapport et la mise en relief de données à partir de méta-données. Ce n'est qu'une présentation des données existantes.
&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style="text-align: justify"&gt;La navigation dans un cube. Dans un cube, les données sont mise en forme de manière structurées et agrégées facilitant ainsi l'interrogation et la comparaison de métriques essentielles à la prise de décision. 
&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style="text-align: justify"&gt;L'abonnement à des évènements pour accélérer la prise de décision.
&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style="text-align: justify"&gt;Les statistiques. Bien qu'elles soient à la base du data mining, ça reste différent…
&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p style="text-align: justify"&gt;
 &lt;/p&gt;&lt;p style="text-align: justify"&gt;Robert Grossman nous donne une définition intéressante : "Le data mining est la conception semi-automatique ou automatique de modèles visant à mettre en avant des liens entre des données, détecter des anomalies, des changements,..., et le tout à partir d'un ensemble important d'informations. »
&lt;/p&gt;&lt;p style="text-align: justify"&gt;C'est donc le procédé qui permet d'identifier des tendances à partir de fait existants, on l'appelle aussi analyse prédictive ou exploration de données.
&lt;/p&gt;&lt;p style="text-align: justify"&gt;
 &lt;/p&gt;&lt;p style="text-align: justify"&gt;&lt;strong&gt;Dans quel cadre s'applique le data mining?
&lt;/strong&gt;&lt;/p&gt;&lt;p style="text-align: justify"&gt;Les usages les plus souvent cités sont :
&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;div style="text-align: justify"&gt;L'analyse des fraudes. Une compagnie d'assurance doit traiter une quantité importante de dossiers par jour et elle doit s'équiper d'un outil pour déceler les dossiers frauduleux.
&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style="text-align: justify"&gt;L'étude des comportements des consommateurs.
&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style="text-align: justify"&gt;La prédiction, comme le passage d'un client à la concurrence
&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style="text-align: justify"&gt;La classification des clients afin de cibler une campagne publicitaire sur une population particulière.
&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p style="text-align: justify"&gt;
 &lt;/p&gt;&lt;p style="text-align: justify"&gt;L'exemple historique est celui d'une entreprise de grande distribution américaine. Après avoir analysé les ventes, ils se sont aperçus que les paquets de couches pour bébés étaient souvent achetés le samedi par les pères à cause de leur gros volume. D'où la réorganisation des rayons des supermarchés avec le positionnement des packs de bière à coté des couches. Le samedi étant un jour de match, les ventes ont amplement augmenté ! Cette image illustre bien les capacités de &lt;a href="http://fr.wikipedia.org/wiki/Retour_sur_investissement" title="Retour sur investissement"&gt;retour sur investissement&lt;/a&gt; (ROI) des travaux de data mining et plus généralement d'&lt;a href="http://fr.wikipedia.org/wiki/Informatique_d%C3%A9cisionnelle" title="Informatique décisionnelle"&gt;informatique décisionnelle&lt;/a&gt;. 
&lt;/p&gt;&lt;p style="text-align: justify"&gt;Le cabinet d'étude IDC estime que dans certains cas, le data mining apporte un ROI de 150%!
&lt;/p&gt;&lt;p style="text-align: justify"&gt;
 &lt;/p&gt;&lt;p style="text-align: justify"&gt;Afin de répondre aux problèmes adressés par le data mining, il existe un certains nombre de procédés type comme la &lt;em&gt;classification&lt;/em&gt;,  le &lt;em&gt;regroupement&lt;/em&gt;, la &lt;em&gt;mise en association&lt;/em&gt;, la &lt;em&gt;prédiction&lt;/em&gt;, &lt;em&gt;l'analyse de séquence&lt;/em&gt;, la &lt;em&gt;régression.
&lt;/em&gt;&lt;/p&gt;&lt;p style="text-align: justify"&gt;C'est à ce niveau qu'intervient le rôle des algorithmes car c'est eux qui permettent d'effectuer ces transformations de données.
&lt;/p&gt;&lt;p style="text-align: justify"&gt;La figure 1 ci-dessous présente la matrice des différents algorithmes liés aux tâches de transformation de données.&lt;em&gt;
		&lt;/em&gt;&lt;/p&gt;&lt;p style="text-align: justify"&gt;
 &lt;/p&gt;&lt;p style="text-align: justify"&gt;
 &lt;/p&gt;&lt;p style="text-align: center"&gt;&lt;img src="http://blogs.msdn.com/blogfiles/lbanon/050709_1229_Ladmocratis1.png" alt=""/&gt;
	&lt;/p&gt;&lt;p style="text-align: center"&gt;&lt;span style="color:#4f81bd; font-size:9pt"&gt;&lt;strong&gt;&lt;span style="font-family:Times New Roman"&gt;Figure 1 – Critères de choix pour un algorithme&lt;/span&gt;&lt;em&gt;
				&lt;/em&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="text-align: justify"&gt;
 &lt;/p&gt;&lt;p style="text-align: justify"&gt;&lt;span style="color:#984806; font-size:14pt"&gt;&lt;strong&gt;La démarche de mise en œuvre&lt;/strong&gt;&lt;/span&gt;&lt;em&gt;
		&lt;/em&gt;&lt;/p&gt;&lt;p style="text-align: justify"&gt;
 &lt;/p&gt;&lt;p style="text-align: justify"&gt;Comme dans tous projets, une démarche/méthodologie doit être mise en place pour assurer son bon déroulement.
&lt;/p&gt;&lt;p style="text-align: justify"&gt;Une méthodologie de référence est celle proposée par le CRISP-DM (CRoss Industry Standard Process for Data Mining)
&lt;/p&gt;&lt;p style="text-align: center"&gt;. &lt;img src="http://blogs.msdn.com/blogfiles/lbanon/050709_1229_Ladmocratis2.png" alt=""/&gt;
	&lt;/p&gt;&lt;p style="text-align: center"&gt;&lt;span style="color:#4f81bd; font-family:Times New Roman; font-size:9pt"&gt;&lt;strong&gt;Figure 2 : Méthodologie CRISP
&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="text-align: justify"&gt;
 &lt;/p&gt;&lt;p style="text-align: justify"&gt;Comme l'illustre la figure 2, cette méthodologie se décompose en 6 phases qui sont :
&lt;/p&gt;&lt;p style="text-align: justify"&gt;
 &lt;/p&gt;&lt;p style="text-align: justify"&gt;&lt;span style="font-size:12pt"&gt;&lt;strong&gt;Analyse du métier&lt;/strong&gt;&lt;/span&gt;
	&lt;/p&gt;&lt;p style="text-align: justify"&gt;&lt;span style="font-size:12pt"&gt;Cette phase initiale permet de définir les objectifs et les besoins d'un point de vue métier, afin de formuler le cahier des charges.
&lt;/span&gt;&lt;/p&gt;&lt;p style="text-align: justify"&gt;&lt;span style="font-size:12pt"&gt;&lt;strong&gt;Compréhension des données&lt;/strong&gt;&lt;/span&gt;
	&lt;/p&gt;&lt;p style="text-align: justify"&gt;&lt;span style="font-size:12pt"&gt;Cette phase consiste à partir d'échantillonnage d'évaluer la qualité des données, de définir les premiers jeux d'informations utiles pour répondre aux besoins métiers&lt;/span&gt;
	&lt;/p&gt;&lt;p style="text-align: justify"&gt;&lt;span style="font-size:12pt"&gt;&lt;strong&gt;Préparation des données
&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="text-align: justify"&gt;&lt;span style="font-size:12pt"&gt;Cette phase permet de construire, transformer les données afin qu'elles puissent être consommées par les outils de modélisation.&lt;/span&gt;
	&lt;/p&gt;&lt;p style="text-align: justify"&gt;&lt;span style="font-size:12pt"&gt;&lt;strong&gt;Modélisation
&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="text-align: justify"&gt;&lt;span style="font-size:12pt"&gt;Lors de cette phase plusieurs modèles sont appliqués et validés.  Il n'est pas rare de revenir à la phase de &lt;em&gt;préparation de données&lt;/em&gt;.&lt;/span&gt;
	&lt;/p&gt;&lt;p style="text-align: justify"&gt;&lt;span style="font-size:12pt"&gt;&lt;strong&gt;Evaluation
&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="text-align: justify"&gt;&lt;span style="font-size:12pt"&gt;A ce niveau d'avancement, il est important de faire valider les modèles dans une perspective métier.&lt;/span&gt;
	&lt;/p&gt;&lt;p style="text-align: justify"&gt;&lt;span style="font-size:12pt"&gt;&lt;strong&gt;Déploiement
&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="text-align: justify"&gt;&lt;span style="font-size:12pt"&gt;La phase finale consiste à rendre accessible les modèles élaborés aux utilisateurs finaux.&lt;/span&gt;
	&lt;/p&gt;&lt;p style="text-align: justify"&gt;
 &lt;/p&gt;&lt;p style="text-align: justify"&gt;
 &lt;/p&gt;&lt;p style="text-align: justify"&gt;&lt;strong&gt;Mais pourquoi donc une démocratisation du data mining?
&lt;/strong&gt;&lt;/p&gt;&lt;p style="text-align: justify"&gt;
 &lt;/p&gt;&lt;p style="text-align: justify"&gt;Microsoft est entré dans le domaine du data mining avec la version 2000 de SQL Server et le produit a bien évolué avec la version 2005 et maintenant 2008.
&lt;/p&gt;&lt;p style="text-align: justify"&gt;Comme le montre de nombreuses études, l'outil privilégié des analystes reste Excel.  L'idée est donc de fournir dans Excel les outils nécessaires à la mise en œuvre d'un projet de data mining. Depuis le SP2 de SQL Server 2005, un add-in de data mining est intégrable dans Excel. Le lien de pour télécharger cet add-in est mentionné ci-dessous.
&lt;/p&gt;&lt;p style="text-align: justify"&gt;
 &lt;/p&gt;&lt;p style="text-align: justify"&gt;Pour s'éloigner un peu de la théorie, présentons par l'exemple un cas concret, celui de la définition des prix d'assurance de voiture en fonction des différentes caractéristiques.
&lt;/p&gt;&lt;p style="text-align: justify"&gt;Notre compagnie d'assurance possède une liste de véhicules avec l'ensemble des attributs qui les caractérisent en particuliers, un coefficient de risque.
&lt;/p&gt;&lt;p style="text-align: justify"&gt;Comme le montre la figure 3 ci-dessous, l'add-in Excel a été conçu pour suivre la méthode CRISP-DM.
&lt;/p&gt;&lt;p style="text-align: center"&gt;&lt;img src="http://blogs.msdn.com/blogfiles/lbanon/050709_1229_Ladmocratis3.png" alt=""/&gt;
	&lt;/p&gt;&lt;p style="text-align: center"&gt;&lt;span style="color:#4f81bd; font-family:Times New Roman; font-size:9pt"&gt;&lt;strong&gt;Figure 3 – L'add in Excel
&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="text-align: justify"&gt;
 &lt;/p&gt;&lt;p style="text-align: justify"&gt;
 &lt;/p&gt;&lt;p&gt;Décrivons dans le tableau suivant les étapes d'analyse :
&lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;div&gt;&lt;table style="border-collapse:collapse" border="0"&gt;&lt;colgroup&gt;&lt;col style="width:215px"/&gt;&lt;col style="width:454px"/&gt;&lt;/colgroup&gt;&lt;tbody valign="top"&gt;&lt;tr style="background: #4f81bd"&gt;&lt;td style="padding-left: 7px; padding-right: 7px; border-top:  solid #4f81bd 1.0pt; border-left:  solid #4f81bd 1.0pt; border-bottom:  solid #4f81bd 1.0pt"&gt;&lt;p&gt;&lt;span style="color:white; font-size:14pt"&gt;&lt;strong&gt;Description de l'étape&lt;/strong&gt;&lt;/span&gt; &lt;/p&gt;&lt;/td&gt;&lt;td style="padding-left: 7px; padding-right: 7px; border-top:  solid #4f81bd 1.0pt; border-bottom:  solid #4f81bd 1.0pt; border-right:  solid #4f81bd 1.0pt"&gt;&lt;p&gt;&lt;span style="color:white; font-size:14pt"&gt;&lt;strong&gt;Présentation de l'étape&lt;/strong&gt;&lt;/span&gt; &lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  solid #4f81bd 1.0pt; border-bottom:  solid #4f81bd 1.0pt"&gt;&lt;p&gt;&lt;strong&gt;&lt;span style="text-decoration:underline"&gt;Phase CRISP&lt;/span&gt; : 
&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Compréhension des données
&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p&gt;L'outil nous assiste pour déterminer les attributs majeurs qui influent sur le coefficient de risque.&lt;strong&gt;
							&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-bottom:  solid #4f81bd 1.0pt; border-right:  solid #4f81bd 1.0pt"&gt;&lt;p style="text-align: justify"&gt;&lt;img src="http://blogs.msdn.com/blogfiles/lbanon/050709_1229_Ladmocratis4.png" alt=""/&gt;&lt;img src="http://blogs.msdn.com/blogfiles/lbanon/050709_1229_Ladmocratis5.png" alt=""/&gt;
						&lt;/p&gt;&lt;p style="text-align: justify"&gt;&lt;img src="http://blogs.msdn.com/blogfiles/lbanon/050709_1229_Ladmocratis6.png" alt=""/&gt;
						&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="padding-left: 7px; padding-right: 7px; border-left:  solid #4f81bd 1.0pt; border-bottom:  solid #4f81bd 1.0pt"&gt;&lt;p style="text-align: justify"&gt;&lt;strong&gt;&lt;span style="text-decoration:underline"&gt;Phase CRISP&lt;/span&gt; : 
&lt;/strong&gt;&lt;/p&gt;&lt;p style="text-align: justify"&gt;&lt;strong&gt;Préparation des données.
&lt;/strong&gt;&lt;/p&gt;&lt;p style="text-align: justify"&gt;
 &lt;/p&gt;&lt;p&gt;Les données sont facilement analysées de sorte à transformer notre coefficient risque en deux valeurs : important et faible (risque).&lt;/p&gt;&lt;/td&gt;&lt;td style="padding-left: 7px; padding-right: 7px; border-bottom:  solid #4f81bd 1.0pt; border-right:  solid #4f81bd 1.0pt"&gt;&lt;p style="text-align: justify"&gt;&lt;img src="http://blogs.msdn.com/blogfiles/lbanon/050709_1229_Ladmocratis7.png" alt=""/&gt;
						&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;p style="text-align: justify"&gt; &lt;/p&gt;&lt;div&gt;&lt;table style="border-collapse:collapse" border="0"&gt;&lt;colgroup&gt;&lt;col style="width:215px"/&gt;&lt;col style="width:454px"/&gt;&lt;/colgroup&gt;&lt;tbody valign="top"&gt;&lt;tr&gt;&lt;td style="background: white; padding-left: 7px; padding-right: 7px; border-top:  solid #4f81bd 1.0pt; border-left:  solid #4f81bd 1.0pt; border-bottom:  solid #4f81bd 1.0pt"&gt;&lt;p&gt;&lt;strong&gt;&lt;span style="text-decoration:underline"&gt;Phase CRISP&lt;/span&gt; : 
&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Modélisation.
&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p&gt;Une fois les données préparées, nous rentrons dans la phase de modélisation en utilisant en entrée les attributs prépondérants à l'affectation du coefficient risque. Ainsi dans notre cas, nous avons implémenté un arbre de décision qui permet de définir des relations entres les attributs.&lt;/p&gt;&lt;/td&gt;&lt;td style="background: #4f81bd; padding-left: 7px; padding-right: 7px; border-top:  solid #4f81bd 1.0pt; border-bottom:  solid #4f81bd 1.0pt; border-right:  solid #4f81bd 1.0pt"&gt;&lt;p style="text-align: justify"&gt;
 &lt;/p&gt;&lt;p style="text-align: justify"&gt;&lt;img src="http://blogs.msdn.com/blogfiles/lbanon/050709_1229_Ladmocratis8.png" alt=""/&gt;&lt;img src="http://blogs.msdn.com/blogfiles/lbanon/050709_1229_Ladmocratis9.png" alt=""/&gt;&lt;span style="color:white"&gt;&lt;strong&gt;
								&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="text-align: justify"&gt;
 &lt;/p&gt;&lt;p style="text-align: justify"&gt;&lt;img src="http://blogs.msdn.com/blogfiles/lbanon/050709_1229_Ladmocratis10.png" alt=""/&gt;&lt;span style="color:white"&gt;&lt;strong&gt;
								&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-left:  solid #4f81bd 1.0pt; border-bottom:  solid #4f81bd 1.0pt"&gt;&lt;p&gt;&lt;strong&gt;&lt;span style="text-decoration:underline"&gt;Phase CRISP&lt;/span&gt; : 
&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Validation et déploiement.
&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p&gt;Plusieurs modèles sont implémentés puis comparés à l'aide de la « matrice de classification ». Dans notre cas, l'usage de l'algorithme arbre de décision est plus performant que le réseau de neurones.&lt;strong&gt;
							&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;Les résultats obtenus sont facilement consultables à l'aide d'un portail comme Sharepoint.&lt;strong&gt;
							&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="padding-left: 7px; padding-right: 7px; border-top:  none; border-bottom:  solid #4f81bd 1.0pt; border-right:  solid #4f81bd 1.0pt"&gt;&lt;p style="text-align: justify"&gt;&lt;img src="http://blogs.msdn.com/blogfiles/lbanon/050709_1229_Ladmocratis11.png" alt=""/&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="padding-left: 7px; padding-right: 7px; border-left:  solid #4f81bd 1.0pt; border-bottom:  solid #4f81bd 1.0pt"&gt;&lt;p&gt;&lt;strong&gt;&lt;span style="text-decoration:underline"&gt;Phase CRISP&lt;/span&gt; : 
&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Déploiement.
&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p&gt;A partir des données analysées, il est possible de définir la politique tarifaire pour des nouveaux véhicules.  Ainsi dans notre cas, nous pouvons évaluer le niveau de risque d'assurance en fonction des attributs du nouveau véhicule et donc associer par la suite un coût d'assurance.&lt;/p&gt;&lt;/td&gt;&lt;td style="padding-left: 7px; padding-right: 7px; border-bottom:  solid #4f81bd 1.0pt; border-right:  solid #4f81bd 1.0pt"&gt;&lt;p style="text-align: justify"&gt;&lt;img src="http://blogs.msdn.com/blogfiles/lbanon/050709_1229_Ladmocratis12.png" alt=""/&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;p style="text-align: justify"&gt;
 &lt;/p&gt;&lt;p style="text-align: justify"&gt;A travers cet exemple, nous venons de montrer comment l'enrichissement d'Excel permet d'aider à la prise de décision.
&lt;/p&gt;&lt;p style="text-align: justify"&gt;Bien entendu, d'autres scénarios métiers peuvent être entièrement abordés à travers Excel comme déceler les acheteurs potentiels en vue d'une campagne marketing.
&lt;/p&gt;&lt;p style="text-align: justify"&gt;
 &lt;/p&gt;&lt;p style="text-align: justify"&gt;
 &lt;/p&gt;&lt;p style="text-align: justify"&gt;&lt;span style="color:#984806; font-size:14pt"&gt;&lt;strong&gt;Au cœur de la bête 
&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="text-align: justify"&gt;
 &lt;/p&gt;&lt;p style="text-align: justify"&gt;Nous avons vu comment implémenter un scénario de data mining avec Excel, mais que se passe-t'il en arrière plan ? 
&lt;/p&gt;&lt;p style="text-align: justify"&gt;
 &lt;/p&gt;&lt;p style="text-align: justify"&gt;C'est Analysis Services (SSAS) la plateforme de data mining, bien qu'il soit aussi le moteur multidimensionnel de la suite SQL Server. Regardons comment il est structuré pour répondre aux problématiques de data mining.
&lt;/p&gt;&lt;p style="text-align: justify"&gt;
 &lt;/p&gt;&lt;p style="text-align: justify"&gt;Cet outil est organisé en plusieurs briques, comme le montre la figure 4.
&lt;/p&gt;&lt;p style="text-align: center"&gt;&lt;img src="http://blogs.msdn.com/blogfiles/lbanon/050709_1229_Ladmocratis13.png" alt=""/&gt;&lt;span style="color:#4f81bd; font-family:Times New Roman; font-size:9pt"&gt;&lt;strong&gt;Figure 4 – Analysis Services et le Data Mining
&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="text-align: justify"&gt;La modélisation multidimensionnelle commence par la création d'un cube, qui est la structure visant à manipuler les données. Dans ce cube, des dimensions sont créées afin de disposer de plusieurs axes pour analyser les données.
&lt;/p&gt;&lt;p style="text-align: justify"&gt;
 &lt;/p&gt;&lt;p style="text-align: justify"&gt;La modélisation prédictive (data mining) fonctionne de la même façon : une structure doit être créée pour accueillir les données concernées, et à l'intérieur de celle-ci, un ou plusieurs modèles seront implémentés, afin de dégager les tendances.
&lt;/p&gt;&lt;p style="text-align: justify"&gt;
 &lt;/p&gt;&lt;p style="text-align: justify"&gt;
 &lt;/p&gt;&lt;p style="text-align: justify"&gt;La création de structures et de modèles est accessible avec le DMX (Data Mining eXtension). Ce langage d'interrogation et de manipulation des objets, qui est au data mining ce que le SQL est à la base de données, a été créé et proposé par Microsoft, afin d'interagir avec Analysis Services. Il est relativement simple, comme le montre l'exemple suivant, qui crée un nouveau modèle selon l'algorithme de Naive Bayes :
&lt;/p&gt;&lt;p style="text-align: justify"&gt;
 &lt;/p&gt;&lt;p style="text-align: justify"&gt;&lt;span style="font-family:Courier New; font-size:10pt"&gt;&lt;span style="color:blue"&gt;CREATE&lt;/span&gt;
			&lt;span style="color:blue"&gt;MINING&lt;/span&gt;
			&lt;span style="color:blue"&gt;MODEL&lt;/span&gt; [NBExemple]
&lt;/span&gt;&lt;/p&gt;&lt;p style="text-align: justify"&gt;&lt;span style="font-family:Courier New; font-size:10pt"&gt;(
&lt;/span&gt;&lt;/p&gt;&lt;p style="text-align: justify"&gt;&lt;span style="font-family:Courier New; font-size:10pt"&gt;    CustomerKey &lt;span style="color:blue"&gt;LONG&lt;/span&gt;
			&lt;span style="color:blue"&gt;KEY&lt;/span&gt;, 
&lt;/span&gt;&lt;/p&gt;&lt;p style="text-align: justify"&gt;&lt;span style="font-family:Courier New; font-size:10pt"&gt;    Gender &lt;span style="color:blue"&gt;TEXT&lt;/span&gt;
			&lt;span style="color:blue"&gt;DISCRETE&lt;/span&gt;,
&lt;/span&gt;&lt;/p&gt;&lt;p style="text-align: justify"&gt;&lt;span style="font-family:Courier New; font-size:10pt"&gt;    [Number Cars Owned] &lt;span style="color:blue"&gt;LONG&lt;/span&gt;
			&lt;span style="color:blue"&gt;DISCRETE&lt;/span&gt;,
&lt;/span&gt;&lt;/p&gt;&lt;p style="text-align: justify"&gt;&lt;span style="font-family:Courier New; font-size:10pt"&gt;    [Bike Buyer] &lt;span style="color:blue"&gt;LONG&lt;/span&gt;
			&lt;span style="color:blue"&gt;DISCRETE&lt;/span&gt;
			&lt;span style="color:blue"&gt;PREDICT
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="text-align: justify"&gt;&lt;span style="font-family:Courier New; font-size:10pt"&gt;)
&lt;/span&gt;&lt;/p&gt;&lt;p style="text-align: justify"&gt;&lt;span style="font-family:Courier New; font-size:10pt"&gt;&lt;span style="color:blue"&gt;USING&lt;/span&gt;
			&lt;span style="color:blue"&gt;Microsoft_Naive_Bayes&lt;/span&gt;&lt;/span&gt;
	&lt;/p&gt;&lt;p style="text-align: justify"&gt;
 &lt;/p&gt;&lt;p style="text-align: justify"&gt;
 &lt;/p&gt;&lt;p style="text-align: justify"&gt;Quand le volume de données à manipuler est très important ou quand on veut lier des analyses prédictives à de l'analyse multidimensionnelle, Excel ne suffit plus. Il faut alors passer dans du développement Business Intelligence Development Studio, c'est pourquoi il est nécessaire de faire collaborer les équipes fonctionnelles et techniques pour les projets avancés.
&lt;/p&gt;&lt;p style="text-align: justify"&gt;
 &lt;/p&gt;&lt;p style="text-align: justify"&gt;Bien que plusieurs algorithmes soient fournis de base, il est possible d'enrichir l'outil en proposant d'autres personnalisés. On bénéficie ainsi de l'ossature offerte par l'offre Microsoft: Analysis Services et Excel. Certains acteurs reconnus dans le monde du data mining ont développé des extensions pour transporter leurs méthodes dans SQL Server. On peut notamment citer SPSS qui propose leurs analyses statistiques ou Visual Numerics qui ont interfacé leurs méthodes d'analyse numériques vers SQL Server.
&lt;/p&gt;&lt;p style="text-align: justify"&gt;
 &lt;/p&gt;&lt;p style="text-align: justify"&gt;
 &lt;/p&gt;&lt;p style="text-align: justify"&gt;
 &lt;/p&gt;&lt;p style="text-align: justify"&gt;&lt;span style="color:#984806; font-size:14pt"&gt;&lt;strong&gt;SQL Server : Plateforme intégrée et cohérente
&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="text-align: justify"&gt;
 &lt;/p&gt;&lt;p style="text-align: justify"&gt;Si l'investissement dans la suite SQL Server est essentiellement motivé par l'acquisition d'un outil de data mining, la montée en compétences des équipes sur le produit pourra être capitalisée lors de développement d'applications décisionnelles.
&lt;/p&gt;&lt;p style="text-align: justify"&gt;
 &lt;/p&gt;&lt;p style="text-align: justify"&gt;La suite SQL Server (SSIS – Integration Services, SSAS – Analysis Services, SSRS – Reporting Services) est complète pour mener à bien un projet décisionnel et un projet data mining selon la démarche expliquée précédemment. Dès qu'on attaque la manipulation des données, chaque module répond au besoin de chaque étape : 
&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;div style="text-align: justify"&gt;SSIS permet de préparer l'échantillon de données, et également d'alimenter un datawarehouse
&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style="text-align: justify"&gt;SQL Server permet de stocker le volume important de données
&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style="text-align: justify"&gt;La modélisation et l'évaluation des modèles prédictifs se fait dans SSAS, qui fait également de la modélisation dimensionnelle
&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style="text-align: justify"&gt;Les utilisateurs peuvent accéder à tous les résultats via SSRS.
&lt;/div&gt;&lt;p style="text-align: justify"&gt;
 &lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p style="text-align: justify"&gt;
 &lt;/p&gt;&lt;p style="text-align: justify"&gt;Donc, SQL Server peut être utilisé aux deux fins d'analyse décisionnelle et prédictive, l'implication et la formation des équipes de développement est réutilisable, pour obtenir une application de pilotage complète, qui donne une vision globale et précise de l'activité.
&lt;/p&gt;&lt;p style="text-align: justify"&gt;
 &lt;/p&gt;&lt;p style="text-align: justify"&gt;
 &lt;/p&gt;&lt;p style="text-align: justify"&gt;
 &lt;/p&gt;&lt;p style="text-align: justify"&gt;
 &lt;/p&gt;&lt;p style="text-align: justify"&gt;&lt;span style="color:#984806; font-size:14pt"&gt;&lt;strong&gt;Conclusion
&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="text-align: justify"&gt;
 &lt;/p&gt;&lt;p style="text-align: justify"&gt;Ainsi, les besoins en data mining peuvent être assez rapidement comblés directement par les utilisateurs fonctionnels, l'accès par Excel étant relativement simple. Si les demandes sont plus complexes, on bénéficie d'une plateforme appropriée pour faire des analyses plus précises, plateforme qui reste ouverte et peut être enrichie avec d'autres modèles. La suite SQL Server, qui permet donc la démocratisation du data mining, est un outil complet d'aide à la décision.
&lt;/p&gt;&lt;p style="text-align: justify"&gt;
 &lt;/p&gt;&lt;p style="text-align: justify"&gt;
 &lt;/p&gt;&lt;p&gt;&lt;span style="color:#984806; font-size:14pt"&gt;&lt;strong&gt;Pour aller plus loin
&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p&gt;Source pour le DMX : &lt;a href="http://msdn.microsoft.com/fr-fr/library/ms132058.aspx"&gt;http://msdn.microsoft.com/fr-fr/library/ms132058.aspx&lt;/a&gt;
	&lt;/p&gt;&lt;p&gt;Add-in Office 2007: &lt;a href="http://www.microsoft.com/sqlserver/2008/en/us/data-mining-addins.aspx"&gt;http://www.microsoft.com/sqlserver/2008/en/us/data-mining-addins.aspx&lt;/a&gt;&lt;span style="color:blue; text-decoration:underline"&gt;
		&lt;/span&gt;&lt;/p&gt;&lt;p&gt;SPSS : &lt;a href="http://www.spss.com/sqlserver/"&gt;http://www.spss.com/sqlserver/&lt;/a&gt;
	&lt;/p&gt;&lt;p&gt;Visual Numerics : &lt;a href="http://www.vni.com/company/whitepapers/MicrosoftBIwithNumericalLibraries.pdf"&gt;http://www.vni.com/company/whitepapers/MicrosoftBIwithNumericalLibraries.pdf&lt;/a&gt;
	&lt;/p&gt;&lt;p&gt;Méthodologie CRISP-DM : &lt;a href="http://www.crisp-dm.org/"&gt;http://www.crisp-dm.org/&lt;/a&gt;
	&lt;/p&gt;&lt;p&gt;SQL Server data mining : http://www.sqlserverdatamining.com/ssdm/
&lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p&gt;Blog des experts data mining chez Microsoft :
&lt;/p&gt;&lt;p&gt;Jamie MacLennan : &lt;a href="http://blogs.msdn.com/jamiemac/"&gt;http://blogs.msdn.com/jamiemac/&lt;/a&gt;
	&lt;/p&gt;&lt;p&gt;Bogdan Crivat : &lt;a href="http://www.bogdancrivat.net/dm/"&gt;http://www.bogdancrivat.net/dm/&lt;/a&gt;
	&lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p style="text-align: justify"&gt;
 &lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9593500" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/lbanon/archive/tags/SSAS/default.aspx">SSAS</category><category domain="http://blogs.msdn.com/lbanon/archive/tags/Data+Mining/default.aspx">Data Mining</category></item><item><title>Quel est le port d’écoute TCP d’Analysis Services</title><link>http://blogs.msdn.com/lbanon/archive/2009/04/09/quel-est-le-port-d-coute-tcp-d-analysis-services.aspx</link><pubDate>Thu, 09 Apr 2009 16:43:17 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9540232</guid><dc:creator>lbanon</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/lbanon/comments/9540232.aspx</comments><wfw:commentRss>http://blogs.msdn.com/lbanon/commentrss.aspx?PostID=9540232</wfw:commentRss><description>&lt;p&gt;L’instance par défaut d’analysis Services utilise le port 2383. Les instances nommées utilisent la stratégie de port dynamique à savoir qu’un numéro de port libre est automatiquement affecté.&lt;/p&gt;  &lt;p&gt;La stratégie du port d’écoute du serveur Analysis Services est définit à travers la propriété &amp;lt;port&amp;gt; du fichier de configuration « msmdredir.ini ». Ce fichier est situé dans le répertoire %Program files%\Microsoft SQL Server\90\Shared\ASConfig.&lt;/p&gt;  &lt;p&gt;La copie d’écran ci-dessous illustre l’affectation d’un port pour une instance Analysis Services.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/lbanon/WindowsLiveWriter/QuelestleportdcouteTCPdAnalysisServices_DCCF/clip_image002_2.jpg"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="clip_image002" border="0" alt="clip_image002" src="http://blogs.msdn.com/blogfiles/lbanon/WindowsLiveWriter/QuelestleportdcouteTCPdAnalysisServices_DCCF/clip_image002_thumb.jpg" width="406" height="148" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;SQL Browser service utilise le port 2382.&lt;/p&gt;  &lt;p&gt;C’est ce service qui a pour responsabilité de rediriger les appels clients vers la bonne instance avec son port associé.&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9540232" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/lbanon/archive/tags/SSAS/default.aspx">SSAS</category></item><item><title>Export de rapport Reporting Services au format CSV</title><link>http://blogs.msdn.com/lbanon/archive/2009/03/17/export-de-rapport-reporting-services-au-format-csv.aspx</link><pubDate>Tue, 17 Mar 2009 17:00:56 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9483678</guid><dc:creator>lbanon</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/lbanon/comments/9483678.aspx</comments><wfw:commentRss>http://blogs.msdn.com/lbanon/commentrss.aspx?PostID=9483678</wfw:commentRss><description>&lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Expression du besoin :&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;L’objectif est de définir un autre séparateur que la « virgule » pour le format CSV. Dans notre cas nous souhaitons que les données soient délimités par le séparateur « | ».&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Mise en place :&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;La sortie du fichier CSV est personnalisable à l’aide des paramètres « Device Information »&lt;/p&gt;  &lt;p&gt;&lt;a href="http://technet.microsoft.com/en-us/library/ms155365.aspx"&gt;http://technet.microsoft.com/en-us/library/ms155365.aspx&lt;/a&gt; et &lt;a href="http://technet.microsoft.com/en-us/library/ms156281.aspx"&gt;http://technet.microsoft.com/en-us/library/ms156281.aspx&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Cette propriété permet de configurer en particuliers le séparateur, l’encodage, le nom de l’extension….&lt;/p&gt;  &lt;p&gt;1) La première étape consiste à éditer le fichier rsreportserver.config et se positionner au niveau du nœud render.&lt;/p&gt;  &lt;p&gt;2) Si nous souhaitons rajouter en plus du format par défaut, il faut &lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;Ajouter un nœud XML de type extension, en précisant un nom différent de ceux initialement présent, CSV (pipe séparateur dans notre cas)&lt;/li&gt;    &lt;li&gt;Renseigner les nœuds enfants comme le montre la copie d’écran ci-dessous. L’élément FieldDelimenter permet de spécifier le séparateur de colonne.&lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/lbanon/WindowsLiveWriter/ExportderapportReportingServicesauformat_D314/image_4.png"&gt;&lt;img title="image" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="146" alt="image" src="http://blogs.msdn.com/blogfiles/lbanon/WindowsLiveWriter/ExportderapportReportingServicesauformat_D314/image_thumb_1.png" width="644" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Une fois le fichier de configuration enregistré, puis l’instance Reporting Services redémarré, la modification est visible depuis la « toolbar » du site Report Manager comme le montre la copie d’écran ci-dessous.&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/lbanon/WindowsLiveWriter/ExportderapportReportingServicesauformat_D314/image_6.png"&gt;&lt;img title="image" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="418" alt="image" src="http://blogs.msdn.com/blogfiles/lbanon/WindowsLiveWriter/ExportderapportReportingServicesauformat_D314/image_thumb_2.png" width="644" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9483678" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/lbanon/archive/tags/SSRS/default.aspx">SSRS</category></item><item><title>La démocratisation de la performance de l'entreprise avec PerformancePoint Server 2007</title><link>http://blogs.msdn.com/lbanon/archive/2008/08/19/la-d-mocratisation-de-la-performance-de-l-entreprise-avec-performancepoint-server-2007.aspx</link><pubDate>Tue, 19 Aug 2008 12:47:15 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8878387</guid><dc:creator>lbanon</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/lbanon/comments/8878387.aspx</comments><wfw:commentRss>http://blogs.msdn.com/lbanon/commentrss.aspx?PostID=8878387</wfw:commentRss><description>&lt;p style="text-align: justify"&gt;&lt;span style="font-size:12pt"&gt;&lt;strong&gt;Un besoin grandissant / La donnée au centre des entreprises
&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="text-align: justify"&gt;Le système d'information est devenu depuis quelques années un point central pour la croissance des entreprises. Dans un premier temps ces systèmes ont permis de collecter et de traiter l'information tout en optimisant son stockage. Puis dans un second temps, grâce à l'évolution de la puissance des machines, de la capacité disques grandissante, ces données ont pu être croisées et agrégées à des fins analytiques.
&lt;/p&gt;&lt;p style="text-align: justify"&gt;Nous voyons aujourd'hui fleurir de nombreux projets autour des problématiques « VLDB » (Very Large Data Base). Le traitement de données de masse n'est plus une barrière au grand bénéfice des projets axés sur la Business Intelligence.
&lt;/p&gt;&lt;p style="text-align: justify"&gt;
 &lt;/p&gt;&lt;p style="text-align: justify"&gt;Essentiellement pour des problématiques de coût, Le décisionnel était initialement réservé à des structures de taille importante. Depuis la sortie de SQL Server 7, il y après de 11 ans, Microsoft est allé à l'encontre de ce courant en enrichissant  sans cesse  son offre BI en proposant dans « une même boîte » l'ensemble des outils nécessaires dont entre autre « Analysis Services » pour la construction de cubes, « Integration Services (SSIS) » pour la partie chargement (ETL) ou encore « Reporting Services » pour la constitution de rapports.
&lt;/p&gt;&lt;p style="text-align: justify"&gt;
 &lt;/p&gt;&lt;p style="text-align: justify"&gt;
 &lt;/p&gt;&lt;p style="text-align: center"&gt;&lt;img src="http://blogs.msdn.com/blogfiles/lbanon/081908_0946_Ladmocratis1.png" alt=""/&gt;
	&lt;/p&gt;&lt;p style="text-align: center"&gt;&lt;strong&gt;&lt;em&gt;SQL Server / Office System : un duo gagnant pour les projets décisionnels
&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p style="text-align: justify"&gt;
 &lt;/p&gt;&lt;p style="text-align: justify"&gt;Un autre outil a depuis longtemps fait ses preuves auprès des utilisateurs finaux : Excel a su s'imposer pour l'affichage et la manipulation de faibles volumes de données. Ceci est d'autant plus vrai au niveau d'une population d'utilisateurs non initiés à l'informatique qui ont du s'adapter pour faire face à la nécessité de traiter et de synthétiser des données dans leur métier au quotidien. 
&lt;/p&gt;&lt;p style="text-align: justify"&gt;
 &lt;/p&gt;&lt;p style="text-align: justify"&gt;Parallèlement à la collecte de données structurées pouvant être stocké dans des bases de données, les grandes entreprises se dotent de plus en plus de portails centralisant l'ensemble des « documents » publiés par leurs différentes applications ou par leurs collaborateurs. La demande très forte des clients auprès de la division Services de Microsoft ou de nos partenaires pour des projets Microsoft Office Sharepoint Server (MOSS) en est la preuve.
&lt;/p&gt;&lt;p style="text-align: justify"&gt;
 &lt;/p&gt;&lt;p style="text-align: justify"&gt;
 &lt;/p&gt;&lt;p style="text-align: justify"&gt;&lt;span style="font-size:12pt"&gt;&lt;strong&gt;La gestion de la performance : un devoir de chacun au bénéfice de tous.
&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="text-align: justify"&gt;La collecte des données et la constitution de cubes multidimensionnels ont permis aujourd'hui de restituer auprès d'une petite population de décideurs des indicateurs permettant d'affiner le pilotage des entreprises. Il est maintenant nécessaire de franchir une nouvelle étape afin de disposer de nouveaux outils offrant la possibilité d'analyser en fonction d'objectifs définis les indicateurs de performances souhaités. 
&lt;/p&gt;&lt;p style="text-align: justify"&gt;
 &lt;/p&gt;&lt;p style="text-align: justify"&gt;La mondialisation, la complexité des entreprises et le volume croissant de données ne permet plus aujourd'hui aux entreprises de progresser en centralisant toutes les décisions. Chacun doit pouvoir à son niveau disposer des informations permettant de travailler efficacement. La consolidation des données mises à jour par ces différents acteurs doit donner une meilleure visibilité « en haut de la pyramide » sur les indicateurs de performances mais il faut également avoir la capacité d'analyser les données collectées afin de définir des axes d'améliorations efficaces pour faire progresser l'entreprise. 
&lt;/p&gt;&lt;p style="text-align: justify"&gt;
 &lt;/p&gt;&lt;p style="text-align: justify"&gt;Nous pouvons par exemple identifier dans l'entreprise différent types d'acteurs :
&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;div style="text-align: justify"&gt;Les « consommateurs de données » sont les plus nombreux. Ils affichent des rapports issus de données de l'entreprise sans avoir besoin de connaissance techniques particulières.
&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style="text-align: justify"&gt;Les « requêteurs » sont un peu moins nombreux mais doivent avoir une plus grande maîtrise des sources de données qu'ils utilisent afin de pouvoir adapter leurs rapports à leur besoin.
&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style="text-align: justify"&gt;Les « analystes » font partie de la population la plus restreinte. Assister de développeurs compétents, ils doivent maîtriser l'ensemble des données de l'entreprise afin d'être à même de fournir des analyses poussées sur les indicateurs de performances de l'entreprise.
&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p style="text-align: justify"&gt;
 &lt;/p&gt;&lt;p style="text-align: center"&gt;&lt;img src="http://blogs.msdn.com/blogfiles/lbanon/081908_0946_Ladmocratis2.png" alt=""/&gt;
	&lt;/p&gt;&lt;p style="text-align: center"&gt;Schéma 1 – Exemple de profils
&lt;/p&gt;&lt;p style="text-align: justify"&gt;
 &lt;/p&gt;&lt;p style="text-align: justify"&gt;La gestion de la performance dans les entreprises est donc passée d'un cadre réservé aux seuls « initié » à un cadre plus « populaire » ou chacun à son rôle à jouer pour le bénéfice de tous. 
&lt;/p&gt;&lt;p style="text-align: justify"&gt;
 &lt;/p&gt;&lt;p style="text-align: justify"&gt;&lt;span style="font-size:12pt"&gt;&lt;strong&gt;Oui mais PerformancePoint Server (PPS) c'est quoi ?
&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="text-align: justify"&gt;PerformancePoint Server 2007 est la réponse de Microsoft à ces problématiques de démocratisation du décisionnel. La synthèse des fonctionnalités évoluées de ProClarity en matière d'analyse graphique, de Business Scorecard Manager 2005 pour la constitution de tableaux de bords et le développement de nouvelles fonctionnalités complémentaires permet de proposer des solutions aux entreprises pour faire face aux enjeux de demain.
&lt;/p&gt;&lt;p style="text-align: justify"&gt;
 &lt;/p&gt;&lt;p style="text-align: justify"&gt;Ce produit est constitué de trois modules comme le montre le schéma suivant (Schéma 2 – Les modules de PerformancePoint Server 2007). 
&lt;/p&gt;&lt;p style="text-align: justify"&gt;
 &lt;/p&gt;&lt;p style="text-align: justify"&gt;&lt;img src="http://blogs.msdn.com/blogfiles/lbanon/081908_0946_Ladmocratis3.png" alt=""/&gt;
	&lt;/p&gt;&lt;p style="text-align: center"&gt;Schéma 2 – Les modules de PerformancePoint Server 2007
&lt;/p&gt;&lt;p style="text-align: justify"&gt;
 &lt;/p&gt;&lt;p style="text-align: justify"&gt;
 &lt;/p&gt;&lt;p style="text-align: justify"&gt;&lt;strong&gt;Le module « Planning »&lt;/strong&gt; (Planifier, Budgéter &amp;amp; Prévoir) permet de modéliser les indicateurs de l'entreprise qui seront utiles et de définir des objectifs vis-à-vis de ceux-ci. 
&lt;/p&gt;&lt;p style="text-align: justify"&gt;
 &lt;/p&gt;&lt;p style="text-align: justify"&gt;L'objectif est de disposer de données cohérentes à tous les niveaux en :
&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;div style="text-align: justify"&gt;rationnalisant les données à l'aide de formulaires, workflows, soumissions, approbations, templates… 
&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style="text-align: justify"&gt;définissant des modèles applicables aussi bien unitairement qu'à l'entreprise dans son ensemble,
&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style="text-align: justify"&gt;facilitant l'intégration de données provenant de sources et versions diverses en une seule vue pour simplifier les processus de planification, budgétisation et prévision.
&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p style="text-align: justify"&gt;
 &lt;/p&gt;&lt;p style="text-align: justify"&gt;La souplesse de la solution réside dans la création de plans et de budgets à l'aide d'assistants, sans la moindre ligne de code. Des modèles de conception sont fournis au travers de l'outil et l'intégration avec Excel, Outlook et Sharepoint Server 2007 offre un environnement collaboratif riche et souple à cette solution.
&lt;/p&gt;&lt;p style="text-align: justify"&gt;
 &lt;/p&gt;&lt;p style="text-align: justify"&gt;&lt;strong&gt;Le module « Analyse »&lt;/strong&gt; (Analyses et Requêtes) permet d'analyser les résultats en confrontant les valeurs des indicateurs mesurés par rapport à la modélisation effectuée.
&lt;/p&gt;&lt;p style="text-align: justify"&gt;
 &lt;/p&gt;&lt;p style="text-align: justify"&gt;Ce module s'appuie principalement sur la richesse et la puissance de la plate-forme décisionnelle Microsoft offrant des possibilités de vues multidimensionnelles, de définition de règles métiers au niveau du serveur, d'analyse de causes sous-jacentes et de prévisibilité.
&lt;/p&gt;&lt;p style="text-align: justify"&gt;
 &lt;/p&gt;&lt;p style="text-align: justify"&gt;Tout comme pour le module « planning », l'outil permet de créer, de gérer et de diffuser des analyses sans la moindre ligne de code en profitant de l'intégration avec la suite Office. Le travail collaboratif est mis en avant avec la possibilité d'ajout d'annotations et de discussions aux Scorecards, de partage d'informations au travers de SQL Server Reporting Services, de SharePoint Report Center sous des formats aussi divers que sont HTML, XML, PDF. Ces possibilités sont complétées par les outils collaboratifs traditionnels de Microsoft que sont Office Excel, Outlook, Live Meeting et MSN Messenger.
&lt;/p&gt;&lt;p style="text-align: justify"&gt;
 &lt;/p&gt;&lt;p style="text-align: justify"&gt;&lt;strong&gt;Le module « Monitoring »&lt;/strong&gt; (Scorecards, Dashboards &amp;amp; Rapports) offre une palette de possibilités vis-à-vis de l'interface de suivi des performances. 
&lt;/p&gt;&lt;p style="text-align: justify"&gt;
 &lt;/p&gt;&lt;p style="text-align: justify"&gt;La visualisation des indicateurs (KPIs) peut s'effectuer de différentes manières au travers de Scorecards, de Dashboards, de Strategy maps (intégration avec Visio). La navigation dans les données (drill down/up) est facilitée et permet une utilisation large accessible à tous les collaborateurs. 
&lt;/p&gt;&lt;p style="text-align: justify"&gt;
 &lt;/p&gt;&lt;p style="text-align: justify"&gt;L'outil s'intègre pleinement dans toutes les activités de l'entreprise en permettant un monitoring au jour le jour des process. Toutes les populations de l'entreprise peuvent ainsi accéder aux informations qui leurs sont destinées.
&lt;/p&gt;&lt;p style="text-align: justify"&gt;
 &lt;/p&gt;&lt;p style="text-align: justify"&gt;
 &lt;/p&gt;&lt;p style="text-align: justify"&gt;&lt;span style="font-size:12pt"&gt;&lt;strong&gt;Et pour la suite…
&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="text-align: justify"&gt;Parallèlement à l'offre PerformancePoint Server, Microsoft dispose d'outils plus spécifiques dédiés à des populations très ciblés comme par exemple Microsoft® Forecaster qui est une solution à faible coût de budgétisation et de planification ou encore Microsoft®FRx qui est un outil de reporting financier  intégré à Microsoft Dynamics GL. Ces deux modules devraient être intégrés dans le module « Sierra » qui dans un premier temps pourra être mis en œuvre en parallèle avec PerformancePoint et dans un second temps sera intégré au produit.
&lt;/p&gt;&lt;p style="text-align: justify"&gt;
 &lt;/p&gt;&lt;p style="text-align: justify"&gt;&lt;span style="font-size:12pt"&gt;&lt;strong&gt;En conclusion
&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="text-align: justify"&gt;PerformancePoint Server 2007 est un outil complet et intuitif dans son utilisation qui s'inscrit pleinement dans la stratégie de l'offre globale de Microsoft. Son couplage avec de nombreux produits dont entre autre SharePoint est indispensable pour bénéficier d'un fonctionnement agréable. Ce produit devrait très vite être adopté par de nombreuses entreprises désireuses de disposer d'outils leurs offrants un avantage compétitif vis-à-vis d'une concurrence mondiale de plus en plus acharnée.
&lt;/p&gt;&lt;p style="text-align: justify"&gt;
 &lt;/p&gt;&lt;p style="text-align: justify"&gt;&lt;span style="font-size:12pt"&gt;&lt;strong&gt;Pour aller plus loin
&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="text-align: justify"&gt;Présentation du produit PerformancePoint Server 2007 :
&lt;/p&gt;&lt;p style="text-align: justify"&gt;&lt;a href="http://office.microsoft.com/fr-fr/performancepoint/FX101680481036.aspx"&gt;http://office.microsoft.com/fr-fr/performancepoint/FX101680481036.aspx&lt;/a&gt;
	&lt;/p&gt;&lt;p style="text-align: justify"&gt;Les acteurs du décisionnels :
&lt;/p&gt;&lt;p style="text-align: justify"&gt;&lt;a href="http://www.olapreport.com/"&gt;http://www.olapreport.com/&lt;/a&gt;
	&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8878387" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/lbanon/archive/tags/PerformancePoint/default.aspx">PerformancePoint</category></item><item><title>Bonnes pratiques de design SSAS</title><link>http://blogs.msdn.com/lbanon/archive/2008/08/12/bonnes-pratiques-de-design-ssas.aspx</link><pubDate>Tue, 12 Aug 2008 10:50:03 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8850225</guid><dc:creator>lbanon</dc:creator><slash:comments>2</slash:comments><comments>http://blogs.msdn.com/lbanon/comments/8850225.aspx</comments><wfw:commentRss>http://blogs.msdn.com/lbanon/commentrss.aspx?PostID=8850225</wfw:commentRss><description>&lt;p&gt;Passons en revue quelques bonnes pratiques de design SSAS
&lt;/p&gt;&lt;p style="margin-left: 39pt"&gt;&lt;span style="color:#1f497d; font-size:16pt"&gt;&lt;strong&gt;Design des dimensions
&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 51pt"&gt;
 &lt;/p&gt;&lt;p style="margin-left: 51pt"&gt;&lt;span style="color:#333333; font-size:13pt"&gt;&lt;strong&gt;Création de relations entre attributs
&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;Il est important de créer des relations entre les attributs au sein d'une dimension. En effet les agrégats sont calculés à partir des relations entre les attributs.
&lt;/p&gt;&lt;p style="margin-left: 51pt"&gt;
 &lt;/p&gt;&lt;p style="margin-left: 51pt"&gt;&lt;span style="color:#333333; font-size:13pt"&gt;&lt;strong&gt;Eviter de rajouter des attributs non utilisé
&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;L'ajout d'attributs non utilisé affecte l'espace de stockage du cube et en même temps les performances.
&lt;/p&gt;&lt;p&gt;S'il n'est pas nécessaire de créer une hiérarchie pour un attribut, il est intéressant de définir la propriété &lt;strong&gt;AttributeHierachyEnabled&lt;/strong&gt; à false.
&lt;/p&gt;&lt;p&gt;Le fait de configurer cette propriété améliore les temps de processing et diminue la taille du cube car l'attribut ne sera plus indexé ni agrégé.
&lt;/p&gt;&lt;p&gt;Il est intéressant d'appliquer cette règle par exemple pour une adresse ou un numéro de téléphone.
&lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p style="margin-left: 51pt"&gt;&lt;span style="color:#333333; font-size:13pt"&gt;&lt;strong&gt;Utilisation des clés numériques
&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;L'usage de clés numérique améliore les performances, ce qui est particulièrement vrai pour les dimensions avec un nombre de membres important.
&lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p style="margin-left: 28pt"&gt;&lt;span style="font-size:9pt; text-decoration:underline"&gt;&lt;strong&gt;Extrait du Microsoft SQL Server 2005 Analysis Services Performance Guide
&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 28pt"&gt;&lt;span style="font-size:9pt"&gt;From a processing perspective, it is a best practice to assign a numeric source field to the &lt;strong&gt;KeyColumns&lt;/strong&gt; property rather than a string property. Not only can this reduce processing time, in some scenarios it can also reduce the size of the dimension. This is especially true for attributes that have a large number of members, i.e., greater than 1 million members. 
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p&gt;&lt;span style="color:#333333; font-size:13pt"&gt;&lt;strong&gt;Eviter de créer des relations redondantes au sein des attributs
&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;La redondance au niveau des attributs a un impact au niveau des performances.
&lt;/p&gt;&lt;p&gt;Par exemples si les relations entre attributs A-&amp;gt;B, B-&amp;gt;C,  et A-&amp;gt;C ont été crées, A-&amp;gt;C est redondant et devrait être enlevé.
&lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p style="margin-left: 51pt"&gt;&lt;span style="color:#333333; font-size:13pt"&gt;&lt;strong&gt;Définition des types de relation dans le temps
&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;Si les relations entre attributs ne changent pas au cours du temps, il est important de les définir comme Rigid. Ainsi, les agrégats ne sont pas détruits lorsque du process de la dimension.
&lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p style="margin-left: 51pt"&gt;&lt;span style="color:#333333; font-size:13pt"&gt;&lt;strong&gt;Traitement des erreurs dans le processing d'une dimension
&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;Il faut éviter de configurer la propriété &lt;strong&gt;ErrorConfigurations&lt;/strong&gt;  est definini à &lt;strong&gt;IgnoreError&lt;/strong&gt;. 
&lt;/p&gt;&lt;p&gt;Il est préférable de traiter en amont la correction de données et d'identifier les lignes en erreur.
&lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p style="margin-left: 51pt"&gt;&lt;span style="color:#333333; font-size:13pt"&gt;&lt;strong&gt;Création des relations au sein des différents niveaux d'une hiérarchie 
&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;Dans un souci de performance, il est important de définir des relations au sein des attributs qui définissent une hiérarchie.
&lt;/p&gt;&lt;p style="margin-left: 51pt"&gt;
 &lt;/p&gt;&lt;p style="margin-left: 51pt"&gt;&lt;span style="color:#333333; font-size:13pt"&gt;&lt;strong&gt;Eviter de créer des relations de type diamond-shaped
&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;Une relation de type " &lt;em&gt;Diamond-shaped" &lt;/em&gt;correspond à une chaîne d'attributs qui ont se séparent et se rejoignent par la suite.
&lt;/p&gt;&lt;p&gt;Ce type de relation peut avoir un impact lors de la création des agrégats sur le serveur.
&lt;/p&gt;&lt;p&gt; Dans ce cas, il est fortement recommandé de créer une hiérarchie utilisateur qui contient tous les chemins.
&lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p style="margin-left: 39pt"&gt;&lt;span style="color:#1f497d; font-size:16pt"&gt;&lt;strong&gt;Design du cube
&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 51pt"&gt;&lt;span style="color:#333333; font-size:13pt"&gt;&lt;strong&gt;Eviter d'avoir beaucoup de dimension parent-child
&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;L'usage des relations parent-enfant doit être effectué avec parcimonie.
&lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p style="margin-left: 51pt"&gt;&lt;span style="color:#333333; font-size:13pt"&gt;&lt;strong&gt;Eviter d'avoir un groupe de mesure intermediaire ou une dimension trop importante dans une relation many-to-many
&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;Les relations many-to-many sont calculées à la vole, ce qui peut être pénalisant pour les dimensions importantes ou les groupes de mesures intermédiaires.
&lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p style="margin-left: 51pt"&gt;&lt;span style="color:#333333; font-size:13pt"&gt;&lt;strong&gt;Eviter de créer plusieurs groups de mesure avec les mêmes axes d'analyse et le même niveau de granularité. 
&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;Le fait d'avoir un nombre important de groupe de mesure peut avoir un impact sur les performances.
&lt;/p&gt;&lt;p&gt;Si les axes d'analyse sont communs avec la même granularité des indicateurs, il est pertinent de regrouper les groupes de mesures.
&lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p&gt;&lt;span style="color:#333333; font-size:13pt"&gt;&lt;strong&gt;Isoler chaque distinct count mesure dans un groupe de mesure séparé
&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;Positionner chaque distinct count mesure dans son propre groupe de mesure améliore les performances.
&lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p style="margin-left: 51pt"&gt;&lt;span style="color:#333333; font-size:13pt"&gt;&lt;strong&gt;Matérialiser les mesures de référence
&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;Afin d'améliorer les performances, les dimensions de référence doivent être matérialisées.&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8850225" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/lbanon/archive/tags/SSAS/default.aspx">SSAS</category></item><item><title>Vers une meilleure modélisation</title><link>http://blogs.msdn.com/lbanon/archive/2008/07/09/vers-une-meilleure-mod-lisation.aspx</link><pubDate>Wed, 09 Jul 2008 20:54:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8713830</guid><dc:creator>lbanon</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/lbanon/comments/8713830.aspx</comments><wfw:commentRss>http://blogs.msdn.com/lbanon/commentrss.aspx?PostID=8713830</wfw:commentRss><description>&lt;p&gt;Avant de rentrer dans le c&amp;#339;ur du sujet, repr&amp;#233;sentons les concepts et les bonnes pratiques de mod&amp;#233;lisation des liens entre attributs.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;i&gt;&lt;/i&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;i&gt;Les relations d&amp;#8217;attributs&lt;/i&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;Tous les attributs sont li&amp;#233;s directement ou indirectement &amp;#224; l&amp;#8217;attribut cl&amp;#233;. En cr&amp;#233;ant des hi&amp;#233;rarchies, il est facile de cr&amp;#233;er des relations redondantes.&lt;/p&gt;  &lt;p&gt;Ainsi la relation &lt;b&gt;&lt;i&gt;Customer &lt;/i&gt;&lt;/b&gt;&lt;b&gt;&lt;i&gt;&amp;#224;&lt;/i&gt;&lt;/b&gt;&lt;b&gt;&lt;i&gt; City n&amp;#8217;est pas redondante, &lt;/i&gt;&lt;/b&gt;ce qui n&amp;#8217;est pas le cas pour la relation suivante &lt;b&gt;&lt;i&gt;Customer &lt;/i&gt;&lt;/b&gt;&lt;b&gt;&lt;i&gt;&amp;#224;&lt;/i&gt;&lt;/b&gt;&lt;b&gt;&lt;i&gt; Country &lt;/i&gt;&lt;/b&gt;qui peut &amp;#234;tre obtenu indirectement.&lt;/p&gt;  &lt;p&gt;Cette redondance a bien sur un impact sur le stockage de la base de donn&amp;#233;es.&lt;/p&gt;  &lt;p&gt;De plus les attributs poss&amp;#232;dent un type qui peut &amp;#234;tre qualifi&amp;#233;s de rigide ou de flexible.&lt;/p&gt;  &lt;p&gt;Une relation entre attribut est dite rigide si elle n&amp;#8217;&amp;#233;volue pas dans le temps comme par exemple, le sexe d&amp;#8217;une personne.&lt;/p&gt;  &lt;p&gt;Lorsque les types de relation sont flexibles, les agr&amp;#233;gats sont automatiquement supprim&amp;#233;s lors du traitement de la dimension et doivent &amp;#234;tre reconstruit &amp;#224; l&amp;#8217;aide de l&amp;#8217;instruction &amp;#171; process index &amp;#187; contrairement aux relations rigides. Par d&amp;#233;faut, le type de relation est flexible.&lt;/p&gt;  &lt;p&gt;Ce point est important &amp;#224; prendre en compte lorsque la fen&amp;#234;tre pour traiter le cube est limit&amp;#233;e.&lt;b&gt;&lt;i&gt;&lt;/i&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;i&gt;&lt;/i&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;i&gt;Les hi&amp;#233;rarchies naturelles&lt;/i&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;A partir de lien d&amp;#8217;attributs, il est possible de d&amp;#233;finir des hi&amp;#233;rarchies naturelles et non naturelles.&lt;/p&gt;  &lt;p&gt;Une hi&amp;#233;rarchie est dite naturelle lorsqu&amp;#8217;une unicit&amp;#233; est d&amp;#233;finie pour chaque parent de la hi&amp;#233;rarchie.&lt;/p&gt;  &lt;p&gt;Ainsi la hi&amp;#233;rarchie &lt;b&gt;Country-State-City-Customer &lt;/b&gt;est naturelle tandis que &lt;b&gt;Age-Gender-Customer &lt;/b&gt;ne l&amp;#8217;est pas. En effet, si nous remontons la hi&amp;#233;rarchie, &amp;#224; partir d&amp;#8217;un sexe donn&amp;#233;, il n&amp;#8217;est pas possible de d&amp;#233;finir le parent ; le seul moyen est de naviguer par l&amp;#8217;attribut cl&amp;#233;.&lt;/p&gt;  &lt;p&gt;D&amp;#8217;un point de vue performance, une hi&amp;#233;rarchie naturelle est mat&amp;#233;rialis&amp;#233;e alors qu&amp;#8217;une hi&amp;#233;rarchie non naturelle est calcul&amp;#233;e &amp;#224; la vol&amp;#233;e.&lt;/p&gt;  &lt;p&gt;Sous SQL Server 2005, il &amp;#233;tait facile de cr&amp;#233;er une hi&amp;#233;rarchie non naturelle car l&amp;#8217;option de la dimension &lt;i&gt;KeyDuplicate&lt;/i&gt; &amp;#233;tait &amp;#224; &lt;i&gt;IgnoreError&lt;/i&gt;.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;i&gt;&lt;/i&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;i&gt;Comment impl&amp;#233;menter les bonnes pratiques ?&lt;/i&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;Le nouvel outil BID 2008, Business Inelligence Developpment, propose une nouvelle interface simplifi&amp;#233; afin de guider l&amp;#8217;utilisateur dans l&amp;#8217;impl&amp;#233;mentation des bonnes pratiques de conception.&lt;/p&gt;  &lt;p&gt;Tout d&amp;#8217;abord les assistants de cr&amp;#233;ation de cube et de dimension ont &amp;#233;t&amp;#233; simplifi&amp;#233;s. Ainsi, sur un m&amp;#234;me &amp;#233;cran, il est possible de d&amp;#233;finir un nombre de propri&amp;#233;t&amp;#233; important sur un un attribut comme son nom simplifi&amp;#233;, son type, l&amp;#8217;activation de la navigation. De plus des validations s&amp;#8217;effectuent en temps r&amp;#233;els comme par exemple un avertissement qui appara&amp;#238;t si un nom n&amp;#8217;est pas sp&amp;#233;cifi&amp;#233; lorsqu&amp;#8217;une cl&amp;#233; composite d&amp;#8217;une dimension est d&amp;#233;finie. &lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/lbanon/WindowsLiveWriter/Versunemeilleuremodlisation_A84D/clip_image002_2.jpg"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="121" alt="clip_image002" src="http://blogs.msdn.com/blogfiles/lbanon/WindowsLiveWriter/Versunemeilleuremodlisation_A84D/clip_image002_thumb.jpg" width="244" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Nous avons vu qu&amp;#8217;il est important d&amp;#8217;utiliser avec pr&amp;#233;caution des hi&amp;#233;rarchies non naturelles et d&amp;#8217;&amp;#233;viter de cr&amp;#233;er des attributs redondants, ce qui auraient des impacts n&amp;#233;gatifs sur les performances.&lt;/p&gt;  &lt;p&gt;Afin d&amp;#8217;avoir une synth&amp;#232;se des relations entre les attributs, BID propose un nouvel onglet, l&amp;#8217;attribute relationShip designer. &lt;/p&gt;  &lt;p&gt;Ainsi, sous la figure ci-dessous nous pouvons ais&amp;#233;ment voir &amp;#224; l&amp;#8217;aide du message d&amp;#8217;avertissement qu&amp;#8217;il y a une redondance entre les relations Months&amp;#224;Calendar Quarter&amp;#224;Calendar Semester et Months&amp;#224; Calendar Semester.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/lbanon/WindowsLiveWriter/Versunemeilleuremodlisation_A84D/clip_image004_2.jpg"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="63" alt="clip_image004" src="http://blogs.msdn.com/blogfiles/lbanon/WindowsLiveWriter/Versunemeilleuremodlisation_A84D/clip_image004_thumb.jpg" width="244" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Cette version apporte donc un ensemble de r&amp;#232;gles de validation de bonnes pratiques. L&amp;#8217;utilisateur est donc guid&amp;#233;, ce qui continue &amp;#224; d&amp;#233;mocratiser la Business Intelligence.&lt;/p&gt;  &lt;p&gt;Il est d&amp;#8217;ailleurs possible d&amp;#8217;acc&amp;#233;der et de modifier ces r&amp;#232;gles de validation et en particuliers de les activer ou d&amp;#233;sactiver soit au niveau du projet ou alors au niveau d&amp;#8217;un &amp;#233;l&amp;#233;ment plus fin comme la dimension. &lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8713830" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/lbanon/archive/tags/SSAS+2008/default.aspx">SSAS 2008</category><category domain="http://blogs.msdn.com/lbanon/archive/tags/SSAS/default.aspx">SSAS</category></item><item><title>LES CURSEURS SOUS SQL SERVER</title><link>http://blogs.msdn.com/lbanon/archive/2008/05/18/les-curseurs-sous-sql-server.aspx</link><pubDate>Sun, 18 May 2008 14:18:49 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8518125</guid><dc:creator>lbanon</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/lbanon/comments/8518125.aspx</comments><wfw:commentRss>http://blogs.msdn.com/lbanon/commentrss.aspx?PostID=8518125</wfw:commentRss><description>&lt;p&gt;&lt;span style="color:#ff640e; font-family:Arial; font-size:12pt"&gt;&lt;strong&gt;EVITER LES CURSEURS, OUI MAIS…
&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:black; font-family:Arial; font-size:9pt"&gt;« N'utilisez pas les curseurs, ils ne sont pas performants » est une phrase qui revient souvent dans la bouche des DBA.
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:black; font-family:Arial; font-size:9pt"&gt;Certes, une grande partie des traitements de boucle sont remplaçables par des traitements ensemblistes, d'autant
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:black; font-family:Arial; font-size:9pt"&gt;plus que le moteur relationnel est optimisé pour ce type de tâche.
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:black; font-family:Arial; font-size:9pt"&gt;Notons au passage que parmi les « templates » de code T-SQL fournis avec SQL Server Mangement Studio, l'outil
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:black; font-family:Arial; font-size:9pt"&gt;de développement et d'administration fourni avec SQL Server 2005, les curseurs ne figurent plus dans la liste.
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:black; font-family:Arial; font-size:9pt"&gt;Cependant, il est parfois nécessaire d'exécuter un traitement pour chaque ligne d'un résultat, comme définir une
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:black; font-family:Arial; font-size:9pt"&gt;concaténation de caractères, lancer un traitement spécifique…
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:black; font-family:Arial; font-size:9pt"&gt;Comment éviter donc l'usage du curseur ?
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:#ff640e; font-family:Arial; font-size:12pt"&gt;&lt;strong&gt;METHODES ALTERNATIVES A L'UTILISATION DES CURSEURS
&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:black; font-family:Arial; font-size:9pt"&gt;Il existe de nombreuses techniques alternatives à l'utilisation des curseurs dont chacune s'adapte généralement plus
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:black; font-family:Arial; font-size:9pt"&gt;dans un contexte précis.
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:black; font-family:Arial; font-size:9pt"&gt;Explorons trois de ces techniques.
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:black; font-family:Arial; font-size:9pt"&gt;La première consiste à utiliser une requête avec paramètre, la deuxième à utiliser une variable de type table avec une
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:black; font-family:Arial; font-size:9pt"&gt;boucle While et la troisième à faire appel à définir une procédure stockée en .NET.
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:black; font-family:Arial; font-size:10pt"&gt;&lt;strong&gt;Requête avec paramètre
&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:black; font-family:Arial; font-size:9pt"&gt;Un besoin qui fréquemment est de pouvoir concaténer le résultat des champs d'une requête.
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:9pt"&gt;&lt;span style="color:black; font-family:Arial"&gt;Le principe est d'empiler les résultats d'un &lt;/span&gt;&lt;span style="color:#2462aa; font-family:Courier New"&gt;SELECT &lt;/span&gt;&lt;span style="color:black; font-family:Arial"&gt;dans une variable.
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:black; font-size:9pt"&gt;&lt;span style="font-family:Arial"&gt;Prenons un exemple sur la table &lt;/span&gt;&lt;span style="font-family:Courier New"&gt;HumanResources.Department &lt;/span&gt;&lt;span style="font-family:Arial"&gt;de la base exemple de SQL Server 2005, &lt;/span&gt;&lt;span style="font-family:Courier New"&gt;AdventureWorks&lt;/span&gt;&lt;span style="font-family:Arial"&gt;.
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:black; font-family:Arial; font-size:9pt"&gt;Concaténons le nom des départements.
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:9pt"&gt;&lt;span style="color:black; font-family:Arial"&gt;La fonction &lt;/span&gt;&lt;span style="color:#9763ae; font-family:Courier New"&gt;COALESCE &lt;/span&gt;&lt;span style="color:black; font-family:Arial"&gt;permet de traiter le cas des valeurs nulles.
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:black; font-family:Arial; font-size:10pt"&gt;&lt;strong&gt;Variable table avec une boucle While
&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:black; font-family:Arial; font-size:9pt"&gt;Le principe est d'utiliser une variable de type table, de l'alimenter et boucler en fonction du nombre de lignes insérées,
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:9pt"&gt;&lt;span style="color:black; font-family:Arial"&gt;information obtenue grâce à la variable globale &lt;/span&gt;&lt;span style="color:#910e83; font-family:Courier New"&gt;@@ROWCOUNT&lt;/span&gt;&lt;span style="color:black; font-family:Arial"&gt;.
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:black; font-family:Arial; font-size:9pt"&gt;A la différence de la première technique, celle-ci permet d'effectuer un traitement pour chaque ligne recherchée.
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:black; font-family:Arial; font-size:9pt"&gt;Sur ce principe recompilons chaque procédure de notre base à l'aide du code suivant :
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:black; font-family:Arial; font-size:9pt"&gt;La liste des procédures de la base est obtenue en interrogeant la vue système de SQL Server 2005 sys.objects. Pour
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:black; font-family:Arial; font-size:9pt"&gt;les versions ultérieures, il faudra utiliser la vue sysobjects. Une colonne de type IDENTITY a été définie sur notre variable
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:black; font-family:Arial; font-size:9pt"&gt;table afin de pouvoir effectuer le traitement définie sur chaque élément de notre résultat.
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:#ff640e; font-family:Arial; font-size:12pt"&gt;&lt;strong&gt;Procédure en C#
&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:black; font-family:Arial; font-size:9pt"&gt;L'apport de la CLR dans SQL Server donne une très grande richesse pour certains traitements la manipulation de
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:black; font-family:Arial; font-size:9pt"&gt;caractères ou des calculs mathématiques qui sont moins efficaces en T-SQL et surtout plus fastidieux à écrire.
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:black; font-family:Arial; font-size:9pt"&gt;Regardons à travers l'exemple ci-dessous le fonctionnement d'une procédure en C#.
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:black; font-family:Arial; font-size:9pt"&gt;La manière de coder une procédure en .NET est très proche de celle employée dans ADO.NET.
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:black; font-family:Arial; font-size:9pt"&gt;Les différences notables sont surtout au niveau de l'objet « connection » et de l'objet « SqlPipe » permet de définir le
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:black; font-family:Arial; font-size:9pt"&gt;« resultset » à renvoyer au client.
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:black; font-family:Arial; font-size:9pt"&gt;L'instruction ("context connection=true")) précise que la connexion utilisée est celle de SQL Server. Dans cet exemple, l'ob-
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New; font-size:8pt"&gt;&lt;span style="color:#2462aa"&gt;USE &lt;/span&gt;&lt;span style="color:black"&gt;AdventureWorks
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New; font-size:8pt"&gt;&lt;span style="color:#2462aa"&gt;DECLARE &lt;/span&gt;&lt;span style="color:black"&gt;@DptName &lt;/span&gt;&lt;span style="color:#2462aa"&gt;varchar&lt;/span&gt;&lt;span style="color:black"&gt;(max);
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New; font-size:8pt"&gt;&lt;span style="color:#2462aa"&gt;SET &lt;/span&gt;&lt;span style="color:black"&gt;@DptName = &lt;/span&gt;&lt;span style="color:#fa023a"&gt;''&lt;/span&gt;&lt;span style="color:black"&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New; font-size:8pt"&gt;&lt;span style="color:#2462aa"&gt;select &lt;/span&gt;&lt;span style="color:black"&gt;@DptName= @DptName + &lt;/span&gt;&lt;span style="color:#910e83"&gt;COALESCE&lt;/span&gt;&lt;span style="color:black"&gt;(&lt;/span&gt;&lt;span style="color:#2462aa"&gt;Name &lt;/span&gt;&lt;span style="color:black"&gt;+&lt;/span&gt;&lt;span style="color:#fa023a"&gt;','&lt;/span&gt;&lt;span style="color:black"&gt;,&lt;/span&gt;&lt;span style="color:#fa023a"&gt;''&lt;/span&gt;&lt;span style="color:black"&gt;) from HumanResources.Department;
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New; font-size:8pt"&gt;&lt;span style="color:#2462aa"&gt;IF &lt;/span&gt;&lt;span style="color:black"&gt;@DptName IS NOT NULL
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New; font-size:8pt"&gt;&lt;span style="color:#2462aa"&gt;SET &lt;/span&gt;&lt;span style="color:black"&gt;@DptName = &lt;/span&gt;&lt;span style="color:#910e83"&gt;SUBSTRING&lt;/span&gt;&lt;span style="color:black"&gt;(@DptName,1,&lt;/span&gt;&lt;span style="color:#910e83"&gt;LEN&lt;/span&gt;&lt;span style="color:black"&gt;(@DptName)-1)
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New; font-size:8pt"&gt;&lt;span style="color:#2462aa"&gt;SELECT &lt;/span&gt;&lt;span style="color:black"&gt;@DptName
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:#2462aa; font-family:Courier New; font-size:8pt"&gt;SET NOCOUNT ON
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New; font-size:8pt"&gt;&lt;span style="color:#2462aa"&gt;DECLARE &lt;/span&gt;&lt;span style="color:black"&gt;@rows &lt;/span&gt;&lt;span style="color:#2462aa"&gt;int&lt;/span&gt;&lt;span style="color:black"&gt;, @j &lt;/span&gt;&lt;span style="color:#2462aa"&gt;int;
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New; font-size:8pt"&gt;&lt;span style="color:#2462aa"&gt;DECLARE &lt;/span&gt;&lt;span style="color:black"&gt;@schemaName &lt;/span&gt;&lt;span style="color:#2462aa"&gt;nvarchar&lt;/span&gt;&lt;span style="color:black"&gt;(128);
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New; font-size:8pt"&gt;&lt;span style="color:#2462aa"&gt;DECLARE &lt;/span&gt;&lt;span style="color:black"&gt;@name &lt;/span&gt;&lt;span style="color:#2462aa"&gt;nvarchar&lt;/span&gt;&lt;span style="color:black"&gt;(128);
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New; font-size:8pt"&gt;&lt;span style="color:#2462aa"&gt;DECLARE &lt;/span&gt;&lt;span style="color:black"&gt;@procName &lt;/span&gt;&lt;span style="color:#2462aa"&gt;nvarchar&lt;/span&gt;&lt;span style="color:black"&gt;(128);
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New; font-size:8pt"&gt;&lt;span style="color:#2462aa"&gt;DECLARE &lt;/span&gt;&lt;span style="color:black"&gt;@procTable &lt;/span&gt;&lt;span style="color:#2462aa"&gt;TABLE&lt;/span&gt;&lt;span style="color:black"&gt;(pk int &lt;/span&gt;&lt;span style="color:#2462aa"&gt;IDENTITY &lt;/span&gt;&lt;span style="color:black"&gt;(1, 1),schema_name &lt;/span&gt;&lt;span style="color:#2462aa"&gt;nvarchar&lt;/span&gt;&lt;span style="color:black"&gt;(128) , name &lt;/span&gt;&lt;span style="color:#2462aa"&gt;nvarchar&lt;/span&gt;&lt;span style="color:black"&gt;(128));
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New; font-size:8pt"&gt;&lt;span style="color:#2462aa"&gt;INSERT INTO &lt;/span&gt;&lt;span style="color:black"&gt;@procTable
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New; font-size:8pt"&gt;&lt;span style="color:#2462aa"&gt;SELECT &lt;/span&gt;&lt;span style="color:black"&gt;schema_name(schema_id),&lt;/span&gt;&lt;span style="color:#2462aa"&gt;name FROM &lt;/span&gt;&lt;span style="color:#029272"&gt;sys.objects &lt;/span&gt;&lt;span style="color:#2462aa"&gt;WHERE type &lt;/span&gt;&lt;span style="color:black"&gt;in (&lt;/span&gt;&lt;span style="color:#fa023a"&gt;'P'&lt;/span&gt;&lt;span style="color:black"&gt;,&lt;/span&gt;&lt;span style="color:#fa023a"&gt;'U'&lt;/span&gt;&lt;span style="color:black"&gt;,&lt;/span&gt;&lt;span style="color:#fa023a"&gt;'V'&lt;/span&gt;&lt;span style="color:black"&gt;) and &lt;/span&gt;&lt;span style="color:#2462aa"&gt;name &lt;/span&gt;&lt;span style="color:black"&gt;not
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New; font-size:8pt"&gt;&lt;span style="color:black"&gt;in(&lt;/span&gt;&lt;span style="color:#fa023a"&gt;'sp_helpdiagrams'&lt;/span&gt;&lt;span style="color:black"&gt;,&lt;/span&gt;&lt;span style="color:#fa023a"&gt;'sp_creatediagram'&lt;/span&gt;&lt;span style="color:black"&gt;,&lt;/span&gt;&lt;span style="color:#fa023a"&gt;'sp_alterdiagram'&lt;/span&gt;&lt;span style="color:black"&gt;, &lt;/span&gt;&lt;span style="color:#fa023a"&gt;'sp_dropdiagram'&lt;/span&gt;&lt;span style="color:black"&gt;, &lt;/span&gt;&lt;span style="color:#fa023a"&gt;'sp_renamediagram'&lt;/span&gt;&lt;span style="color:black"&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New; font-size:8pt"&gt;&lt;span style="color:#fa023a"&gt;'sp_upgraddiagrams'&lt;/span&gt;&lt;span style="color:black"&gt;,&lt;/span&gt;&lt;span style="color:#fa023a"&gt;'sp_helpdiagramdefinition'&lt;/span&gt;&lt;span style="color:black"&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New; font-size:8pt"&gt;&lt;span style="color:#2462aa"&gt;SET &lt;/span&gt;&lt;span style="color:black"&gt;@rows = &lt;/span&gt;&lt;span style="color:#910e83"&gt;@@ROWCOUNT&lt;/span&gt;&lt;span style="color:black"&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New; font-size:8pt"&gt;&lt;span style="color:#2462aa"&gt;SET &lt;/span&gt;&lt;span style="color:black"&gt;@j = 1;
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New; font-size:8pt"&gt;&lt;span style="color:#2462aa"&gt;WHILE &lt;/span&gt;&lt;span style="color:black"&gt;@j&amp;lt;= @rows
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:#2462aa; font-family:Courier New; font-size:8pt"&gt;BEGIN
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New; font-size:8pt"&gt;&lt;span style="color:#2462aa"&gt;SELECT &lt;/span&gt;&lt;span style="color:black"&gt;@schemaName = schema_name, @name = &lt;/span&gt;&lt;span style="color:#2462aa"&gt;name FROM &lt;/span&gt;&lt;span style="color:black"&gt;@procTable &lt;/span&gt;&lt;span style="color:#2462aa"&gt;WHERE &lt;/span&gt;&lt;span style="color:black"&gt;pk = @j;
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New; font-size:8pt"&gt;&lt;span style="color:#2462aa"&gt;SET &lt;/span&gt;&lt;span style="color:black"&gt;@procName = @schemaName +'.'+@name
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New; font-size:8pt"&gt;&lt;span style="color:#2462aa"&gt;EXECUTE &lt;/span&gt;&lt;span style="color:#ff640e"&gt;sp_recompile &lt;/span&gt;&lt;span style="color:black"&gt;@procName
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New; font-size:8pt"&gt;&lt;span style="color:#2462aa"&gt;SET &lt;/span&gt;&lt;span style="color:black"&gt;@j = @j + 1;
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:#2462aa; font-family:Courier New; font-size:8pt"&gt;END;
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:black; font-family:Arial; font-size:9pt"&gt;jet SqlPipe renvoie une chaîne de caractères mais nous pouvons aussi renvoyer un enregistrement ou une table.
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:black; font-family:Arial; font-size:9pt"&gt;Notons tout de même à propos de cette nouvelle fonctionnalité que les manipulations d'ensembles seront toujours
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:black; font-family:Arial; font-size:9pt"&gt;plus performantes à l'aide des instructions T-SQL.
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:#ff640e; font-family:Arial; font-size:12pt"&gt;&lt;strong&gt;A PROPOS DES PERFORMANCES
&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:black; font-family:Arial; font-size:9pt"&gt;Connaissez-vous la règle des 80-20 ? Elle consiste à optimiser 20 pourcent des traitements les plus couteux pour
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:black; font-family:Arial; font-size:9pt"&gt;améliorer 80 pourcent des performances du serveur.
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:black; font-family:Arial; font-size:9pt"&gt;Chaque base de données possède ses spécificités. Ainsi, même deux bases ayant la même structure et des volumétries
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:black; font-family:Arial; font-size:9pt"&gt;identiques peuvent avoir des performances différentes.
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:black; font-family:Arial; font-size:9pt"&gt;En conclusion, ne vous jetez pas sur la réécriture de tous vos curseurs et passez, au contraire, davantage de temps
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:black; font-family:Arial; font-size:9pt"&gt;sur vos traitements couteux en ressources, d'autant que, parfois, le curseur sera plus performant que d'autres techniques…
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:black; font-family:Arial; font-size:9pt"&gt;SQL Server nous fournit plusieurs d'outils de monitoring tels que le profiler, le perfmon, les instructions SET
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:black; font-family:Arial; font-size:9pt"&gt;STATISTICS IO, SET STATISTICS TIME…
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New; font-size:8pt"&gt;&lt;span style="color:#2462aa"&gt;using &lt;/span&gt;&lt;span style="color:black"&gt;System.Data;
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New; font-size:8pt"&gt;&lt;span style="color:#2462aa"&gt;using &lt;/span&gt;&lt;span style="color:black"&gt;System.Data.SqlClient;
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New; font-size:8pt"&gt;&lt;span style="color:#2462aa"&gt;using &lt;/span&gt;&lt;span style="color:black"&gt;System.Transactions;
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New; font-size:8pt"&gt;&lt;span style="color:#2462aa"&gt;using &lt;/span&gt;&lt;span style="color:black"&gt;Microsoft.SqlServer.Server;
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New; font-size:8pt"&gt;&lt;span style="color:#2462aa"&gt;public partial class &lt;/span&gt;&lt;span style="color:black"&gt;StoredProcedures
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:black; font-family:Courier New; font-size:8pt"&gt;{
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New; font-size:8pt"&gt;&lt;span style="color:black"&gt;[Microsoft.SqlServer.Server.&lt;/span&gt;&lt;span style="color:#029272"&gt;SqlProcedure&lt;/span&gt;&lt;span style="color:black"&gt;()]
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New; font-size:8pt"&gt;&lt;span style="color:#2462aa"&gt;public static void &lt;/span&gt;&lt;span style="color:black"&gt;SampleSP(&lt;/span&gt;&lt;span style="color:#2462aa"&gt;int &lt;/span&gt;&lt;span style="color:black"&gt;rating)
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:black; font-family:Courier New; font-size:8pt"&gt;{
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New; font-size:8pt"&gt;&lt;span style="color:#2462aa"&gt;using &lt;/span&gt;&lt;span style="color:black"&gt;(&lt;/span&gt;&lt;span style="color:#029272"&gt;SqlConnection &lt;/span&gt;&lt;span style="color:black"&gt;conn = &lt;/span&gt;&lt;span style="color:#2462aa"&gt;new &lt;/span&gt;&lt;span style="color:#029272"&gt;SqlConnection&lt;/span&gt;&lt;span style="color:black"&gt;(&lt;/span&gt;&lt;span style="color:#fa023a"&gt;"context connection=true"&lt;/span&gt;&lt;span style="color:black"&gt;))
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:black; font-family:Courier New; font-size:8pt"&gt;{
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:black; font-family:Courier New; font-size:8pt"&gt;conn.Open();
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New; font-size:8pt"&gt;&lt;span style="color:#2462aa"&gt;string &lt;/span&gt;&lt;span style="color:black"&gt;rsResult;
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New; font-size:8pt"&gt;&lt;span style="color:#029272"&gt;SqlCommand &lt;/span&gt;&lt;span style="color:black"&gt;cmd = &lt;/span&gt;&lt;span style="color:#2462aa"&gt;new &lt;/span&gt;&lt;span style="color:#029272"&gt;SqlCommand&lt;/span&gt;&lt;span style="color:black"&gt;(
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New; font-size:8pt"&gt;&lt;span style="color:#fa023a"&gt;"SELECT VendorID, AccountNumber, Name FROM Purchasing.Vendor " &lt;/span&gt;&lt;span style="color:black"&gt;+
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New; font-size:8pt"&gt;&lt;span style="color:#fa023a"&gt;"WHERE CreditRating &amp;lt;= @rating", &lt;/span&gt;&lt;span style="color:black"&gt;conn);
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:black; font-family:Courier New; font-size:8pt"&gt;cmd.Parameters.AddWithValue("@rating", rating);
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New; font-size:8pt"&gt;&lt;span style="color:#029272"&gt;SqlDataReader &lt;/span&gt;&lt;span style="color:black"&gt;r = cmd.ExecuteReader();
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New; font-size:8pt"&gt;&lt;span style="color:#2462aa"&gt;while &lt;/span&gt;&lt;span style="color:black"&gt;(r.Read())
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:black; font-family:Courier New; font-size:8pt"&gt;{
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:#029272; font-family:Courier New; font-size:8pt"&gt;// effectue des traitements dans la boucle
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:black; font-family:Courier New; font-size:8pt"&gt;}
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New; font-size:8pt"&gt;&lt;span style="color:#029272"&gt;SqlContext&lt;/span&gt;&lt;span style="color:black"&gt;.Pipe.Send(rsResult);
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:black; font-family:Courier New; font-size:8pt"&gt;}
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:black; font-family:Courier New; font-size:8pt"&gt;}
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:black; font-family:Courier New; font-size:8pt"&gt;}
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:#ff401a; font-family:Arial; font-size:7pt"&gt;&lt;strong&gt;REFERENCES
&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:black; font-family:Arial; font-size:7pt"&gt;&lt;strong&gt;T-SQL Coding standards :
&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:black; font-family:Arial; font-size:7pt"&gt;http://msdn.microsoft.com/library/default.asp?url=/library/
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:black; font-family:Arial; font-size:7pt"&gt;en-us/dnsqlpro04/html/sp04l9.asp
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:black; font-family:Arial; font-size:7pt"&gt;&lt;strong&gt;Best SQL Server Performance Tuning Tips:
&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:black; font-family:Arial; font-size:7pt"&gt;http://www.sql-serverperformance.
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:black; font-family:Arial; font-size:7pt"&gt;com/best_sql_server_performance_tips.asp
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:black; font-family:Arial; font-size:7pt"&gt;&lt;strong&gt;Cursor performance :
&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:black; font-family:Arial; font-size:7pt"&gt;http://www.sqlteam.com/item.asp?ItemID=5761
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:black; font-family:Arial; font-size:7pt"&gt;&lt;strong&gt;Managed Data Access Inside SQL Server with ADO.NET and SQLCLR
&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:black; font-family:Arial; font-size:7pt"&gt;http://msdn.microsoft.com/library/default.asp?url=/library/
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:black; font-family:Arial; font-size:7pt"&gt;en-us/dnsql90/html/mandataaccess.asp&lt;/span&gt;&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8518125" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/lbanon/archive/tags/Astuces+sur+le+T-SQL/default.aspx">Astuces sur le T-SQL</category></item><item><title>Gestion des relations sous SSAS 2008</title><link>http://blogs.msdn.com/lbanon/archive/2008/01/15/gestion-des-relations-sous-ssas-2008.aspx</link><pubDate>Tue, 15 Jan 2008 23:34:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:7122230</guid><dc:creator>lbanon</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/lbanon/comments/7122230.aspx</comments><wfw:commentRss>http://blogs.msdn.com/lbanon/commentrss.aspx?PostID=7122230</wfw:commentRss><description>&lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Le dimension designer de la CTP 5 de SQL Server 2008 propose un nouvel onglet &amp;#171; l&amp;#8217;attribute relationShip &amp;#187;.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/lbanon/WindowsLiveWriter/GestiondesrelationssousSSAS2008_6D9/clip_image002_2.jpg"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="208" alt="clip_image002" src="http://blogs.msdn.com/blogfiles/lbanon/WindowsLiveWriter/GestiondesrelationssousSSAS2008_6D9/clip_image002_thumb.jpg" width="458" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#0000ff"&gt;Pourquoi rajouter cet onglet ?&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/lbanon/WindowsLiveWriter/GestiondesrelationssousSSAS2008_6D9/clip_image004_4.gif"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="38" alt="clip_image004" src="http://blogs.msdn.com/blogfiles/lbanon/WindowsLiveWriter/GestiondesrelationssousSSAS2008_6D9/clip_image004_thumb.gif" width="46" border="0" /&gt;&lt;/a&gt;&lt;font color="#0000ff"&gt;Repr&amp;#233;senter graphiquement les relations entre les diff&amp;#233;rents attributs d&amp;#233;finis &amp;#224; travers les hi&amp;#233;rarchies&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;Ainsi la copie d&amp;#8217;&amp;#233;cran ci-dessous mod&amp;#233;lise l&amp;#8217;ensemble des relations entre les diff&amp;#233;rents attributs des hi&amp;#233;rarchies pr&amp;#233;c&amp;#233;demment d&amp;#233;finis.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/lbanon/WindowsLiveWriter/GestiondesrelationssousSSAS2008_6D9/clip_image006_2.jpg"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="124" alt="clip_image006" src="http://blogs.msdn.com/blogfiles/lbanon/WindowsLiveWriter/GestiondesrelationssousSSAS2008_6D9/clip_image006_thumb.jpg" width="558" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/lbanon/WindowsLiveWriter/GestiondesrelationssousSSAS2008_6D9/clip_image004%5B1%5D.gif"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="38" alt="clip_image004[1]" src="http://blogs.msdn.com/blogfiles/lbanon/WindowsLiveWriter/GestiondesrelationssousSSAS2008_6D9/clip_image004%5B1%5D_thumb.gif" width="46" border="0" /&gt;&lt;/a&gt;&lt;font color="#0000ff"&gt;Cr&amp;#233;er une propri&amp;#233;t&amp;#233; de membre d&amp;#8217;un attribut qui peut par exemple &amp;#234;tre utilis&amp;#233; pour faire des tris&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;Sur la copie d&amp;#8217;&amp;#233;cran ci-dessous, l&amp;#8217;attribut &amp;#171; Month Name &amp;#187; contient l&amp;#8217;attribut Month of Year&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/lbanon/WindowsLiveWriter/GestiondesrelationssousSSAS2008_6D9/clip_image008_2.jpg"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="81" alt="clip_image008" src="http://blogs.msdn.com/blogfiles/lbanon/WindowsLiveWriter/GestiondesrelationssousSSAS2008_6D9/clip_image008_thumb.jpg" width="543" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/lbanon/WindowsLiveWriter/GestiondesrelationssousSSAS2008_6D9/clip_image004%5B2%5D.gif"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="38" alt="clip_image004[2]" src="http://blogs.msdn.com/blogfiles/lbanon/WindowsLiveWriter/GestiondesrelationssousSSAS2008_6D9/clip_image004%5B2%5D_thumb.gif" width="46" border="0" /&gt;&lt;/a&gt;&lt;font color="#0000ff"&gt;Donner une vision globale des types de relations utilis&amp;#233;es.&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;Une bonne pratique est de d&amp;#233;finir des relations de type &amp;#171; Rigid &amp;#187; lorsque les relations entre les attributs n&amp;#8217;&amp;#233;voluent pas dans le temps.&lt;/p&gt;  &lt;p&gt;Comme le montre la copie d'&amp;#233;cran ci-dessus, les relations de type &amp;quot;Rigid&amp;quot; sont repr&amp;#233;sent&amp;#233;es avec des fl&amp;#232;ches en gras.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;u&gt;Mode d&amp;#8217;emploi&lt;/u&gt;&lt;/b&gt; :&lt;/p&gt;  &lt;p&gt;Les relations se cr&amp;#233;ent &amp;#224; l&amp;#8217;aide de glisser-d&amp;#233;placer d&amp;#8217;un attribut sur un autre.&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=7122230" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/lbanon/archive/tags/SSAS+2008/default.aspx">SSAS 2008</category><category domain="http://blogs.msdn.com/lbanon/archive/tags/SSAS/default.aspx">SSAS</category></item><item><title>Renvoyer les N enregistrements d’une table jointe</title><link>http://blogs.msdn.com/lbanon/archive/2007/12/23/renvoyer-les-n-enregistrements-d-une-table-jointe.aspx</link><pubDate>Sun, 23 Dec 2007 15:28:52 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:6844920</guid><dc:creator>lbanon</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/lbanon/comments/6844920.aspx</comments><wfw:commentRss>http://blogs.msdn.com/lbanon/commentrss.aspx?PostID=6844920</wfw:commentRss><description>&lt;p&gt;&lt;span style="color:#17365d; font-size:12pt; text-decoration:underline"&gt;&lt;strong&gt;Utilisation de la fonction CROSS APPLY
&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;Cette nouvelle fonction en plus d'être performante simplifie grandement l'écriture de certaines requêtes comme celui de retourner les n enregistrements d'une table jointe.
&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New; font-size:8pt"&gt;&lt;span style="color:blue"&gt;SELECT&lt;/span&gt;
		&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New; font-size:8pt"&gt;    CustomerID&lt;span style="color:gray"&gt;,&lt;/span&gt;
		&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New; font-size:8pt"&gt;   L&lt;span style="color:gray"&gt;.&lt;/span&gt;SalesOrderID 
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New; font-size:8pt"&gt;&lt;span style="color:blue"&gt;FROM&lt;/span&gt;
		&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New; font-size:8pt"&gt;    Sales&lt;span style="color:gray"&gt;.&lt;/span&gt;Customer c 
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New; font-size:8pt"&gt;&lt;span style="color:gray"&gt;CROSS&lt;/span&gt;
			&lt;span style="color:gray"&gt;APPLY&lt;/span&gt;
		&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New; font-size:8pt"&gt;&lt;span style="color:gray"&gt;(&lt;/span&gt;
		&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New; font-size:8pt"&gt;
			&lt;span style="color:blue"&gt;SELECT&lt;/span&gt;
		&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New; font-size:8pt"&gt;
			&lt;span style="color:blue"&gt;top&lt;/span&gt; 5 SalesOrderID 
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New; font-size:8pt"&gt;
			&lt;span style="color:blue"&gt;FROM&lt;/span&gt;
		&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New; font-size:8pt"&gt;            Sales&lt;span style="color:gray"&gt;.&lt;/span&gt;SalesOrderHeader s 
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New; font-size:8pt"&gt;
			&lt;span style="color:blue"&gt;WHERE&lt;/span&gt;
		&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New; font-size:8pt"&gt;            s&lt;span style="color:gray"&gt;.&lt;/span&gt;CustomerID &lt;span style="color:gray"&gt;=&lt;/span&gt; c&lt;span style="color:gray"&gt;.&lt;/span&gt;CustomerID 
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New; font-size:8pt"&gt;
			&lt;span style="color:blue"&gt;ORDER&lt;/span&gt;
			&lt;span style="color:blue"&gt;BY&lt;/span&gt;
		&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New; font-size:8pt"&gt;            SalesOrderID &lt;span style="color:blue"&gt;DESC
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;         
 &lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New; font-size:8pt"&gt;
			&lt;span style="color:gray"&gt;)&lt;/span&gt; L 
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New; font-size:8pt"&gt;&lt;span style="color:blue"&gt;ORDER&lt;/span&gt;
			&lt;span style="color:blue"&gt;BY&lt;/span&gt;
		&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New; font-size:8pt"&gt;    CustomerID 
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=6844920" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/lbanon/archive/tags/Astuces+sur+le+T-SQL/default.aspx">Astuces sur le T-SQL</category></item><item><title>Faire une concaténation sur un résultat d’une requête</title><link>http://blogs.msdn.com/lbanon/archive/2007/12/23/faire-une-concat-nation-sur-un-r-sultat-d-une-requ-te.aspx</link><pubDate>Sun, 23 Dec 2007 15:25:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:6844896</guid><dc:creator>lbanon</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/lbanon/comments/6844896.aspx</comments><wfw:commentRss>http://blogs.msdn.com/lbanon/commentrss.aspx?PostID=6844896</wfw:commentRss><description>&lt;p&gt;&lt;span style="color:#17365d; font-size:12pt; text-decoration:underline"&gt;&lt;strong&gt;Premier cas : Concaténer le résultat d'une colonne sur une ligne
&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;Le principe est d'empiler les résultats d'un&lt;span style="font-size:9pt"&gt;&lt;span style="color:black; font-family:Arial"&gt;
			&lt;/span&gt;&lt;span style="color:#2462aa; font-family:Courier New"&gt;SELECT &lt;/span&gt;&lt;/span&gt;dans une variable.&lt;span style="color:black; font-family:Arial; font-size:9pt"&gt;
		&lt;/span&gt;&lt;/p&gt;&lt;p&gt;Prenons un exemple sur la table&lt;span style="color:black; font-size:9pt"&gt;&lt;span style="font-family:Arial"&gt;
			&lt;/span&gt;&lt;span style="font-family:Courier New"&gt;HumanResources.Department &lt;/span&gt;&lt;/span&gt;de la base exemple de SQL Server 2005,&lt;span style="color:black; font-size:9pt"&gt;&lt;span style="font-family:Arial"&gt;
			&lt;/span&gt;&lt;span style="font-family:Courier New"&gt;AdventureWorks&lt;/span&gt;&lt;span style="font-family:Arial"&gt;.
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;Concaténons le nom des départements&lt;span style="color:black; font-family:Arial; font-size:9pt"&gt;.
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New; font-size:8pt"&gt;&lt;span style="color:blue"&gt;USE&lt;/span&gt; AdventureWorks
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New; font-size:8pt"&gt;&lt;span style="color:blue"&gt;DECLARE&lt;/span&gt; @DptName &lt;span style="color:blue"&gt;varchar&lt;/span&gt;&lt;span style="color:gray"&gt;(&lt;/span&gt;&lt;span style="color:fuchsia"&gt;max&lt;/span&gt;&lt;span style="color:gray"&gt;);
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New; font-size:8pt"&gt;&lt;span style="color:blue"&gt;SET&lt;/span&gt; @DptName &lt;span style="color:gray"&gt;=&lt;/span&gt;
			&lt;span style="color:red"&gt;''&lt;/span&gt;&lt;span style="color:gray"&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New; font-size:8pt"&gt;&lt;span style="color:blue"&gt;select&lt;/span&gt; @DptName&lt;span style="color:gray"&gt;=&lt;/span&gt; @DptName &lt;span style="color:gray"&gt;+&lt;/span&gt;
			&lt;span style="color:fuchsia"&gt;COALESCE&lt;/span&gt;&lt;span style="color:gray"&gt;(&lt;/span&gt;&lt;span style="color:blue"&gt;Name&lt;/span&gt;
			&lt;span style="color:gray"&gt;+&lt;/span&gt;&lt;span style="color:red"&gt;','&lt;/span&gt;&lt;span style="color:gray"&gt;,&lt;/span&gt;&lt;span style="color:red"&gt;''&lt;/span&gt;&lt;span style="color:gray"&gt;)&lt;/span&gt;
			&lt;span style="color:blue"&gt;from&lt;/span&gt; HumanResources&lt;span style="color:gray"&gt;.&lt;/span&gt;Department&lt;span style="color:gray"&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New; font-size:8pt"&gt;&lt;span style="color:blue"&gt;IF&lt;/span&gt; @DptName &lt;span style="color:gray"&gt;IS&lt;/span&gt;
			&lt;span style="color:gray"&gt;NOT&lt;/span&gt;
			&lt;span style="color:gray"&gt;NULL
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New; font-size:8pt"&gt;&lt;span style="color:blue"&gt;SET&lt;/span&gt; @DptName &lt;span style="color:gray"&gt;=&lt;/span&gt;
			&lt;span style="color:fuchsia"&gt;SUBSTRING&lt;/span&gt;&lt;span style="color:gray"&gt;(&lt;/span&gt;@DptName&lt;span style="color:gray"&gt;,&lt;/span&gt;1&lt;span style="color:gray"&gt;,&lt;/span&gt;&lt;span style="color:fuchsia"&gt;LEN&lt;/span&gt;&lt;span style="color:gray"&gt;(&lt;/span&gt;@DptName&lt;span style="color:gray"&gt;)-&lt;/span&gt;1&lt;span style="color:gray"&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New; font-size:8pt"&gt;&lt;span style="color:blue"&gt;SELECT&lt;/span&gt; @DptName
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p&gt;Cette méthode possède l'avantage de travailler de manière ensembliste et ne fait pas appel à un curseur.
&lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p&gt;&lt;span style="color:#17365d; font-size:12pt; text-decoration:underline"&gt;&lt;strong&gt;Deuxième cas : Concaténer les lignes jointes
&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;Traitons ce cas de trois manières et comparons le temps CPU à l'aide de l'instruction &lt;span style="font-family:Courier New; font-size:8pt"&gt;&lt;span style="color:blue"&gt;set&lt;/span&gt;
			&lt;span style="color:blue"&gt;statistics&lt;/span&gt;
			&lt;span style="color:blue"&gt;time&lt;/span&gt;
			&lt;span style="color:blue"&gt;ON&lt;/span&gt;&lt;/span&gt;.
&lt;/p&gt;&lt;p&gt;&lt;span style="text-decoration:underline"&gt;Le premier cas de figure&lt;/span&gt; utilise une fonction explicitement crée
&lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p&gt;&lt;span style="color:blue; font-family:Courier New; font-size:8pt"&gt;CREATE FUNCTION dbo.GetMedalResult 
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:blue; font-family:Courier New; font-size:8pt"&gt;( 
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New; font-size:8pt"&gt;    @CustomerID &lt;span style="color:blue"&gt;bigint&lt;/span&gt;
		&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New; font-size:8pt"&gt;&lt;span style="color:gray"&gt;)&lt;/span&gt;
		&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New; font-size:8pt"&gt;&lt;span style="color:blue"&gt;RETURNS&lt;/span&gt;
			&lt;span style="color:blue"&gt;VARCHAR&lt;/span&gt;&lt;span style="color:gray"&gt;(&lt;/span&gt;&lt;span style="color:fuchsia"&gt;max&lt;/span&gt;&lt;span style="color:gray"&gt;)&lt;/span&gt;
		&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New; font-size:8pt"&gt;&lt;span style="color:blue"&gt;AS&lt;/span&gt;
		&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New; font-size:8pt"&gt;&lt;span style="color:blue"&gt;BEGIN&lt;/span&gt;
		&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New; font-size:8pt"&gt;    &lt;span style="color:blue"&gt;DECLARE&lt;/span&gt; @r &lt;span style="color:blue"&gt;VARCHAR&lt;/span&gt;&lt;span style="color:gray"&gt;(&lt;/span&gt;&lt;span style="color:fuchsia"&gt;max&lt;/span&gt;&lt;span style="color:gray"&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New; font-size:8pt"&gt;      &lt;span style="color:blue"&gt;SET&lt;/span&gt;  @r &lt;span style="color:gray"&gt;=&lt;/span&gt;
			&lt;span style="color:red"&gt;''
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New; font-size:8pt"&gt;    &lt;span style="color:blue"&gt;SELECT&lt;/span&gt; @r &lt;span style="color:gray"&gt;=&lt;/span&gt; @r &lt;span style="color:gray"&gt;+&lt;/span&gt;
			&lt;span style="color:fuchsia"&gt;COALESCE&lt;/span&gt;&lt;span style="color:gray"&gt;(&lt;/span&gt;&lt;span style="color:fuchsia"&gt;convert&lt;/span&gt;&lt;span style="color:gray"&gt;(&lt;/span&gt;&lt;span style="color:blue"&gt;varchar&lt;/span&gt;&lt;span style="color:gray"&gt;(&lt;/span&gt;&lt;span style="color:fuchsia"&gt;max&lt;/span&gt;&lt;span style="color:gray"&gt;),&lt;/span&gt;SalesOrderID &lt;span style="color:gray"&gt;)+&lt;/span&gt;&lt;span style="color:red"&gt;','&lt;/span&gt;&lt;span style="color:gray"&gt;,&lt;/span&gt;
			&lt;span style="color:red"&gt;''&lt;/span&gt;&lt;span style="color:gray"&gt;)&lt;/span&gt;         
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New; font-size:8pt"&gt;        &lt;span style="color:blue"&gt;FROM&lt;/span&gt; Sales&lt;span style="color:gray"&gt;.&lt;/span&gt;SalesOrderHeader 
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New; font-size:8pt"&gt;        &lt;span style="color:blue"&gt;WHERE&lt;/span&gt; CustomerID &lt;span style="color:gray"&gt;=&lt;/span&gt; @CustomerID 
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New; font-size:8pt"&gt;      &lt;span style="color:blue"&gt;IF&lt;/span&gt; @r &lt;span style="color:gray"&gt;&amp;lt;&amp;gt;&lt;/span&gt;
			&lt;span style="color:red"&gt;''
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New; font-size:8pt"&gt;      &lt;span style="color:blue"&gt;SET&lt;/span&gt; @r &lt;span style="color:gray"&gt;=&lt;/span&gt;
			&lt;span style="color:fuchsia"&gt;SUBSTRING&lt;/span&gt;&lt;span style="color:gray"&gt;(&lt;/span&gt;@r&lt;span style="color:gray"&gt;,&lt;/span&gt;1&lt;span style="color:gray"&gt;,&lt;/span&gt;&lt;span style="color:fuchsia"&gt;LEN&lt;/span&gt;&lt;span style="color:gray"&gt;(&lt;/span&gt;@r&lt;span style="color:gray"&gt;)-&lt;/span&gt;1&lt;span style="color:gray"&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New; font-size:8pt"&gt;    &lt;span style="color:blue"&gt;RETURN&lt;/span&gt; @r 
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New; font-size:8pt"&gt;&lt;span style="color:blue"&gt;END&lt;/span&gt;
		&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New; font-size:8pt"&gt;GO 
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p&gt;La requête &lt;span style="color:blue; font-family:Courier New; font-size:8pt"&gt;
		&lt;/span&gt;&lt;/p&gt;&lt;div&gt;&lt;table style="border-collapse:collapse" border="0"&gt;&lt;colgroup&gt;&lt;col style="width:614px"/&gt;&lt;/colgroup&gt;&lt;tbody valign="top"&gt;&lt;tr style="height: 38px"&gt;&lt;td style="padding-left: 7px; padding-right: 7px; border-top:  solid black 0.5pt; border-left:  solid black 0.5pt; border-bottom:  solid black 0.5pt; border-right:  solid black 0.5pt"&gt;&lt;p&gt;&lt;span style="font-family:Courier New; font-size:8pt"&gt;&lt;span style="color:blue"&gt;SELECT&lt;/span&gt;   CustomerID&lt;span style="color:gray"&gt;,&lt;/span&gt; dbo&lt;span style="color:gray"&gt;.&lt;/span&gt;GetMedalResult&lt;span style="color:gray"&gt;(&lt;/span&gt;CustomerID&lt;span style="color:gray"&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New"&gt;&lt;span style="font-size:8pt"&gt;&lt;span style="color:blue"&gt;FROM&lt;/span&gt; Sales&lt;span style="color:gray"&gt;.&lt;/span&gt;Customer&lt;/span&gt;&lt;span style="font-size:10pt"&gt;
								&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New; font-size:8pt"&gt;&lt;span style="color:blue"&gt;order&lt;/span&gt;
								&lt;span style="color:blue"&gt;by&lt;/span&gt; CustomerID&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;p&gt; retourne le tableau suivant 
&lt;/p&gt;&lt;div style="margin-left: 3pt"&gt;&lt;table style="border-collapse:collapse" border="0"&gt;&lt;colgroup&gt;&lt;col style="width:95px"/&gt;&lt;col style="width:496px"/&gt;&lt;/colgroup&gt;&lt;tbody valign="top"&gt;&lt;tr style="height: 20px; background: #f79646"&gt;&lt;td vAlign="bottom" style="padding-left: 5px; padding-right: 5px; border-top:  solid #fac090 0.5pt; border-left:  solid #fac090 0.5pt; border-bottom:  solid #fac090 0.5pt; border-right:  none"&gt;&lt;p&gt;&lt;span style="color:white"&gt;&lt;strong&gt;CustomerID&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td vAlign="bottom" style="padding-left: 5px; padding-right: 5px; border-top:  solid #fac090 0.5pt; border-left:  none; border-bottom:  solid #fac090 0.5pt; border-right:  solid #fac090 0.5pt"&gt;&lt;p&gt;&lt;span style="color:white"&gt;&lt;strong&gt;SalesOrderIDs&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height: 20px; background: #fde9d9"&gt;&lt;td vAlign="bottom" style="padding-left: 5px; padding-right: 5px; border-top:  none; border-left:  solid #fac090 0.5pt; border-bottom:  solid #fac090 0.5pt; border-right:  none"&gt;&lt;p style="text-align: right"&gt;&lt;span style="color:black"&gt;1&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td vAlign="bottom" style="padding-left: 5px; padding-right: 5px; border-top:  none; border-left:  none; border-bottom:  solid #fac090 0.5pt; border-right:  solid #fac090 0.5pt"&gt;&lt;p&gt;&lt;span style="color:black"&gt;43860,44501,45283,46042&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height: 20px"&gt;&lt;td vAlign="bottom" style="padding-left: 5px; padding-right: 5px; border-top:  none; border-left:  solid #fac090 0.5pt; border-bottom:  solid #fac090 0.5pt; border-right:  none"&gt;&lt;p style="text-align: right"&gt;&lt;span style="color:black"&gt;2&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td vAlign="bottom" style="padding-left: 5px; padding-right: 5px; border-top:  none; border-left:  none; border-bottom:  solid #fac090 0.5pt; border-right:  solid #fac090 0.5pt"&gt;&lt;p&gt;&lt;span style="color:black"&gt;46976,47997,49054,50216,51728,57044,63198,69488&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height: 20px; background: #fde9d9"&gt;&lt;td vAlign="bottom" style="padding-left: 5px; padding-right: 5px; border-top:  none; border-left:  solid #fac090 0.5pt; border-bottom:  solid #fac090 0.5pt; border-right:  none"&gt;&lt;p style="text-align: right"&gt;&lt;span style="color:black"&gt;3&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td vAlign="bottom" style="padding-left: 5px; padding-right: 5px; border-top:  none; border-left:  none; border-bottom:  solid #fac090 0.5pt; border-right:  solid #fac090 0.5pt"&gt;&lt;p&gt;&lt;span style="color:black"&gt;44124,44791,45568,46377,47439,48378,49538,50748,53616,59011,65310,71889&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height: 20px"&gt;&lt;td vAlign="bottom" style="padding-left: 5px; padding-right: 5px; border-top:  none; border-left:  solid #fac090 0.5pt; border-bottom:  solid #fac090 0.5pt; border-right:  none"&gt;&lt;p style="text-align: right"&gt;&lt;span style="color:black"&gt;…&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td vAlign="bottom" style="padding-left: 5px; padding-right: 5px; border-top:  none; border-left:  none; border-bottom:  solid #fac090 0.5pt; border-right:  solid #fac090 0.5pt"&gt;&lt;p&gt;&lt;span style="color:black"&gt;…&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p&gt;&lt;span style="text-decoration:underline"&gt;&lt;strong&gt;Temps CPU&lt;/strong&gt;&lt;/span&gt; :
&lt;/p&gt;&lt;p&gt;Sur mon environnement de travail, j'obtiens les résultats suivant :&lt;span style="color:green; font-family:Courier New"&gt;
		&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:green; font-family:Courier New"&gt;CPU time = 3588 ms,  elapsed time = 3702 ms.&lt;/span&gt;
	&lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p&gt;&lt;span style="text-decoration:underline"&gt;Le deuxième cas de figure&lt;/span&gt; s'appuie sur les fonctionnalités de XML incluses dans le moteur SQL Server.&lt;span style="color:green; font-family:Courier New; font-size:10pt"&gt;
		&lt;/span&gt;&lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New; font-size:8pt"&gt;&lt;span style="color:blue"&gt;USE&lt;/span&gt; AdventureWorks 
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New; font-size:8pt"&gt;GO 
&lt;/span&gt;&lt;/p&gt;&lt;p&gt; 
 &lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New; font-size:8pt"&gt;&lt;span style="color:blue"&gt;SELECT&lt;/span&gt;
		&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New; font-size:8pt"&gt;    CustomerID&lt;span style="color:gray"&gt;,&lt;/span&gt;
		&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New; font-size:8pt"&gt;    SalesOrderIDs &lt;span style="color:gray"&gt;=&lt;/span&gt;
			&lt;span style="color:fuchsia"&gt;REPLACE&lt;/span&gt;&lt;span style="color:gray"&gt;(&lt;/span&gt;
		&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New; font-size:8pt"&gt;        &lt;span style="color:gray"&gt;(&lt;/span&gt;
		&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New; font-size:8pt"&gt;            &lt;span style="color:blue"&gt;SELECT&lt;/span&gt;
		&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New; font-size:8pt"&gt;                SalesOrderID &lt;span style="color:blue"&gt;AS&lt;/span&gt; [data()] 
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New; font-size:8pt"&gt;            &lt;span style="color:blue"&gt;FROM&lt;/span&gt;
		&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New; font-size:8pt"&gt;                Sales&lt;span style="color:gray"&gt;.&lt;/span&gt;SalesOrderHeader soh 
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New; font-size:8pt"&gt;            &lt;span style="color:blue"&gt;WHERE&lt;/span&gt;
		&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New; font-size:8pt"&gt;                soh&lt;span style="color:gray"&gt;.&lt;/span&gt;CustomerID &lt;span style="color:gray"&gt;=&lt;/span&gt; c&lt;span style="color:gray"&gt;.&lt;/span&gt;CustomerID 
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New; font-size:8pt"&gt;            &lt;span style="color:blue"&gt;ORDER&lt;/span&gt;
			&lt;span style="color:blue"&gt;BY&lt;/span&gt;
		&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New; font-size:8pt"&gt;                SalesOrderID 
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New; font-size:8pt"&gt;            &lt;span style="color:blue"&gt;FOR&lt;/span&gt;
			&lt;span style="color:blue"&gt;XML&lt;/span&gt;
			&lt;span style="color:blue"&gt;PATH&lt;/span&gt;
			&lt;span style="color:gray"&gt;(&lt;/span&gt;&lt;span style="color:red"&gt;''&lt;/span&gt;&lt;span style="color:gray"&gt;)&lt;/span&gt;
		&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New; font-size:8pt"&gt;        &lt;span style="color:gray"&gt;),&lt;/span&gt;
			&lt;span style="color:red"&gt;' '&lt;/span&gt;&lt;span style="color:gray"&gt;,&lt;/span&gt;
			&lt;span style="color:red"&gt;','&lt;/span&gt;&lt;span style="color:gray"&gt;)&lt;/span&gt;
		&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New; font-size:8pt"&gt;&lt;span style="color:blue"&gt;FROM&lt;/span&gt;
		&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New; font-size:8pt"&gt;    Sales&lt;span style="color:gray"&gt;.&lt;/span&gt;Customer c 
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New; font-size:8pt"&gt;&lt;span style="color:blue"&gt;ORDER&lt;/span&gt;
			&lt;span style="color:blue"&gt;BY&lt;/span&gt;
		&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New; font-size:8pt"&gt;    CustomerID 
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;p&gt;&lt;span style="text-decoration:underline"&gt;&lt;strong&gt;Temps CPU&lt;/strong&gt;&lt;/span&gt; :
&lt;/p&gt;&lt;p&gt;&lt;span style="color:green; font-family:Courier New"&gt;--CPU time = 265 ms,  elapsed time = 378 ms.&lt;/span&gt;
	&lt;/p&gt;&lt;p&gt;Le temps CPU est divisé par plus de 10 en utilisant la les fonctionnalités de XML incluses dans le moteur SQL Server. La fonction data renvoie les éléments sur une même ligne séparée d'un espace.
&lt;/p&gt;&lt;p&gt; 
 &lt;/p&gt;&lt;p&gt;&lt;span style="text-decoration:underline"&gt;Le troisième cas de figure &lt;/span&gt;s'appuie sur en plus des XML de la nouvelle clause SQL Server 2005 CROSS APPLY&lt;span style="font-family:Courier New; font-size:10pt"&gt;
		&lt;/span&gt;&lt;/p&gt;&lt;p&gt; 
 &lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New; font-size:8pt"&gt;&lt;span style="color:blue"&gt;USE&lt;/span&gt; AdventureWorks 
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New; font-size:8pt"&gt;GO 
&lt;/span&gt;&lt;/p&gt;&lt;p&gt; 
 &lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New; font-size:8pt"&gt;&lt;span style="color:blue"&gt;SELECT&lt;/span&gt;
		&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New; font-size:8pt"&gt;    CustomerID&lt;span style="color:gray"&gt;,&lt;/span&gt;
		&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New; font-size:8pt"&gt;    SalesOrderIDs &lt;span style="color:gray"&gt;=&lt;/span&gt;
			&lt;span style="color:gray"&gt;LEFT(&lt;/span&gt;o&lt;span style="color:gray"&gt;.&lt;/span&gt;list&lt;span style="color:gray"&gt;,&lt;/span&gt;
			&lt;span style="color:fuchsia"&gt;LEN&lt;/span&gt;&lt;span style="color:gray"&gt;(&lt;/span&gt;o&lt;span style="color:gray"&gt;.&lt;/span&gt;list&lt;span style="color:gray"&gt;)-&lt;/span&gt;1&lt;span style="color:gray"&gt;)&lt;/span&gt;
		&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New; font-size:8pt"&gt;&lt;span style="color:blue"&gt;FROM&lt;/span&gt;
		&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New; font-size:8pt"&gt;    Sales&lt;span style="color:gray"&gt;.&lt;/span&gt;Customer c 
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New; font-size:8pt"&gt;&lt;span style="color:gray"&gt;CROSS&lt;/span&gt;
			&lt;span style="color:gray"&gt;APPLY&lt;/span&gt;
		&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New; font-size:8pt"&gt;&lt;span style="color:gray"&gt;(&lt;/span&gt;
		&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New; font-size:8pt"&gt;        &lt;span style="color:blue"&gt;SELECT&lt;/span&gt;
		&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New; font-size:8pt"&gt;            &lt;span style="color:fuchsia"&gt;CONVERT&lt;/span&gt;&lt;span style="color:gray"&gt;(&lt;/span&gt;&lt;span style="color:blue"&gt;VARCHAR&lt;/span&gt;&lt;span style="color:gray"&gt;(&lt;/span&gt;12&lt;span style="color:gray"&gt;),&lt;/span&gt; SalesOrderID&lt;span style="color:gray"&gt;)&lt;/span&gt;
			&lt;span style="color:gray"&gt;+&lt;/span&gt;
			&lt;span style="color:red"&gt;','&lt;/span&gt;
			&lt;span style="color:blue"&gt;AS&lt;/span&gt; [text()] 
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New; font-size:8pt"&gt;        &lt;span style="color:blue"&gt;FROM&lt;/span&gt;
		&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New; font-size:8pt"&gt;            Sales&lt;span style="color:gray"&gt;.&lt;/span&gt;SalesOrderHeader s 
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New; font-size:8pt"&gt;        &lt;span style="color:blue"&gt;WHERE&lt;/span&gt;
		&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New; font-size:8pt"&gt;            s&lt;span style="color:gray"&gt;.&lt;/span&gt;CustomerID &lt;span style="color:gray"&gt;=&lt;/span&gt; c&lt;span style="color:gray"&gt;.&lt;/span&gt;CustomerID 
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New; font-size:8pt"&gt;        &lt;span style="color:blue"&gt;ORDER&lt;/span&gt;
			&lt;span style="color:blue"&gt;BY&lt;/span&gt;
		&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New; font-size:8pt"&gt;            SalesOrderID 
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New; font-size:8pt"&gt;        &lt;span style="color:blue"&gt;FOR&lt;/span&gt;
			&lt;span style="color:blue"&gt;XML&lt;/span&gt;
			&lt;span style="color:blue"&gt;PATH&lt;/span&gt;&lt;span style="color:gray"&gt;(&lt;/span&gt;&lt;span style="color:red"&gt;''&lt;/span&gt;&lt;span style="color:gray"&gt;)&lt;/span&gt;
		&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New; font-size:8pt"&gt;    &lt;span style="color:gray"&gt;)&lt;/span&gt; o &lt;span style="color:gray"&gt;(&lt;/span&gt;list&lt;span style="color:gray"&gt;)&lt;/span&gt;
		&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New; font-size:8pt"&gt;&lt;span style="color:blue"&gt;ORDER&lt;/span&gt;
			&lt;span style="color:blue"&gt;BY&lt;/span&gt;
		&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New; font-size:8pt"&gt;    CustomerID 
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="text-decoration:underline"&gt;&lt;strong&gt;Temps CPU&lt;/strong&gt;&lt;/span&gt; :
&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Courier New"&gt;&lt;span style="color:green"&gt;CPU time = 218 ms,  elapsed time = 330 ms.&lt;/span&gt;&lt;span style="font-size:8pt"&gt;
			&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;Le temps CPU est légèrement plus performant que le précédant cas de figure. &lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=6844896" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/lbanon/archive/tags/Astuces+sur+le+T-SQL/default.aspx">Astuces sur le T-SQL</category></item></channel></rss>