<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:thr="http://purl.org/syndication/thread/1.0" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Dejan Sarka: Posts</title>
    <link>http://blogs.solidq.com/dsarka</link>
    <description>SolidQ Blogs, Posts and Comments RSS </description>
    <item>
      <link>http://blogs.solidq.com/dsarka/Post.aspx?ID=147&amp;title=Kako+smo+po%c5%berli+NT+konferenco</link>
      <title>Kako smo požrli NT konferenco</title>
      <ItemID>147</ItemID>
      <pubDate>Mon, 29 Apr 2013 10:10:52 GMT</pubDate>
      <author>Dejan Sarka</author>
      <authorID>46</authorID>
      <wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.solidq.com/dsarka/_layouts/listfeed.aspx?List=%7b0efadf9d-cec9-4b8e-925d-3d4d30783dc8%7d</wfw:commentRss>
      <slash:comments xmlns:slash="http://purl.org/rss/1.0/modules/slash/">5</slash:comments>
      <comments>http://blogs.solidq.com/dsarka/Post.aspx?ID=147&amp;title=Kako+smo+po%c5%berli+NT+konferenco#1</comments>
      <description>&lt;div class="ExternalClass6802E96ABBD646CE89EFD0E30A7BB281"&gt;&lt;p&gt;First a quick note to my regular readers. I decided for a post in Slovenian language, because I want to address my fellow citizens only. You are not missing anything, this is not a technical blog.
&lt;/p&gt;&lt;p&gt;Končana je 18. NT konferenca, kot kaže, tudi zadnja NT konferenca. Ne morem si kaj, da mi ne bi bilo zaradi tega žal. NT konferenca je bila vedno nekaj posebnega, in to v svetovnem merilu. V najboljših časih je število udeležencev preseglo 2.000, kar je najbrž svetovni rekord glede na število prebivalcev. Če bi npr. v ZDA uspeli privabiti en promil prebivalstva, bi morali imeti več kot 300.000 udeležencev. Zato sem v tujini našo izjemno konferenco vedno omenjal s ponosom. Na žalost bomo imeli še eno stvar manj, na katero bi lahko bili ponosni.
&lt;/p&gt;&lt;p&gt;Popolnoma mi je jasno, da v sedanji krizi koncept konference, kot smo ga imeli, ne more več preživeti. Zato mi je tudi jasno, da mora Microsoft Slovenija nekaj spremeniti. Nisem pa prepričan, da je smer, ki so jo ubrali, najboljša. Predvidoma bodo naslednje leto tri konference, ki bodo trajale dva in dvakrat po en dan. S tem konceptom nimam problema, vendar moramo vedeti, da bodo to povsem običajne konference, kot jih imajo povsod po svetu, da ne bomo imeli nič posebnega.
&lt;/p&gt;&lt;p&gt;Med samo konferenco sem stalno dobival prispodobo ladje Titanic. Orkester igra, mi se pa potapljamo. Vsak večer zabava z neomejenimi količinami pijače in hrane, ogromna izbira hrane med kosilom, dragi nahrbtniki, in tako naprej. Kot da ne bi bilo nobene krize. Ampak za to ne krivim Microsoft. Glede na pretekle izkušnje je bilo vedno ogromno negodovanja s strani udeležencev, če ni bilo nahrbtnika ali pa majice. Vedno se je tudi našel nekdo, ki mu ni bila všeč hrana. Kot da doma je samo kaviar in pije šampanjec. Meni gre po glavi primerjava na tiste, ki se vedno pritožujejo glede glasbe, doma pa plešejo na poročila. Letos so bile poleg rednih pritožb na tapeti še dodatne. Letos je marsikoga motila lokacija, predvsem dejstvo, da so bila predavanja na dveh lokacijah, v dveh hotelih. Brez vsakega razumevanja za dejstvo, da je za polovico ljudi nemogoče plačati tako drago lokacijo, kot je bila v Portorožu. In ne glede na čudovito okolje, ki ga ponuja Bled, in ki je precej bolj unikatno kot je pač eno od tisočih mediteranskih letovišč.
&lt;/p&gt;&lt;p&gt;Kot primer naj navedem komentar, ki sem ga imel priložnost prebrati na FB. Pod sliko kremne rezine je nekdo komentiral »In to je to za € 800…«. No, če hodite na konference samo zaradi žrtja in pitja, potem to res ni to. Pa čeprav ste lahko ob kosilu požrli neomejeno količino kremnih rezin, a se to ni zdelo vredno omeniti nikomur. No, seveda v treh dnevih ne morete požreti kremnih rezin za € 800. Svetujem vam, da denar raje zapravite v gostilnah. Bistvo konference je v druženju, v izobraževanju, v sklepanju poznanstev… Človek bi rekel, da je glavna vrlina premnogih udeležencev preprosto požrešnost.
&lt;/p&gt;&lt;p&gt;Požrešnost se žal kaže še drugod. Microsoft Slovenija je že tretjič odpeljal vse udeležence, ki se kitijo z nazivom CIO, na posebno lokacijo. Pri tem so bili managerji mnogih IT podjetij izvzeti. To se je zgodilo že tretjič, čeprav smo sponzorji in predavatelji dali zelo negativno mnenje o tem. Za nas namreč konferenca precej izgubi smisel, če mi ne moremo do ljudi, s katerimi bi lahko sklepali posle. Kot da bi Microsoft Slovenija hotel požreti ves posel, kar ga še je v slovenski IT industriji, in odžreti vse svojim obstoječim partnerjem. Kot da ne bi bil eden temeljev uspeha Microsoft-a ravno odlična partnerska mreža. Rezultat je na dlani – količina sponzorjev in vrednost sponzorstev se že manjša. Pa ne samo zaradi krize! Spet požrešnost.
&lt;/p&gt;&lt;p&gt;Še ena požrešnost je v igri. Povsod po svetu, kjerkoli sem bil, so bile cene nočitev v hotelih znižane za udeležence konference. Saj to je vendar normalno, če ne zaradi drugega, že preprosto zaradi količine. No, v Sloveniji očitno to ne dela. Tako kot že prej v Portorožu, so tudi na Bledu hoteli ceno dvignili dan pred konferenco in jo spustili dan po konferenci. Sem preveril, imam dokaze. Torej, preprosto, vse skupaj nas lupijo še hoteli. Za Portorož je bilo to vsaj malo logično, saj 2.000 ljudi na konferenci ne more gostiti nobena druga lokacija v Sloveniji, čeprav je še vedno požrešno in neprimerno. Za Bled mi je pa to dejstvo malo manj razumljivo. Zaradi požrešnosti bodo sigurno imeli precej manj nočitev v prihodnosti.
&lt;/p&gt;&lt;p&gt;Ne vem, morda razmišljam naivno. Ampak sprašujem se, ali v tej državi res ni mogoče narediti nekaj skromnega, času primernega? Ali ne bi mogli narediti konference s poceni hrano, malo zastonj pijače (npr. kupona za dve pivi) in možnostjo, da si pijačo naprej plačujemo sami, brez nahrbtnika, ter z resnično nižjimi cenami hotelskih storitev? Ali ne bi bilo bolje previhariti težke čase in skušati ohraniti tisto, kar je dobrega, namesto vse do konca požreti in nato potoniti?
&lt;/p&gt;&lt;p&gt;Kar se mene tiče, že vem, kaj bom odgovoril tujcem, ko me bodo vprašali, kaj se dogaja z NT konferenco. Odgovoril bom, da smo imeli najboljšo konferenco na svetu, vendar smo jo preprosto požrli.&lt;/p&gt;&lt;/div&gt;</description>
      <dc:language xmlns:dc="http://purl.org/dc/elements/1.1/">English</dc:language>
    </item>
    <item>
      <link>http://blogs.solidq.com/dsarka/Post.aspx?ID=146&amp;title=What+Are+DQS+and+MDS+About</link>
      <title>What Are DQS and MDS About</title>
      <ItemID>146</ItemID>
      <pubDate>Sat, 23 Mar 2013 09:21:43 GMT</pubDate>
      <author>Dejan Sarka</author>
      <authorID>46</authorID>
      <wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.solidq.com/dsarka/_layouts/listfeed.aspx?List=%7b0efadf9d-cec9-4b8e-925d-3d4d30783dc8%7d</wfw:commentRss>
      <slash:comments xmlns:slash="http://purl.org/rss/1.0/modules/slash/">0</slash:comments>
      <description>&lt;div class="ExternalClassE71AD3219BBF43A09F2A8C20AF525098"&gt;&lt;p&gt;This is just a very quick information about SQL Server 2012 Data Quality Services (DQS) and Master Data Services (MDS). If you don't have a clue what they are useful for, this blog post should give you the basic idea.
&lt;/p&gt;&lt;p&gt;Many companies or organizations do regular data cleansing. When you cleanse the data, the data quality goes up to some higher level. The data quality level is determined by the amount of work invested in the cleansing. As time passes, the data quality deteriorates, and you need to repeat the cleansing process. If you spend an equal amount of effort as you did with the previous cleansing, you can expect the same level of data quality as you had after the previous cleansing. And then the data quality deteriorates over time again, and the cleansing process starts over and over again.
&lt;/p&gt;&lt;p&gt;The idea of Data Quality Services is to mitigate the cleansing process. While the amount of time you need to spend on cleansing decreases, you will achieve higher and higher levels of data quality. While cleansing, you learn what types of errors to expect, discover error patterns, find domains of correct values, etc. You don't throw away this knowledge. You store it and use it to find and correct the same issues automatically during your next cleansing process. The following figure shows this graphically.
&lt;/p&gt;&lt;p&gt;&lt;img src="/dsarka/Lists/Photos/032313_0820_WhatAreDQSa1.png" alt="" /&gt;
	&lt;/p&gt;&lt;p&gt;The idea of master data management, which you can perform with Master Data Services (MDS), is to prevent data quality from deteriorating. Once you reach a particular quality level, the MDS application—together with the defined policies, people, and master data management processes—allow you to maintain this level permanently. This idea is shown in the following picture.
&lt;/p&gt;&lt;p&gt;&lt;img src="/dsarka/Lists/Photos/032313_0820_WhatAreDQSa2.png" alt="" /&gt;
	&lt;/p&gt;&lt;p&gt;Not an in-depth blog post, as I said; however, I hope it brings some basic understanding about the purpose of DQS and MDS.&lt;/p&gt;&lt;/div&gt;</description>
      <category>Data Quality</category>
      <dc:language xmlns:dc="http://purl.org/dc/elements/1.1/">English</dc:language>
    </item>
    <item>
      <link>http://blogs.solidq.com/dsarka/Post.aspx?ID=145&amp;title=Data+Modeling+Essentials+Seminar+at+DevWeek+2013</link>
      <title>Data Modeling Essentials Seminar at DevWeek 2013</title>
      <ItemID>145</ItemID>
      <pubDate>Mon, 25 Feb 2013 10:54:24 GMT</pubDate>
      <author>Dejan Sarka</author>
      <authorID>46</authorID>
      <wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.solidq.com/dsarka/_layouts/listfeed.aspx?List=%7b0efadf9d-cec9-4b8e-925d-3d4d30783dc8%7d</wfw:commentRss>
      <slash:comments xmlns:slash="http://purl.org/rss/1.0/modules/slash/">0</slash:comments>
      <description>&lt;div class="ExternalClassFD90D1097BD742C8AC622A645AE26FC1"&gt;&lt;p&gt;Bad database design and inefficient queries lead to applications that are hard to maintain and upgrade and that don't perform well. Why don't you start with a good design? Join me during the &lt;a href="http://www.devweek.com/sessions/postworkshops.asp"&gt;DevWeek 2013&lt;/a&gt; post-conference seminar that provides developers and administrators with essential knowledge needed for a good database logical and physical design for well-performing applications in a single day. Of course, the knowledge gained by attending this seminar helps improving design and performance of existing databases as well.
&lt;/p&gt;&lt;p&gt;The Data Modeling Essentials seminar explains the relational model for transactional databases and the dimensional model for data warehouses. However, even the best logical model can't help when the physical implementation is bad. Therefore, the seminar shows in details how SQL Server stores and accesses data, and how to optimize the relational and the dimensional model. 
&lt;/p&gt;&lt;p&gt;Besides the seminar, you are also welcome to join my conference sessions:
&lt;/p&gt;&lt;ul&gt;&lt;li&gt;High performance statistical queries
&lt;/li&gt;&lt;li&gt;Temporal data in SQL Server
&lt;/li&gt;&lt;li&gt;Minimally logged (bulk) inserts
&lt;/li&gt;&lt;li&gt;SQL Server data mining
&lt;/li&gt;&lt;li&gt;Market basket analysis
&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;</description>
      <category>Data Modeling</category>
      <dc:language xmlns:dc="http://purl.org/dc/elements/1.1/">English</dc:language>
    </item>
    <item>
      <link>http://blogs.solidq.com/dsarka/Post.aspx?ID=144&amp;title=Contingency+Tables+in+SQL+Server+2012</link>
      <title>Contingency Tables in SQL Server 2012</title>
      <ItemID>144</ItemID>
      <pubDate>Tue, 05 Feb 2013 09:42:23 GMT</pubDate>
      <author>Dejan Sarka</author>
      <authorID>46</authorID>
      <wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.solidq.com/dsarka/_layouts/listfeed.aspx?List=%7b0efadf9d-cec9-4b8e-925d-3d4d30783dc8%7d</wfw:commentRss>
      <slash:comments xmlns:slash="http://purl.org/rss/1.0/modules/slash/">0</slash:comments>
      <description>&lt;div class="ExternalClassD3602060C2C04E97AA51E57FD87632E0"&gt;&lt;p&gt;Contingency tables are used to examine the relationship between subjects' scores on two qualitative or categorical variables. They show the actual and expected distribution of cases in a cross-tabulated (pivoted) format for the two variables.  Here is an example of the actual and expected distribution of cases over the Gender column (on rows) and the MaritalStatus column (on columns) of the dbo.vTargetMail view from the AdvetureWorksDW2012 demo database:
&lt;/p&gt;&lt;div&gt;&lt;table style="border-collapse:collapse;background:#edeceb" border="0"&gt;&lt;colgroup&gt;&lt;col style="width:48px" /&gt;&lt;col style="width:44px" /&gt;&lt;col style="width:39px" /&gt;&lt;col style="width:39px" /&gt;&lt;/colgroup&gt;&lt;tbody valign="top"&gt;&lt;tr style="height:16px"&gt;&lt;td valign="bottom" style="padding-top:1px;padding-left:1px;padding-right:1px;border-top:solid white 1.0pt;border-left:solid white 1.0pt;border-bottom:solid white 1.0pt;border-right:solid white 1.0pt"&gt;&lt;p&gt;&lt;span style="color:#00497d;font-family:Arial;font-size:10pt"&gt;&lt;strong&gt;Actual&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td valign="bottom" style="padding-top:1px;padding-left:1px;padding-right:1px;border-top:solid white 1.0pt;border-left:none;border-bottom:solid white 1.0pt;border-right:solid white 1.0pt"&gt; &lt;/td&gt;&lt;td valign="bottom" style="padding-top:1px;padding-left:1px;padding-right:1px;border-top:solid white 1.0pt;border-left:none;border-bottom:solid white 1.0pt;border-right:solid white 1.0pt"&gt; &lt;/td&gt;&lt;td valign="bottom" style="padding-top:1px;padding-left:1px;padding-right:1px;border-top:solid white 1.0pt;border-left:none;border-bottom:solid white 1.0pt;border-right:solid white 1.0pt"&gt; &lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:16px"&gt;&lt;td valign="bottom" style="padding-top:1px;padding-left:1px;padding-right:1px;border-top:none;border-left:solid white 1.0pt;border-bottom:solid white 1.0pt;border-right:solid white 1.0pt"&gt;&lt;p&gt;&lt;span style="color:black;font-family:Arial;font-size:10pt"&gt;Gender&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td valign="bottom" style="padding-top:1px;padding-left:1px;padding-right:1px;border-top:none;border-left:none;border-bottom:solid white 1.0pt;border-right:solid white 1.0pt"&gt;&lt;p style="text-align:right"&gt;&lt;span style="color:black;font-family:Arial;font-size:10pt"&gt;Married&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td valign="bottom" style="padding-top:1px;padding-left:1px;padding-right:1px;border-top:none;border-left:none;border-bottom:solid white 1.0pt;border-right:solid white 1.0pt"&gt;&lt;p style="text-align:right"&gt;&lt;span style="color:black;font-family:Arial;font-size:10pt"&gt;Single&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td valign="bottom" style="padding-top:1px;padding-left:1px;padding-right:1px;border-top:none;border-left:none;border-bottom:solid white 1.0pt;border-right:solid white 1.0pt"&gt;&lt;p style="text-align:right"&gt;&lt;span style="color:black;font-family:Arial;font-size:10pt"&gt;Total&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:16px"&gt;&lt;td valign="bottom" style="padding-top:1px;padding-left:1px;padding-right:1px;border-top:none;border-left:solid white 1.0pt;border-bottom:solid white 1.0pt;border-right:solid white 1.0pt"&gt;&lt;p&gt;&lt;span style="color:black;font-family:Arial;font-size:10pt"&gt;F&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td valign="bottom" style="padding-top:1px;padding-left:1px;padding-right:1px;border-top:none;border-left:none;border-bottom:solid white 1.0pt;border-right:solid white 1.0pt"&gt;&lt;p style="text-align:right"&gt;&lt;span style="color:black;font-family:Arial;font-size:10pt"&gt;4745&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td valign="bottom" style="padding-top:1px;padding-left:1px;padding-right:1px;border-top:none;border-left:none;border-bottom:solid white 1.0pt;border-right:solid white 1.0pt"&gt;&lt;p style="text-align:right"&gt;&lt;span style="color:black;font-family:Arial;font-size:10pt"&gt;4388&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td valign="bottom" style="padding-top:1px;padding-left:1px;padding-right:1px;border-top:none;border-left:none;border-bottom:solid white 1.0pt;border-right:solid white 1.0pt"&gt;&lt;p style="text-align:right"&gt;&lt;span style="color:black;font-family:Arial;font-size:10pt"&gt;9133&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:16px"&gt;&lt;td valign="bottom" style="padding-top:1px;padding-left:1px;padding-right:1px;border-top:none;border-left:solid white 1.0pt;border-bottom:solid white 1.0pt;border-right:solid white 1.0pt"&gt;&lt;p&gt;&lt;span style="color:black;font-family:Arial;font-size:10pt"&gt;M&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td valign="bottom" style="padding-top:1px;padding-left:1px;padding-right:1px;border-top:none;border-left:none;border-bottom:solid white 1.0pt;border-right:solid white 1.0pt"&gt;&lt;p style="text-align:right"&gt;&lt;span style="color:black;font-family:Arial;font-size:10pt"&gt;5266&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td valign="bottom" style="padding-top:1px;padding-left:1px;padding-right:1px;border-top:none;border-left:none;border-bottom:solid white 1.0pt;border-right:solid white 1.0pt"&gt;&lt;p style="text-align:right"&gt;&lt;span style="color:black;font-family:Arial;font-size:10pt"&gt;4085&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td valign="bottom" style="padding-top:1px;padding-left:1px;padding-right:1px;border-top:none;border-left:none;border-bottom:solid white 1.0pt;border-right:solid white 1.0pt"&gt;&lt;p style="text-align:right"&gt;&lt;span style="color:black;font-family:Arial;font-size:10pt"&gt;9351&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:16px"&gt;&lt;td valign="bottom" style="padding-top:1px;padding-left:1px;padding-right:1px;border-top:none;border-left:solid white 1.0pt;border-bottom:solid white 1.0pt;border-right:solid white 1.0pt"&gt;&lt;p&gt;&lt;span style="color:black;font-family:Arial;font-size:10pt"&gt;Total&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td valign="bottom" style="padding-top:1px;padding-left:1px;padding-right:1px;border-top:none;border-left:none;border-bottom:solid white 1.0pt;border-right:solid white 1.0pt"&gt;&lt;p style="text-align:right"&gt;&lt;span style="color:black;font-family:Arial;font-size:10pt"&gt;10011&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td valign="bottom" style="padding-top:1px;padding-left:1px;padding-right:1px;border-top:none;border-left:none;border-bottom:solid white 1.0pt;border-right:solid white 1.0pt"&gt;&lt;p style="text-align:right"&gt;&lt;span style="color:black;font-family:Arial;font-size:10pt"&gt;8473&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td valign="bottom" style="padding-top:1px;padding-left:1px;padding-right:1px;border-top:none;border-left:none;border-bottom:solid white 1.0pt;border-right:solid white 1.0pt"&gt;&lt;p style="text-align:right"&gt;&lt;span style="color:black;font-family:Arial;font-size:10pt"&gt;18484&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:16px"&gt;&lt;td valign="bottom" style="padding-top:1px;padding-left:1px;padding-right:1px;border-top:none;border-left:solid white 1.0pt;border-bottom:solid white 1.0pt;border-right:solid white 1.0pt"&gt;&lt;p&gt;&lt;span style="color:#00497d;font-family:Arial;font-size:10pt"&gt;&lt;strong&gt;Expected&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td valign="bottom" style="padding-top:1px;padding-left:1px;padding-right:1px;border-top:none;border-left:none;border-bottom:solid white 1.0pt;border-right:solid white 1.0pt"&gt; &lt;/td&gt;&lt;td valign="bottom" style="padding-top:1px;padding-left:1px;padding-right:1px;border-top:none;border-left:none;border-bottom:solid white 1.0pt;border-right:solid white 1.0pt"&gt; &lt;/td&gt;&lt;td valign="bottom" style="padding-top:1px;padding-left:1px;padding-right:1px;border-top:none;border-left:none;border-bottom:solid white 1.0pt;border-right:solid white 1.0pt"&gt; &lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:16px"&gt;&lt;td valign="bottom" style="padding-top:1px;padding-left:1px;padding-right:1px;border-top:none;border-left:solid white 1.0pt;border-bottom:solid white 1.0pt;border-right:solid white 1.0pt"&gt;&lt;p&gt;&lt;span style="color:black;font-family:Arial;font-size:10pt"&gt;Gender&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td valign="bottom" style="padding-top:1px;padding-left:1px;padding-right:1px;border-top:none;border-left:none;border-bottom:solid white 1.0pt;border-right:solid white 1.0pt"&gt;&lt;p style="text-align:right"&gt;&lt;span style="color:black;font-family:Arial;font-size:10pt"&gt;Married&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td valign="bottom" style="padding-top:1px;padding-left:1px;padding-right:1px;border-top:none;border-left:none;border-bottom:solid white 1.0pt;border-right:solid white 1.0pt"&gt;&lt;p style="text-align:right"&gt;&lt;span style="color:black;font-family:Arial;font-size:10pt"&gt;Single&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td valign="bottom" style="padding-top:1px;padding-left:1px;padding-right:1px;border-top:none;border-left:none;border-bottom:solid white 1.0pt;border-right:solid white 1.0pt"&gt;&lt;p style="text-align:right"&gt;&lt;span style="color:black;font-family:Arial;font-size:10pt"&gt;Total&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:16px"&gt;&lt;td valign="bottom" style="padding-top:1px;padding-left:1px;padding-right:1px;border-top:none;border-left:solid white 1.0pt;border-bottom:solid white 1.0pt;border-right:solid white 1.0pt"&gt;&lt;p&gt;&lt;span style="color:black;font-family:Arial;font-size:10pt"&gt;F&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td valign="bottom" style="padding-top:1px;padding-left:1px;padding-right:1px;border-top:none;border-left:none;border-bottom:solid white 1.0pt;border-right:solid white 1.0pt"&gt;&lt;p style="text-align:right"&gt;&lt;span style="color:black;font-family:Arial;font-size:10pt"&gt;4946&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td valign="bottom" style="padding-top:1px;padding-left:1px;padding-right:1px;border-top:none;border-left:none;border-bottom:solid white 1.0pt;border-right:solid white 1.0pt"&gt;&lt;p style="text-align:right"&gt;&lt;span style="color:black;font-family:Arial;font-size:10pt"&gt;4187&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td valign="bottom" style="padding-top:1px;padding-left:1px;padding-right:1px;border-top:none;border-left:none;border-bottom:solid white 1.0pt;border-right:solid white 1.0pt"&gt;&lt;p style="text-align:right"&gt;&lt;span style="color:black;font-family:Arial;font-size:10pt"&gt;9133&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:16px"&gt;&lt;td valign="bottom" style="padding-top:1px;padding-left:1px;padding-right:1px;border-top:none;border-left:solid white 1.0pt;border-bottom:solid white 1.0pt;border-right:solid white 1.0pt"&gt;&lt;p&gt;&lt;span style="color:black;font-family:Arial;font-size:10pt"&gt;M&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td valign="bottom" style="padding-top:1px;padding-left:1px;padding-right:1px;border-top:none;border-left:none;border-bottom:solid white 1.0pt;border-right:solid white 1.0pt"&gt;&lt;p style="text-align:right"&gt;&lt;span style="color:black;font-family:Arial;font-size:10pt"&gt;5065&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td valign="bottom" style="padding-top:1px;padding-left:1px;padding-right:1px;border-top:none;border-left:none;border-bottom:solid white 1.0pt;border-right:solid white 1.0pt"&gt;&lt;p style="text-align:right"&gt;&lt;span style="color:black;font-family:Arial;font-size:10pt"&gt;4286&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td valign="bottom" style="padding-top:1px;padding-left:1px;padding-right:1px;border-top:none;border-left:none;border-bottom:solid white 1.0pt;border-right:solid white 1.0pt"&gt;&lt;p style="text-align:right"&gt;&lt;span style="color:black;font-family:Arial;font-size:10pt"&gt;9351&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:16px"&gt;&lt;td valign="bottom" style="padding-top:1px;padding-left:1px;padding-right:1px;border-top:none;border-left:solid white 1.0pt;border-bottom:solid white 1.0pt;border-right:solid white 1.0pt"&gt;&lt;p&gt;&lt;span style="color:black;font-family:Arial;font-size:10pt"&gt;Total&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td valign="bottom" style="padding-top:1px;padding-left:1px;padding-right:1px;border-top:none;border-left:none;border-bottom:solid white 1.0pt;border-right:solid white 1.0pt"&gt;&lt;p style="text-align:right"&gt;&lt;span style="color:black;font-family:Arial;font-size:10pt"&gt;10011&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td valign="bottom" style="padding-top:1px;padding-left:1px;padding-right:1px;border-top:none;border-left:none;border-bottom:solid white 1.0pt;border-right:solid white 1.0pt"&gt;&lt;p style="text-align:right"&gt;&lt;span style="color:black;font-family:Arial;font-size:10pt"&gt;8473&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td valign="bottom" style="padding-top:1px;padding-left:1px;padding-right:1px;border-top:none;border-left:none;border-bottom:solid white 1.0pt;border-right:solid white 1.0pt"&gt;&lt;p style="text-align:right"&gt;&lt;span style="color:black;font-family:Arial;font-size:10pt"&gt;18484&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;p&gt;If the columns are not contingent on the rows, then the rows and column frequencies are independent. The test of whether the columns are contingent on the rows is called the chi-square test of independence. The null hypothesis is that there is no relationship between row and column frequencies. Therefore, there should be no difference between the observed and expected frequencies. Contingency tables are the base for the chi-square test. However, even without the test, you might notice some relationship between two discrete variables just by seeing the contingency table.
&lt;/p&gt;&lt;p&gt;Contingency tables are very simple to interpret, and therefore they are a very popular tool in statistics and data mining. Wouldn't it be nice to have a possibility to create such a nice contingency table checking the association between NumberCarsOwned and BikeBuyer columns from the dbo.vTargetMail like the following screenshot shows with SQL Server tools?
&lt;/p&gt;&lt;p&gt;&lt;img src="/dsarka/Lists/Photos/020513_0844_Contingency1.png" alt="" /&gt;
	&lt;/p&gt;&lt;p&gt;Of course, I would not write this blog if I would not have a solution. The screenshot above is actually a screenshot of a SQL Server 2012 Reporting Services (SSRS) report. The whole story starts with the following query.
&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Consolas;font-size:10pt"&gt;&lt;span style="color:blue"&gt;WITH&lt;/span&gt;
		&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Consolas;font-size:10pt"&gt;&lt;span style="color:teal"&gt;ObservedCombination_CTE&lt;/span&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:Consolas;font-size:10pt"&gt;&lt;span style="color:gray"&gt;(&lt;/span&gt;
		&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Consolas;font-size:10pt"&gt;&lt;span style="color:blue"&gt;SELECT&lt;/span&gt;
			&lt;span style="color:teal"&gt;NumberCarsOwned&lt;/span&gt;
			&lt;span style="color:blue"&gt;AS&lt;/span&gt;
			&lt;span style="color:teal"&gt;OnRows&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:Consolas;font-size:10pt"&gt;
			&lt;span style="color:teal"&gt;BikeBuyer&lt;/span&gt;
			&lt;span style="color:blue"&gt;AS&lt;/span&gt;
			&lt;span style="color:teal"&gt;OnCols&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:Consolas;font-size:10pt"&gt;
			&lt;span style="color:fuchsia"&gt;COUNT&lt;span style="color:gray"&gt;(*)&lt;/span&gt;
				&lt;span style="color:blue"&gt;AS&lt;/span&gt;
				&lt;span style="color:teal"&gt;ObservedCombination&lt;/span&gt;
			&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Consolas;font-size:10pt"&gt;&lt;span style="color:blue"&gt;FROM&lt;/span&gt;
			&lt;span style="color:teal"&gt;dbo&lt;span style="color:gray"&gt;.&lt;span style="color:teal"&gt;vTargetMail&lt;/span&gt;
				&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Consolas;font-size:10pt"&gt;&lt;span style="color:blue"&gt;GROUP&lt;/span&gt;
			&lt;span style="color:blue"&gt;BY&lt;/span&gt;
			&lt;span style="color:teal"&gt;NumberCarsOwned&lt;span style="color:gray"&gt;,&lt;/span&gt; BikeBuyer&lt;/span&gt;
		&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Consolas;font-size:10pt"&gt;&lt;span style="color:gray"&gt;)&lt;/span&gt;
		&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Consolas;font-size:10pt"&gt;&lt;span style="color:blue"&gt;SELECT&lt;/span&gt;
			&lt;span style="color:teal"&gt;OnRows&lt;span style="color:gray"&gt;,&lt;/span&gt; OnCols&lt;span style="color:gray"&gt;,&lt;/span&gt; ObservedCombination&lt;/span&gt;
		&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Consolas;font-size:10pt"&gt;
			&lt;span style="color:gray"&gt;,&lt;span style="color:fuchsia"&gt;SUM&lt;span style="color:gray"&gt;(&lt;span style="color:teal"&gt;ObservedCombination&lt;span style="color:gray"&gt;)&lt;/span&gt;
							&lt;span style="color:blue"&gt;OVER &lt;span style="color:gray"&gt;(&lt;span style="color:blue"&gt;PARTITION&lt;/span&gt;
									&lt;span style="color:blue"&gt;BY&lt;/span&gt;
									&lt;span style="color:teal"&gt;OnRows&lt;span style="color:gray"&gt;)&lt;/span&gt;
										&lt;span style="color:blue"&gt;AS&lt;/span&gt; ObservedOnRows&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:Consolas;font-size:10pt"&gt;
			&lt;span style="color:gray"&gt;,&lt;span style="color:fuchsia"&gt;SUM&lt;span style="color:gray"&gt;(&lt;span style="color:teal"&gt;ObservedCombination&lt;span style="color:gray"&gt;)&lt;/span&gt;
							&lt;span style="color:blue"&gt;OVER &lt;span style="color:gray"&gt;(&lt;span style="color:blue"&gt;PARTITION&lt;/span&gt;
									&lt;span style="color:blue"&gt;BY&lt;/span&gt;
									&lt;span style="color:teal"&gt;OnCols&lt;span style="color:gray"&gt;)&lt;/span&gt;
										&lt;span style="color:blue"&gt;AS&lt;/span&gt; ObservedOnCols&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:Consolas;font-size:10pt"&gt;
			&lt;span style="color:gray"&gt;,&lt;span style="color:fuchsia"&gt;SUM&lt;span style="color:gray"&gt;(&lt;span style="color:teal"&gt;ObservedCombination&lt;span style="color:gray"&gt;)&lt;/span&gt;
							&lt;span style="color:blue"&gt;OVER &lt;span style="color:gray"&gt;()&lt;/span&gt; AS&lt;/span&gt; ObservedTotal&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:Consolas;font-size:10pt"&gt;
			&lt;span style="color:gray"&gt;,&lt;span style="color:fuchsia"&gt;CAST&lt;span style="color:gray"&gt;(&lt;span style="color:fuchsia"&gt;ROUND&lt;span style="color:gray"&gt;(&lt;span style="color:fuchsia"&gt;SUM&lt;span style="color:gray"&gt;(&lt;/span&gt;1.0 &lt;span style="color:gray"&gt;*&lt;/span&gt;
									&lt;span style="color:teal"&gt;ObservedCombination&lt;span style="color:gray"&gt;)&lt;/span&gt;
										&lt;span style="color:blue"&gt;OVER &lt;span style="color:gray"&gt;(&lt;span style="color:blue"&gt;PARTITION&lt;/span&gt;
												&lt;span style="color:blue"&gt;BY&lt;/span&gt;
												&lt;span style="color:teal"&gt;OnRows&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;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Consolas;font-size:10pt"&gt;
			&lt;span style="color:gray"&gt;*&lt;/span&gt;
			&lt;span style="color:fuchsia"&gt;SUM&lt;span style="color:gray"&gt;(&lt;/span&gt;1.0 &lt;span style="color:gray"&gt;*&lt;/span&gt;
				&lt;span style="color:teal"&gt;ObservedCombination&lt;span style="color:gray"&gt;)&lt;/span&gt;
					&lt;span style="color:blue"&gt;OVER &lt;span style="color:gray"&gt;(&lt;span style="color:blue"&gt;PARTITION&lt;/span&gt;
							&lt;span style="color:blue"&gt;BY&lt;/span&gt;
							&lt;span style="color:teal"&gt;OnCols&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;/p&gt;&lt;p&gt;&lt;span style="font-family:Consolas;font-size:10pt"&gt;
			&lt;span style="color:gray"&gt;/&lt;/span&gt;
			&lt;span style="color:fuchsia"&gt;SUM&lt;span style="color:gray"&gt;(&lt;/span&gt;1.0 &lt;span style="color:gray"&gt;*&lt;/span&gt;
				&lt;span style="color:teal"&gt;ObservedCombination&lt;span style="color:gray"&gt;)&lt;/span&gt;
					&lt;span style="color:blue"&gt;OVER &lt;span style="color:gray"&gt;(),&lt;/span&gt; 0&lt;span style="color:gray"&gt;)&lt;/span&gt; AS&lt;/span&gt;
					&lt;span style="color:blue"&gt;INT&lt;span style="color:gray"&gt;)&lt;/span&gt; AS&lt;/span&gt; ExpectedCombination&lt;/span&gt;
			&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Consolas;font-size:10pt"&gt;
			&lt;span style="color:gray"&gt;,&lt;span style="color:fuchsia"&gt;CAST&lt;span style="color:gray"&gt;(&lt;span style="color:fuchsia"&gt;ROUND&lt;span style="color:gray"&gt;(&lt;/span&gt;100.0 &lt;span style="color:gray"&gt;*&lt;/span&gt;
							&lt;span style="color:teal"&gt;ObservedCombination&lt;/span&gt;
							&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:Consolas;font-size:10pt"&gt;
			&lt;span style="color:fuchsia"&gt;SUM&lt;span style="color:gray"&gt;(&lt;span style="color:teal"&gt;ObservedCombination&lt;span style="color:gray"&gt;)&lt;/span&gt;
						&lt;span style="color:blue"&gt;OVER &lt;span style="color:gray"&gt;(),&lt;/span&gt; 0&lt;span style="color:gray"&gt;)&lt;/span&gt; AS&lt;/span&gt;
						&lt;span style="color:blue"&gt;INT&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:Consolas;font-size:10pt"&gt;
			&lt;span style="color:blue"&gt;AS&lt;/span&gt;
			&lt;span style="color:teal"&gt;PctTotal&lt;/span&gt;
		&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Consolas;font-size:10pt"&gt;
			&lt;span style="color:gray"&gt;,&lt;span style="color:fuchsia"&gt;REPLICATE&lt;span style="color:gray"&gt;(&lt;span style="color:red"&gt;'*'&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:Consolas;font-size:10pt"&gt;
			&lt;span style="color:fuchsia"&gt;CAST&lt;span style="color:gray"&gt;(&lt;span style="color:fuchsia"&gt;ROUND&lt;span style="color:gray"&gt;(&lt;/span&gt;100.0 &lt;span style="color:gray"&gt;*&lt;/span&gt;
						&lt;span style="color:teal"&gt;ObservedCombination&lt;/span&gt;
						&lt;span style="color:gray"&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:Consolas;font-size:10pt"&gt;
			&lt;span style="color:fuchsia"&gt;SUM&lt;span style="color:gray"&gt;(&lt;span style="color:teal"&gt;ObservedCombination&lt;span style="color:gray"&gt;)&lt;/span&gt;
						&lt;span style="color:blue"&gt;OVER &lt;span style="color:gray"&gt;(),&lt;/span&gt; 0&lt;span style="color:gray"&gt;)&lt;/span&gt; AS&lt;/span&gt;
						&lt;span style="color:blue"&gt;INT&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:Consolas;font-size:10pt"&gt;
			&lt;span style="color:blue"&gt;AS&lt;/span&gt;
			&lt;span style="color:blue"&gt;Histogram&lt;/span&gt;
		&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Consolas;font-size:10pt"&gt;&lt;span style="color:blue"&gt;FROM&lt;/span&gt;
			&lt;span style="color:teal"&gt;ObservedCombination_CTE&lt;/span&gt;
		&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Consolas;font-size:10pt"&gt;&lt;span style="color:blue"&gt;ORDER&lt;/span&gt;
			&lt;span style="color:blue"&gt;BY&lt;/span&gt;
			&lt;span style="color:teal"&gt;OnRows&lt;span style="color:gray"&gt;,&lt;/span&gt; OnCols
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;Note that the query uses the new window functions in SQL Server 2012. The result of this query is not pivoted yet, however it contains all of the data needed.
&lt;/p&gt;&lt;div&gt;&lt;table style="border-collapse:collapse" border="0"&gt;&lt;colgroup&gt;&lt;col style="width:49px" /&gt;&lt;col style="width:49px" /&gt;&lt;col style="width:84px" /&gt;&lt;col style="width:63px" /&gt;&lt;col style="width:63px" /&gt;&lt;col style="width:63px" /&gt;&lt;col style="width:84px" /&gt;&lt;col style="width:63px" /&gt;&lt;col style="width:157px" /&gt;&lt;/colgroup&gt;&lt;tbody valign="top"&gt;&lt;tr style="height:47px"&gt;&lt;td valign="bottom" style="padding-left:7px;padding-right:7px;border-top:solid 0.5pt;border-left:solid 0.5pt;border-bottom:solid 0.5pt;border-right:solid 0.5pt"&gt;&lt;p&gt;&lt;span style="color:black;font-family:Consolas;font-size:8pt"&gt;OnRows&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td valign="bottom" style="padding-left:7px;padding-right:7px;border-top:solid 0.5pt;border-left:none;border-bottom:solid 0.5pt;border-right:solid 0.5pt"&gt;&lt;p style="text-align:center"&gt;&lt;span style="color:black;font-family:Consolas;font-size:8pt"&gt;OnCols&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td valign="bottom" style="padding-left:7px;padding-right:7px;border-top:solid 0.5pt;border-left:none;border-bottom:solid 0.5pt;border-right:solid 0.5pt"&gt;&lt;p style="text-align:center"&gt;&lt;span style="color:black;font-family:Consolas;font-size:8pt"&gt;Observed Combination&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td valign="bottom" style="padding-left:7px;padding-right:7px;border-top:solid 0.5pt;border-left:none;border-bottom:solid 0.5pt;border-right:solid 0.5pt"&gt;&lt;p style="text-align:center"&gt;&lt;span style="color:black;font-family:Consolas;font-size:8pt"&gt;Observed On Rows&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td valign="bottom" style="padding-left:7px;padding-right:7px;border-top:solid 0.5pt;border-left:none;border-bottom:solid 0.5pt;border-right:solid 0.5pt"&gt;&lt;p style="text-align:center"&gt;&lt;span style="color:black;font-family:Consolas;font-size:8pt"&gt;Observed On Cols&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td valign="bottom" style="padding-left:7px;padding-right:7px;border-top:solid 0.5pt;border-left:none;border-bottom:solid 0.5pt;border-right:solid 0.5pt"&gt;&lt;p style="text-align:center"&gt;&lt;span style="color:black;font-family:Consolas;font-size:8pt"&gt;Observed Total&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td valign="bottom" style="padding-left:7px;padding-right:7px;border-top:solid 0.5pt;border-left:none;border-bottom:solid 0.5pt;border-right:solid 0.5pt"&gt;&lt;p style="text-align:center"&gt;&lt;span style="color:black;font-family:Consolas;font-size:8pt"&gt;Expected Combination&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td valign="bottom" style="padding-left:7px;padding-right:7px;border-top:solid 0.5pt;border-left:none;border-bottom:solid 0.5pt;border-right:solid 0.5pt"&gt;&lt;p style="text-align:center"&gt;&lt;span style="color:black;font-family:Consolas;font-size:8pt"&gt;PctTotal&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td valign="bottom" style="padding-left:7px;padding-right:7px;border-top:solid 0.5pt;border-left:none;border-bottom:solid 0.5pt;border-right:solid 0.5pt"&gt;&lt;p style="text-align:center"&gt;&lt;span style="color:black;font-family:Consolas;font-size:8pt"&gt;Histogram&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:7px;padding-right:7px;border-top:none;border-left:solid 0.5pt;border-bottom:solid 0.5pt;border-right:solid 0.5pt"&gt;&lt;p&gt;&lt;span style="color:black;font-family:Consolas;font-size:8pt"&gt;0&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td valign="bottom" style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid 0.5pt;border-right:solid 0.5pt"&gt;&lt;p style="text-align:right"&gt;&lt;span style="color:black;font-family:Consolas;font-size:8pt"&gt;0&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td valign="bottom" style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid 0.5pt;border-right:solid 0.5pt"&gt;&lt;p style="text-align:right"&gt;&lt;span style="color:black;font-family:Consolas;font-size:8pt"&gt;1551&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td valign="bottom" style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid 0.5pt;border-right:solid 0.5pt"&gt;&lt;p style="text-align:right"&gt;&lt;span style="color:black;font-family:Consolas;font-size:8pt"&gt;4238&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td valign="bottom" style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid 0.5pt;border-right:solid 0.5pt"&gt;&lt;p style="text-align:right"&gt;&lt;span style="color:black;font-family:Consolas;font-size:8pt"&gt;9352&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td valign="bottom" style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid 0.5pt;border-right:solid 0.5pt"&gt;&lt;p style="text-align:right"&gt;&lt;span style="color:black;font-family:Consolas;font-size:8pt"&gt;18484&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td valign="bottom" style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid 0.5pt;border-right:solid 0.5pt"&gt;&lt;p style="text-align:right"&gt;&lt;span style="color:black;font-family:Consolas;font-size:8pt"&gt;2144&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td valign="bottom" style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid 0.5pt;border-right:solid 0.5pt"&gt;&lt;p style="text-align:right"&gt;&lt;span style="color:black;font-family:Consolas;font-size:8pt"&gt;8&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td valign="bottom" style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid 0.5pt;border-right:solid 0.5pt"&gt;&lt;p&gt;&lt;span style="color:black;font-family:Consolas;font-size:8pt"&gt;********&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:7px;padding-right:7px;border-top:none;border-left:solid 0.5pt;border-bottom:solid 0.5pt;border-right:solid 0.5pt"&gt;&lt;p&gt;&lt;span style="color:black;font-family:Consolas;font-size:8pt"&gt;0&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td valign="bottom" style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid 0.5pt;border-right:solid 0.5pt"&gt;&lt;p style="text-align:right"&gt;&lt;span style="color:black;font-family:Consolas;font-size:8pt"&gt;1&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td valign="bottom" style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid 0.5pt;border-right:solid 0.5pt"&gt;&lt;p style="text-align:right"&gt;&lt;span style="color:black;font-family:Consolas;font-size:8pt"&gt;2687&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td valign="bottom" style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid 0.5pt;border-right:solid 0.5pt"&gt;&lt;p style="text-align:right"&gt;&lt;span style="color:black;font-family:Consolas;font-size:8pt"&gt;4238&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td valign="bottom" style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid 0.5pt;border-right:solid 0.5pt"&gt;&lt;p style="text-align:right"&gt;&lt;span style="color:black;font-family:Consolas;font-size:8pt"&gt;9132&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td valign="bottom" style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid 0.5pt;border-right:solid 0.5pt"&gt;&lt;p style="text-align:right"&gt;&lt;span style="color:black;font-family:Consolas;font-size:8pt"&gt;18484&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td valign="bottom" style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid 0.5pt;border-right:solid 0.5pt"&gt;&lt;p style="text-align:right"&gt;&lt;span style="color:black;font-family:Consolas;font-size:8pt"&gt;2094&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td valign="bottom" style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid 0.5pt;border-right:solid 0.5pt"&gt;&lt;p style="text-align:right"&gt;&lt;span style="color:black;font-family:Consolas;font-size:8pt"&gt;15&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td valign="bottom" style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid 0.5pt;border-right:solid 0.5pt"&gt;&lt;p&gt;&lt;span style="color:black;font-family:Consolas;font-size:8pt"&gt;***************&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:7px;padding-right:7px;border-top:none;border-left:solid 0.5pt;border-bottom:solid 0.5pt;border-right:solid 0.5pt"&gt;&lt;p&gt;&lt;span style="color:black;font-family:Consolas;font-size:8pt"&gt;1&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td valign="bottom" style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid 0.5pt;border-right:solid 0.5pt"&gt;&lt;p style="text-align:right"&gt;&lt;span style="color:black;font-family:Consolas;font-size:8pt"&gt;0&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td valign="bottom" style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid 0.5pt;border-right:solid 0.5pt"&gt;&lt;p style="text-align:right"&gt;&lt;span style="color:black;font-family:Consolas;font-size:8pt"&gt;2187&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td valign="bottom" style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid 0.5pt;border-right:solid 0.5pt"&gt;&lt;p style="text-align:right"&gt;&lt;span style="color:black;font-family:Consolas;font-size:8pt"&gt;4883&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td valign="bottom" style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid 0.5pt;border-right:solid 0.5pt"&gt;&lt;p style="text-align:right"&gt;&lt;span style="color:black;font-family:Consolas;font-size:8pt"&gt;9352&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td valign="bottom" style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid 0.5pt;border-right:solid 0.5pt"&gt;&lt;p style="text-align:right"&gt;&lt;span style="color:black;font-family:Consolas;font-size:8pt"&gt;18484&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td valign="bottom" style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid 0.5pt;border-right:solid 0.5pt"&gt;&lt;p style="text-align:right"&gt;&lt;span style="color:black;font-family:Consolas;font-size:8pt"&gt;2471&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td valign="bottom" style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid 0.5pt;border-right:solid 0.5pt"&gt;&lt;p style="text-align:right"&gt;&lt;span style="color:black;font-family:Consolas;font-size:8pt"&gt;12&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td valign="bottom" style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid 0.5pt;border-right:solid 0.5pt"&gt;&lt;p&gt;&lt;span style="color:black;font-family:Consolas;font-size:8pt"&gt;************&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:7px;padding-right:7px;border-top:none;border-left:solid 0.5pt;border-bottom:solid 0.5pt;border-right:solid 0.5pt"&gt;&lt;p&gt;&lt;span style="color:black;font-family:Consolas;font-size:8pt"&gt;1&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td valign="bottom" style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid 0.5pt;border-right:solid 0.5pt"&gt;&lt;p style="text-align:right"&gt;&lt;span style="color:black;font-family:Consolas;font-size:8pt"&gt;1&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td valign="bottom" style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid 0.5pt;border-right:solid 0.5pt"&gt;&lt;p style="text-align:right"&gt;&lt;span style="color:black;font-family:Consolas;font-size:8pt"&gt;2696&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td valign="bottom" style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid 0.5pt;border-right:solid 0.5pt"&gt;&lt;p style="text-align:right"&gt;&lt;span style="color:black;font-family:Consolas;font-size:8pt"&gt;4883&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td valign="bottom" style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid 0.5pt;border-right:solid 0.5pt"&gt;&lt;p style="text-align:right"&gt;&lt;span style="color:black;font-family:Consolas;font-size:8pt"&gt;9132&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td valign="bottom" style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid 0.5pt;border-right:solid 0.5pt"&gt;&lt;p style="text-align:right"&gt;&lt;span style="color:black;font-family:Consolas;font-size:8pt"&gt;18484&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td valign="bottom" style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid 0.5pt;border-right:solid 0.5pt"&gt;&lt;p style="text-align:right"&gt;&lt;span style="color:black;font-family:Consolas;font-size:8pt"&gt;2412&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td valign="bottom" style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid 0.5pt;border-right:solid 0.5pt"&gt;&lt;p style="text-align:right"&gt;&lt;span style="color:black;font-family:Consolas;font-size:8pt"&gt;15&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td valign="bottom" style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid 0.5pt;border-right:solid 0.5pt"&gt;&lt;p&gt;&lt;span style="color:black;font-family:Consolas;font-size:8pt"&gt;***************&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:7px;padding-right:7px;border-top:none;border-left:solid 0.5pt;border-bottom:solid 0.5pt;border-right:solid 0.5pt"&gt;&lt;p&gt;&lt;span style="color:black;font-family:Consolas;font-size:8pt"&gt;2&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td valign="bottom" style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid 0.5pt;border-right:solid 0.5pt"&gt;&lt;p style="text-align:right"&gt;&lt;span style="color:black;font-family:Consolas;font-size:8pt"&gt;0&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td valign="bottom" style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid 0.5pt;border-right:solid 0.5pt"&gt;&lt;p style="text-align:right"&gt;&lt;span style="color:black;font-family:Consolas;font-size:8pt"&gt;3868&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td valign="bottom" style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid 0.5pt;border-right:solid 0.5pt"&gt;&lt;p style="text-align:right"&gt;&lt;span style="color:black;font-family:Consolas;font-size:8pt"&gt;6457&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td valign="bottom" style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid 0.5pt;border-right:solid 0.5pt"&gt;&lt;p style="text-align:right"&gt;&lt;span style="color:black;font-family:Consolas;font-size:8pt"&gt;9352&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td valign="bottom" style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid 0.5pt;border-right:solid 0.5pt"&gt;&lt;p style="text-align:right"&gt;&lt;span style="color:black;font-family:Consolas;font-size:8pt"&gt;18484&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td valign="bottom" style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid 0.5pt;border-right:solid 0.5pt"&gt;&lt;p style="text-align:right"&gt;&lt;span style="color:black;font-family:Consolas;font-size:8pt"&gt;3267&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td valign="bottom" style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid 0.5pt;border-right:solid 0.5pt"&gt;&lt;p style="text-align:right"&gt;&lt;span style="color:black;font-family:Consolas;font-size:8pt"&gt;21&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td valign="bottom" style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid 0.5pt;border-right:solid 0.5pt"&gt;&lt;p&gt;&lt;span style="color:black;font-family:Consolas;font-size:8pt"&gt;*********************&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:7px;padding-right:7px;border-top:none;border-left:solid 0.5pt;border-bottom:solid 0.5pt;border-right:solid 0.5pt"&gt;&lt;p&gt;&lt;span style="color:black;font-family:Consolas;font-size:8pt"&gt;2&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td valign="bottom" style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid 0.5pt;border-right:solid 0.5pt"&gt;&lt;p style="text-align:right"&gt;&lt;span style="color:black;font-family:Consolas;font-size:8pt"&gt;1&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td valign="bottom" style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid 0.5pt;border-right:solid 0.5pt"&gt;&lt;p style="text-align:right"&gt;&lt;span style="color:black;font-family:Consolas;font-size:8pt"&gt;2589&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td valign="bottom" style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid 0.5pt;border-right:solid 0.5pt"&gt;&lt;p style="text-align:right"&gt;&lt;span style="color:black;font-family:Consolas;font-size:8pt"&gt;6457&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td valign="bottom" style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid 0.5pt;border-right:solid 0.5pt"&gt;&lt;p style="text-align:right"&gt;&lt;span style="color:black;font-family:Consolas;font-size:8pt"&gt;9132&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td valign="bottom" style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid 0.5pt;border-right:solid 0.5pt"&gt;&lt;p style="text-align:right"&gt;&lt;span style="color:black;font-family:Consolas;font-size:8pt"&gt;18484&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td valign="bottom" style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid 0.5pt;border-right:solid 0.5pt"&gt;&lt;p style="text-align:right"&gt;&lt;span style="color:black;font-family:Consolas;font-size:8pt"&gt;3190&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td valign="bottom" style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid 0.5pt;border-right:solid 0.5pt"&gt;&lt;p style="text-align:right"&gt;&lt;span style="color:black;font-family:Consolas;font-size:8pt"&gt;14&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td valign="bottom" style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid 0.5pt;border-right:solid 0.5pt"&gt;&lt;p&gt;&lt;span style="color:black;font-family:Consolas;font-size:8pt"&gt;**************&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:7px;padding-right:7px;border-top:none;border-left:solid 0.5pt;border-bottom:solid 0.5pt;border-right:solid 0.5pt"&gt;&lt;p&gt;&lt;span style="color:black;font-family:Consolas;font-size:8pt"&gt;3&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td valign="bottom" style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid 0.5pt;border-right:solid 0.5pt"&gt;&lt;p style="text-align:right"&gt;&lt;span style="color:black;font-family:Consolas;font-size:8pt"&gt;0&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td valign="bottom" style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid 0.5pt;border-right:solid 0.5pt"&gt;&lt;p style="text-align:right"&gt;&lt;span style="color:black;font-family:Consolas;font-size:8pt"&gt;951&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td valign="bottom" style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid 0.5pt;border-right:solid 0.5pt"&gt;&lt;p style="text-align:right"&gt;&lt;span style="color:black;font-family:Consolas;font-size:8pt"&gt;1645&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td valign="bottom" style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid 0.5pt;border-right:solid 0.5pt"&gt;&lt;p style="text-align:right"&gt;&lt;span style="color:black;font-family:Consolas;font-size:8pt"&gt;9352&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td valign="bottom" style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid 0.5pt;border-right:solid 0.5pt"&gt;&lt;p style="text-align:right"&gt;&lt;span style="color:black;font-family:Consolas;font-size:8pt"&gt;18484&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td valign="bottom" style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid 0.5pt;border-right:solid 0.5pt"&gt;&lt;p style="text-align:right"&gt;&lt;span style="color:black;font-family:Consolas;font-size:8pt"&gt;832&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td valign="bottom" style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid 0.5pt;border-right:solid 0.5pt"&gt;&lt;p style="text-align:right"&gt;&lt;span style="color:black;font-family:Consolas;font-size:8pt"&gt;5&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td valign="bottom" style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid 0.5pt;border-right:solid 0.5pt"&gt;&lt;p&gt;&lt;span style="color:black;font-family:Consolas;font-size:8pt"&gt;*****&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:7px;padding-right:7px;border-top:none;border-left:solid 0.5pt;border-bottom:solid 0.5pt;border-right:solid 0.5pt"&gt;&lt;p&gt;&lt;span style="color:black;font-family:Consolas;font-size:8pt"&gt;3&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td valign="bottom" style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid 0.5pt;border-right:solid 0.5pt"&gt;&lt;p style="text-align:right"&gt;&lt;span style="color:black;font-family:Consolas;font-size:8pt"&gt;1&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td valign="bottom" style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid 0.5pt;border-right:solid 0.5pt"&gt;&lt;p style="text-align:right"&gt;&lt;span style="color:black;font-family:Consolas;font-size:8pt"&gt;694&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td valign="bottom" style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid 0.5pt;border-right:solid 0.5pt"&gt;&lt;p style="text-align:right"&gt;&lt;span style="color:black;font-family:Consolas;font-size:8pt"&gt;1645&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td valign="bottom" style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid 0.5pt;border-right:solid 0.5pt"&gt;&lt;p style="text-align:right"&gt;&lt;span style="color:black;font-family:Consolas;font-size:8pt"&gt;9132&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td valign="bottom" style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid 0.5pt;border-right:solid 0.5pt"&gt;&lt;p style="text-align:right"&gt;&lt;span style="color:black;font-family:Consolas;font-size:8pt"&gt;18484&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td valign="bottom" style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid 0.5pt;border-right:solid 0.5pt"&gt;&lt;p style="text-align:right"&gt;&lt;span style="color:black;font-family:Consolas;font-size:8pt"&gt;813&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td valign="bottom" style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid 0.5pt;border-right:solid 0.5pt"&gt;&lt;p style="text-align:right"&gt;&lt;span style="color:black;font-family:Consolas;font-size:8pt"&gt;4&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td valign="bottom" style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid 0.5pt;border-right:solid 0.5pt"&gt;&lt;p&gt;&lt;span style="color:black;font-family:Consolas;font-size:8pt"&gt;****&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:7px;padding-right:7px;border-top:none;border-left:solid 0.5pt;border-bottom:solid 0.5pt;border-right:solid 0.5pt"&gt;&lt;p&gt;&lt;span style="color:black;font-family:Consolas;font-size:8pt"&gt;4&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td valign="bottom" style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid 0.5pt;border-right:solid 0.5pt"&gt;&lt;p style="text-align:right"&gt;&lt;span style="color:black;font-family:Consolas;font-size:8pt"&gt;0&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td valign="bottom" style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid 0.5pt;border-right:solid 0.5pt"&gt;&lt;p style="text-align:right"&gt;&lt;span style="color:black;font-family:Consolas;font-size:8pt"&gt;795&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td valign="bottom" style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid 0.5pt;border-right:solid 0.5pt"&gt;&lt;p style="text-align:right"&gt;&lt;span style="color:black;font-family:Consolas;font-size:8pt"&gt;1261&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td valign="bottom" style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid 0.5pt;border-right:solid 0.5pt"&gt;&lt;p style="text-align:right"&gt;&lt;span style="color:black;font-family:Consolas;font-size:8pt"&gt;9352&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td valign="bottom" style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid 0.5pt;border-right:solid 0.5pt"&gt;&lt;p style="text-align:right"&gt;&lt;span style="color:black;font-family:Consolas;font-size:8pt"&gt;18484&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td valign="bottom" style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid 0.5pt;border-right:solid 0.5pt"&gt;&lt;p style="text-align:right"&gt;&lt;span style="color:black;font-family:Consolas;font-size:8pt"&gt;638&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td valign="bottom" style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid 0.5pt;border-right:solid 0.5pt"&gt;&lt;p style="text-align:right"&gt;&lt;span style="color:black;font-family:Consolas;font-size:8pt"&gt;4&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td valign="bottom" style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid 0.5pt;border-right:solid 0.5pt"&gt;&lt;p&gt;&lt;span style="color:black;font-family:Consolas;font-size:8pt"&gt;****&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:7px;padding-right:7px;border-top:none;border-left:solid 0.5pt;border-bottom:solid 0.5pt;border-right:solid 0.5pt"&gt;&lt;p&gt;&lt;span style="color:black;font-family:Consolas;font-size:8pt"&gt;4&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td valign="bottom" style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid 0.5pt;border-right:solid 0.5pt"&gt;&lt;p style="text-align:right"&gt;&lt;span style="color:black;font-family:Consolas;font-size:8pt"&gt;1&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td valign="bottom" style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid 0.5pt;border-right:solid 0.5pt"&gt;&lt;p style="text-align:right"&gt;&lt;span style="color:black;font-family:Consolas;font-size:8pt"&gt;466&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td valign="bottom" style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid 0.5pt;border-right:solid 0.5pt"&gt;&lt;p style="text-align:right"&gt;&lt;span style="color:black;font-family:Consolas;font-size:8pt"&gt;1261&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td valign="bottom" style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid 0.5pt;border-right:solid 0.5pt"&gt;&lt;p style="text-align:right"&gt;&lt;span style="color:black;font-family:Consolas;font-size:8pt"&gt;9132&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td valign="bottom" style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid 0.5pt;border-right:solid 0.5pt"&gt;&lt;p style="text-align:right"&gt;&lt;span style="color:black;font-family:Consolas;font-size:8pt"&gt;18484&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td valign="bottom" style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid 0.5pt;border-right:solid 0.5pt"&gt;&lt;p style="text-align:right"&gt;&lt;span style="color:black;font-family:Consolas;font-size:8pt"&gt;623&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td valign="bottom" style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid 0.5pt;border-right:solid 0.5pt"&gt;&lt;p style="text-align:right"&gt;&lt;span style="color:black;font-family:Consolas;font-size:8pt"&gt;3&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td valign="bottom" style="padding-left:7px;padding-right:7px;border-top:none;border-left:none;border-bottom:solid 0.5pt;border-right:solid 0.5pt"&gt;&lt;p&gt;&lt;span style="color:black;font-family:Consolas;font-size:8pt"&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;Next part is to create the report. Use the Matrix (OK, Tablix with row and column groups) control. The trick is what to put in the cells of the matrix. The following screenshot  shows the expression used for the most detailed cell of the matrix.
&lt;/p&gt;&lt;p&gt;&lt;img src="/dsarka/Lists/Photos/020513_0844_Contingency2.png" alt="" /&gt;
	&lt;/p&gt;&lt;p&gt;Similar expression are used for other cells with data. The expression for the column total, i.e. for the cell that is the intersection of the [OnCols] column and Total row, is
&lt;/p&gt;&lt;p&gt;&lt;span style="color:#006600;font-family:Consolas;font-size:9pt"&gt;&lt;strong&gt;=Sum(Fields!ObservedCombination.Value) &amp;amp; Chr(10) &amp;amp; Chr(13) &amp;amp;
&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:#006600;font-family:Consolas;font-size:9pt"&gt;&lt;strong&gt; Sum(Fields!ExpectedCombination.Value) &amp;amp; Chr(10) &amp;amp; Chr(13) &amp;amp;
&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:#006600;font-family:Consolas;font-size:9pt"&gt;&lt;strong&gt; Round(Sum(100 * Fields!ObservedCombination.Value) / 
&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:#006600;font-family:Consolas;font-size:9pt"&gt;&lt;strong&gt;                 Sum(Fields!ObservedOnRows.Value), 2) &amp;amp; &amp;quot;%&amp;quot;  &amp;amp; Chr(10) &amp;amp; Chr(13) &amp;amp;
&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:#006600;font-family:Consolas;font-size:9pt"&gt;&lt;strong&gt; Round(Sum(100 * Fields!ObservedCombination.Value) / 
&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:#006600;font-family:Consolas;font-size:9pt"&gt;&lt;strong&gt;                 Sum(Fields!ObservedCombination.Value), 2) &amp;amp; &amp;quot;%&amp;quot;  &amp;amp; Chr(10) &amp;amp; Chr(13) &amp;amp;
&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:#006600;font-family:Consolas;font-size:9pt"&gt;&lt;strong&gt; Round(Sum(100 * Fields!ObservedCombination.Value) / 
&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:#006600;font-family:Consolas;font-size:9pt"&gt;&lt;strong&gt;                 Sum(Fields!ObservedOnRows.Value), 2) &amp;amp; &amp;quot;%&amp;quot;  &amp;amp; Chr(10) &amp;amp; Chr(13)
&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;The expression for the row totals is
&lt;/p&gt;&lt;p&gt;&lt;span style="color:#006600;font-family:Consolas;font-size:9pt"&gt;&lt;strong&gt;=Sum(Fields!ObservedCombination.Value) &amp;amp; Chr(10) &amp;amp; Chr(13) &amp;amp;
&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:#006600;font-family:Consolas;font-size:9pt"&gt;&lt;strong&gt; Sum(Fields!ExpectedCombination.Value) &amp;amp; Chr(10) &amp;amp; Chr(13) &amp;amp;
&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:#006600;font-family:Consolas;font-size:9pt"&gt;&lt;strong&gt; Round(Sum(100 * Fields!ObservedCombination.Value) / 
&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:#006600;font-family:Consolas;font-size:9pt"&gt;&lt;strong&gt;                 Sum(Fields!ObservedCombination.Value), 2) &amp;amp; &amp;quot;%&amp;quot;  &amp;amp; Chr(10) &amp;amp; Chr(13) &amp;amp;
&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:#006600;font-family:Consolas;font-size:9pt"&gt;&lt;strong&gt; Round(Sum(100 * Fields!ObservedCombination.Value) / 
&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:#006600;font-family:Consolas;font-size:9pt"&gt;&lt;strong&gt;                 Sum(Fields!ObservedOnCols.Value), 2) &amp;amp; &amp;quot;%&amp;quot;  &amp;amp; Chr(10) &amp;amp; Chr(13) &amp;amp;
&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:#006600;font-family:Consolas;font-size:9pt"&gt;&lt;strong&gt; Round(Sum(100 * Fields!ObservedCombination.Value) / 
&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:#006600;font-family:Consolas;font-size:9pt"&gt;&lt;strong&gt;                 Sum(Fields!ObservedOnCols.Value), 2) &amp;amp; &amp;quot;%&amp;quot;  &amp;amp; Chr(10) &amp;amp; Chr(13)
&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;The expression for the grand total cell is
&lt;/p&gt;&lt;p&gt;&lt;span style="color:#006600;font-family:Consolas;font-size:9pt"&gt;&lt;strong&gt;=Sum(Fields!ObservedCombination.Value) &amp;amp; Chr(10) &amp;amp; Chr(13) &amp;amp;
&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:#006600;font-family:Consolas;font-size:9pt"&gt;&lt;strong&gt; Sum(Fields!ExpectedCombination.Value) &amp;amp; Chr(10) &amp;amp; Chr(13) &amp;amp;
&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:#006600;font-family:Consolas;font-size:9pt"&gt;&lt;strong&gt; Round(Sum(100 * Fields!ObservedCombination.Value) / 
&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:#006600;font-family:Consolas;font-size:9pt"&gt;&lt;strong&gt;                 Sum(Fields!ObservedCombination.Value), 2) &amp;amp; &amp;quot;%&amp;quot;  &amp;amp; Chr(10) &amp;amp; Chr(13) &amp;amp;
&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:#006600;font-family:Consolas;font-size:9pt"&gt;&lt;strong&gt; Round(Sum(100 * Fields!ObservedCombination.Value) / 
&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:#006600;font-family:Consolas;font-size:9pt"&gt;&lt;strong&gt;                 Sum(Fields!ObservedCombination.Value), 2) &amp;amp; &amp;quot;%&amp;quot;  &amp;amp; Chr(10) &amp;amp; Chr(13) &amp;amp;
&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:#006600;font-family:Consolas;font-size:9pt"&gt;&lt;strong&gt; Round(Sum(100 * Fields!ObservedCombination.Value) / 
&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:#006600;font-family:Consolas;font-size:9pt"&gt;&lt;strong&gt;                 Sum(Fields!ObservedCombination.Value), 2) &amp;amp; &amp;quot;%&amp;quot;  &amp;amp; Chr(10) &amp;amp; Chr(13)
&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;The expression for the row header is
&lt;/p&gt;&lt;p&gt;&lt;span style="color:#006600;font-family:Consolas;font-size:9pt"&gt;&lt;strong&gt;=Fields!OnRows.Value &amp;amp; &amp;quot;    Observed Frequency&amp;quot; &amp;amp; Chr(10) &amp;amp; Chr(13) &amp;amp;
&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:#006600;font-family:Consolas;font-size:9pt"&gt;&lt;strong&gt; &amp;quot;        Expected Frequency&amp;quot; &amp;amp; Chr(10) &amp;amp; Chr(13) &amp;amp;
&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:#006600;font-family:Consolas;font-size:9pt"&gt;&lt;strong&gt; &amp;quot;        Row Percent&amp;quot; &amp;amp; Chr(10) &amp;amp; Chr(13) &amp;amp;
&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:#006600;font-family:Consolas;font-size:9pt"&gt;&lt;strong&gt; &amp;quot;        Column Percent&amp;quot; &amp;amp; Chr(10) &amp;amp; Chr(13) &amp;amp;
&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:#006600;font-family:Consolas;font-size:9pt"&gt;&lt;strong&gt; &amp;quot;        Total Percent&amp;quot; &amp;amp; Chr(10) &amp;amp; Chr(13) &amp;amp;
&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:#006600;font-family:Consolas;font-size:9pt"&gt;&lt;strong&gt; Chr(10) &amp;amp; Chr(13) &amp;amp;
&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:#006600;font-family:Consolas;font-size:9pt"&gt;&lt;strong&gt; &amp;quot;        Histogram&amp;quot;
&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;The expression for the value of the linear pointer of the gauge is
&lt;/p&gt;&lt;p&gt;&lt;span style="color:#006600;font-family:Consolas;font-size:9pt"&gt;&lt;strong&gt;= Round(Sum(100 * Fields!ObservedCombination.Value) / 
&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:#006600;font-family:Consolas;font-size:9pt"&gt;&lt;strong&gt;        Sum(Fields!ObservedTotal.Value), 2)
&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;And the expression for the max value for the gauge scale is
&lt;/p&gt;&lt;p&gt;&lt;span style="color:#006600;font-family:Consolas;font-size:9pt"&gt;&lt;strong&gt;=Max(Fields!PctTotal.Value, &amp;quot;ContTable&amp;quot;)
&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;This all together looks like a lot of work. However, it is not that bad. The source query is not too complicated, and you can easily change the columns and the table used for the analysis, as their names appear once in the common table expression only. The report does not refer to the source names anywhere, so it is simple to copy it and use for a new report with a contingency table for two different columns. You just need to change the report header and the top left cell text of the matrix, which shows the columns used for the report.&lt;/p&gt;&lt;/div&gt;</description>
      <category>Data Mining</category>
      <dc:language xmlns:dc="http://purl.org/dc/elements/1.1/">English</dc:language>
    </item>
    <item>
      <link>http://blogs.solidq.com/dsarka/Post.aspx?ID=142&amp;title=New+Courses+in+Stockholm</link>
      <title>New Courses in Stockholm</title>
      <ItemID>142</ItemID>
      <pubDate>Tue, 22 Jan 2013 08:10:39 GMT</pubDate>
      <author>Dejan Sarka</author>
      <authorID>46</authorID>
      <wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.solidq.com/dsarka/_layouts/listfeed.aspx?List=%7b0efadf9d-cec9-4b8e-925d-3d4d30783dc8%7d</wfw:commentRss>
      <slash:comments xmlns:slash="http://purl.org/rss/1.0/modules/slash/">0</slash:comments>
      <description>&lt;div class="ExternalClassA5E48DD2068142D688CD93A13D296A3E"&gt;&lt;p&gt;After finishing two books, I am not finished with writing yet. I renewed my Data Mining course to SQL Server 2012 version. In addition, I am currently writing an Enterprise Information Management course with title Data Quality and Master Data Management with SQL Server 2012. I am glad I can announce that we already scheduled these two new courses. The first &lt;a href="http://www.sqlserverutbildning.se/CoursesByTrainer.aspx?trainerId=8&amp;amp;name=Dejan+Sarka"&gt;public schedule&lt;/a&gt; for them is already on our Web – Stockholm, May 6&lt;sup&gt;th&lt;/sup&gt; to 8&lt;sup&gt;th&lt;/sup&gt; for the Data Mining course and May 9&lt;sup&gt;th&lt;/sup&gt; to 10&lt;sup&gt;th&lt;/sup&gt; for the Data Quality and Master Data Management course.&lt;/p&gt;&lt;/div&gt;</description>
      <dc:language xmlns:dc="http://purl.org/dc/elements/1.1/">English</dc:language>
    </item>
    <item>
      <link>http://blogs.solidq.com/dsarka/Post.aspx?ID=141&amp;title=SQL+Saturday+176+Pordenone+Presentation</link>
      <title>SQL Saturday 176 Pordenone Presentation</title>
      <ItemID>141</ItemID>
      <pubDate>Mon, 05 Nov 2012 19:32:34 GMT</pubDate>
      <author>Dejan Sarka</author>
      <authorID>46</authorID>
      <wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.solidq.com/dsarka/_layouts/listfeed.aspx?List=%7b0efadf9d-cec9-4b8e-925d-3d4d30783dc8%7d</wfw:commentRss>
      <slash:comments xmlns:slash="http://purl.org/rss/1.0/modules/slash/">0</slash:comments>
      <description>&lt;div class="ExternalClass202DE1A80F8F41E6A49D27CBEB3712D6"&gt;&lt;p&gt;&lt;span style="color:#1f497d"&gt;I would like to invite you to my presentations in the &lt;a href="http://www.sqlsaturday.com/176/schedule.aspx"&gt;SQL Saturday #176&lt;/a&gt; event in Pordenone, Italy, November 17&lt;sup&gt;th&lt;/sup&gt;, 2012. I am having two presentations: Market Basket Analysis and High Performance Statistical Queries. I just want to give you little bit more background about the later.
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:#1f497d"&gt;SQL Server suite has nearly everything you need for a good BI project. Nearly. Comparing to some competitive products, SQL Server suite lacks statistical procedures and functions. Statistics is very useful for understanding your data. You can use it as a final result of a report, or, like mainly I do, in the first stage of a data mining project, for data overview. I started to write my own statistical queries back in SQL Server 2000 time. With version 2012, because of important new support for analytical queries in Transact-SQL, I decided to rewrite most of my queries. The most important gain is much better performance of the queries. However, when talking about performance for these queries, I mean the performance by the algorithm. My main goal was to calculate everything I need in a single pass through the data. Of course, performance can be further improved by indexes. However, index tuning is a fairly broadly spread knowledge, while understanding the mathematics, knowing the language, and ability to find an effective algorithm is not that simple. In the &amp;quot;High Performance Statistical Queries&amp;quot; presentation I am explaining the statistics, the algorithms, and show those efficient queries. Beside queries, there is also another important part of this presentation. Many people say that statistics lies. However, this is not true; during the presentation, I explain the meaning of each statistics, how it is calculated, and how to correctly interpret the results. Therefore, attendees get from this presentation:
&lt;/span&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="color:#1f497d"&gt;explanation how to efficiently use new T-SQL Window functions and other T-SQL elements;
&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="color:#1f497d"&gt;a correct understanding of quite a few statistics;
&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="color:#1f497d"&gt;ideas for their own BI projects;
&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="color:#1f497d"&gt;working queries that they can use immediately in their reports or for data overview.
&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;span style="color:#1f497d"&gt;Of course, the level of the presentation is very high, and good knowledge of Transact-SQL is a prerequisite.
&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;</description>
      <dc:language xmlns:dc="http://purl.org/dc/elements/1.1/">English</dc:language>
    </item>
    <item>
      <link>http://blogs.solidq.com/dsarka/Post.aspx?ID=140&amp;title=MS+SQL+Server+2012+Learning+Path+(Slovenia)</link>
      <title>MS SQL Server 2012 Learning Path (Slovenia)</title>
      <ItemID>140</ItemID>
      <pubDate>Wed, 31 Oct 2012 08:45:25 GMT</pubDate>
      <author>Dejan Sarka</author>
      <authorID>46</authorID>
      <wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.solidq.com/dsarka/_layouts/listfeed.aspx?List=%7b0efadf9d-cec9-4b8e-925d-3d4d30783dc8%7d</wfw:commentRss>
      <slash:comments xmlns:slash="http://purl.org/rss/1.0/modules/slash/">0</slash:comments>
      <description>&lt;div class="ExternalClass1D411997FB994DE3B5EB7A9A9230C3BA"&gt;&lt;p&gt;I created a diagram for the standard learning path in Slovenia for SQL Server 2012. We are implementing this learning path together with &lt;a href="http://www.kompas-xnet.si/CPLStecaji"&gt;Kompas Xnet&lt;/a&gt;. The learning path includes both, Microsoft and SolidQ courses. Our courses complement Microsoft courses. Note that for other countries, other learning paths might be more appropriate. SolidQ offers many &lt;a href="http://www.solidq.com/gl-en/training/Pages/course-catalogue.aspx?page=1"&gt;SQL Server and related technologies courses&lt;/a&gt;. We offer some of these courses in Slovenia as well; however, as these additional courses are usually scheduled on demand, I did not include them in this standard learning path picture. The path includes the following categories:
&lt;/p&gt;&lt;ul&gt;&lt;li&gt;DBA – database administration;
&lt;/li&gt;&lt;li&gt;DEV – database development;
&lt;/li&gt;&lt;li&gt;DW / EIM – data warehousing and enterprise information management;
&lt;/li&gt;&lt;li&gt;BI – business intelligence.
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Here is the diagram.
&lt;/p&gt;&lt;p&gt;&lt;img src="/dsarka/Lists/Photos/103112_0744_MSSQLServer1.png" alt="" /&gt;&lt;/p&gt;&lt;/div&gt;</description>
      <dc:language xmlns:dc="http://purl.org/dc/elements/1.1/">English</dc:language>
    </item>
    <item>
      <link>http://blogs.solidq.com/dsarka/Post.aspx?ID=139&amp;title=SQL+Server+2012+MDS+Excel+Add-in+Link+and+DQS+Integration</link>
      <title>SQL Server 2012 MDS Excel Add-in Link and DQS Integration</title>
      <ItemID>139</ItemID>
      <pubDate>Sun, 11 Mar 2012 08:15:57 GMT</pubDate>
      <author>Dejan Sarka</author>
      <authorID>46</authorID>
      <wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.solidq.com/dsarka/_layouts/listfeed.aspx?List=%7b0efadf9d-cec9-4b8e-925d-3d4d30783dc8%7d</wfw:commentRss>
      <slash:comments xmlns:slash="http://purl.org/rss/1.0/modules/slash/">0</slash:comments>
      <description>&lt;div class="ExternalClass7BF717FEE6A34605B3E031A929507BAE"&gt;&lt;p&gt;In SQL 2012 RTM, in Master Data Manager home page, there is a link to MDS Excel Add-in. However, the link is broken. However, as my good friend Allan Mitchell pointed me, you can d&lt;span style="color:black"&gt;ownload it from SQL Server 2012 feature Pack site - &lt;a href="http://www.microsoft.com/download/en/details.aspx?id=29065"&gt;http://www.microsoft.com/download/en/details.aspx?id=29065&lt;/a&gt;. &lt;/span&gt;
	&lt;/p&gt;&lt;p&gt;In 2012 RTM MDS Configuration Manager, there is still button for enabling DQS integration. However, the button is disabled, and you cannot use it. Do not worry, it is not necessary anymore. The button should simply be removed.&lt;/p&gt;&lt;/div&gt;</description>
      <category>Data Quality</category>
      <dc:language xmlns:dc="http://purl.org/dc/elements/1.1/">English</dc:language>
    </item>
    <item>
      <link>http://blogs.solidq.com/dsarka/Post.aspx?ID=138&amp;title=MDS+2012+RC0+and+Windows+Built-In+Groups</link>
      <title>MDS 2012 RC0 and Windows Built-In Groups</title>
      <ItemID>138</ItemID>
      <pubDate>Tue, 21 Feb 2012 07:13:30 GMT</pubDate>
      <author>Dejan Sarka</author>
      <authorID>46</authorID>
      <wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.solidq.com/dsarka/_layouts/listfeed.aspx?List=%7b0efadf9d-cec9-4b8e-925d-3d4d30783dc8%7d</wfw:commentRss>
      <slash:comments xmlns:slash="http://purl.org/rss/1.0/modules/slash/">0</slash:comments>
      <description>&lt;div class="ExternalClass6216366189B3417E9B669A49CFA4BC85"&gt;&lt;p&gt;I noticed an interesting issue with SQL Server 2012 RC0 Master Data Services. It seems that security does not work for some built-in Windows groups. It looks like MDS is not recognizing membership of some groups. For example, the following picture shows there are no members of my local Power Users groups. However, I gave permissions to this group, and I added a user to this group. Then I logged in to MDS with that user account. I did not inherit any permission from the group, and the group membership apparently was not resolved.
&lt;/p&gt;&lt;p&gt;&lt;img src="/dsarka/Lists/Photos/022112_0613_MDS2012RC0a1.png" alt="" /&gt;
	&lt;/p&gt;&lt;p&gt;I mentioned this does not work for &amp;quot;some&amp;quot; group. Yes, this is the nasty part – seems that MDS security works for some built-in Windows groups and does not work for others. Currently, the only pattern I found is that it does not work if a group contains space in its name, if the name is delimited. For example, security works for Users built-in group and does not work for Power Users and Backup Administrators. However, if you create your own group with delimited name, or your own user with delimited name, everything works.
&lt;/p&gt;&lt;p&gt;I tested this on Windows Server 2008 R2 64 SP1, SQL Server 2012 RC0.
&lt;/p&gt;&lt;p&gt;For now, I would suggest that you simply create your own Windows groups, and not use delimited names, just to be on the safe side.&lt;/p&gt;&lt;/div&gt;</description>
      <category>Data Quality</category>
      <dc:language xmlns:dc="http://purl.org/dc/elements/1.1/">English</dc:language>
    </item>
    <item>
      <link>http://blogs.solidq.com/dsarka/Post.aspx?ID=137&amp;title=Why+Time+Series+Forecasts+Impossible+Numbers</link>
      <title>Why Time Series Forecasts Impossible Numbers</title>
      <ItemID>137</ItemID>
      <pubDate>Thu, 16 Feb 2012 12:51:48 GMT</pubDate>
      <author>Dejan Sarka</author>
      <authorID>46</authorID>
      <wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.solidq.com/dsarka/_layouts/listfeed.aspx?List=%7b0efadf9d-cec9-4b8e-925d-3d4d30783dc8%7d</wfw:commentRss>
      <slash:comments xmlns:slash="http://purl.org/rss/1.0/modules/slash/">0</slash:comments>
      <description>&lt;div class="ExternalClassE73C9CD60E5A41C5A5F03BF4ACCBB3AF"&gt;&lt;p&gt;How can you measure the quality of forecasted values with the Time Series algorithm when you do not have the actual data yet? Waiting until the data is available is likely not practical because by that time, you might already have made wrong decisions based on your forecasting model. There is a better way to measure the performance of the Time Series model. Using a specific number of periods from the past, you can try to forecast present values. If the model performs well for forecasting present values, probability is good that it will perform well for forecasting future values.
&lt;/p&gt;&lt;p&gt;You control the creation of historical models by using two algorithm parameters: HISTORICAL_MODEL_COUNT and HISTORICAL_MODEL_GAP. The first one controls the number of historical models that will be built, and the second one controls the number of time slices between historical models. Figure 1 uses SSAS 2005 to show historical forecasts (the dotted lines before the current point in time) for the R-250 model for sales amount in Europe. What you can see is that the forecasts are very unstable and, thus, not very reliable. You can also see that the forecasts (the dotted) become even negative, and this is true for both, historical and future forecasts. 
&lt;/p&gt;&lt;p&gt;&lt;img src="/dsarka/Lists/Photos/021612_1151_WhyTimeSeri1.png" alt="" /&gt;&lt;strong&gt;
		&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Figure 1:&lt;/strong&gt; Historical and future forecasts in SSAS 2005
&lt;/p&gt;&lt;p&gt;The reason for this instability is that SSAS 2005 Time Series use a single algorithm, Auto-Regression Trees with Cross-Prediction (ARTXP); this algorithm provides good short-term forecasts only. SSAS notes this instability in long-term forecasts and simply stops forecasting.
&lt;/p&gt;&lt;p&gt;In SSAS 2012 (and 2008 and 2008 R2), you can use a blend of two different Time Series algorithms for forecasting. Besides ARTXP, SSAS 2012 provides the Auto-Regressive Integrated Moving Average (ARIMA) algorithm, which is much better for long-term forecasts. After you upgrade your Time Series models to SSAS 2012, you should refine the blend of ARTXP and ARIMA in your models by changing the FORECAST_METHOD and PREDICTION_SMOOTHING algorithm parameters. The first parameter uses an automatic method to determine the mixture of the algorithms, and the second one (available only in Enterprise Edition) lets you define the blend manually.
&lt;/p&gt;&lt;p&gt;As you can see in Figure 2, the upgraded version of the Time Series algorithm uses a MIXED forecast method (default). Therefore, ARTXP is used for short-term forecasts and ARIMA for long-term forecasts. 
&lt;/p&gt;&lt;p&gt;&lt;img src="/dsarka/Lists/Photos/021612_1151_WhyTimeSeri2.png" alt="" /&gt;&lt;strong&gt;
		&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Figure 2:&lt;/strong&gt; Time Series algorithm parameters in SSAS 2012
&lt;/p&gt;&lt;p&gt;Note that even if you use ARTXP as forecast method only, you can still use the MAXIMUM_SERIES_VALUE and MINIMUM_SERIES_VALUE parameters to limit the range of the forecasted values.
&lt;/p&gt;&lt;p&gt;Figure 3 shows the results – forecast for the R-250 model for sales amount in Europe. As you can see, forecasts quickly stabilize and even long-term forecasts never achieve impossible values, like values lower than zero. Although, from the figure 3, it seems that historical forecasts are unstable as well. This is because we used only forecasts for two points in the past (the HISTORICAL_MODEL_GAP parameter), and thus only ARTXP method was used.
&lt;/p&gt;&lt;p&gt;&lt;img src="/dsarka/Lists/Photos/021612_1151_WhyTimeSeri3.png" alt="" /&gt;
	&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Figure 3:&lt;/strong&gt; Historical and future forecasts in SSAS 2012
&lt;/p&gt;&lt;p&gt;In short: if you see impossible numbers forecasted for historical or future forecasts, you are probably using SSAS 2005, or SSAS higher edition, but ARTXP algorithm only. To learn more about Time Series algorithm parameters, see the SQL Server 2012 BOL topic &amp;quot;&lt;a href="http://msdn.microsoft.com/en-us/library/ms174923(SQL.110).aspx"&gt;Microsoft Time Series Algorithm&lt;/a&gt;&amp;quot; (http://msdn.microsoft.com/en-us/library/ms174923(SQL.110).aspx).
&lt;/p&gt;&lt;/div&gt;</description>
      <dc:language xmlns:dc="http://purl.org/dc/elements/1.1/">English</dc:language>
    </item>
  </channel>
</rss>