<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-2046028067618905204</id><updated>2011-11-01T19:07:27.708-07:00</updated><category term='Patrick LeBlanc'/><category term='Report Builder 3.0'/><category term='SQL Saturday'/><category term='SQL Server'/><category term='Partitioning'/><category term='KPI'/><category term='MVP'/><category term='Table-valued Parameters'/><category term='Presenting'/><category term='SQLLunch'/><category term='Reporting Services'/><category term='Change Data Capture'/><category term='Business Intelligence'/><category term='PASS'/><category term='Live Meeting'/><category term='Warehousing'/><category term='Window 7'/><category term='Community'/><category term='SSAS'/><category term='Linear Gauge Control'/><category term='User Group'/><category term='SSIS'/><category term='MDX'/><category term='.NET'/><category term='Speaking'/><title type='text'>SQLDownSouth</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://sqldownsouth.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2046028067618905204/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://sqldownsouth.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/2046028067618905204/posts/default?start-index=101&amp;max-results=100'/><author><name>Patrick LeBlanc</name><uri>http://www.blogger.com/profile/01738972122068246140</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_barBiSO8ITc/TGG9UkphClI/AAAAAAAAAPY/dGyatbRnf0Y/S220/PatrickHeadShotFull.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>148</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-2046028067618905204.post-800231567681808485</id><published>2011-01-31T10:13:00.001-08:00</published><updated>2011-01-31T10:13:16.267-08:00</updated><title type='text'>SQL Lunch - Introduction to Change Data Capture</title><content type='html'>&lt;h5&gt;Join me tomorrow for a little CDC.&lt;/h5&gt;  &lt;h5&gt;&lt;a href="http://www.sqllunch.com/Meeting.aspx?lunchid=47"&gt;#47-Introduction to Change Data Capture&lt;/a&gt;&lt;/h5&gt;  &lt;p&gt;&lt;img alt="Lunch Image" src="http://www.sqllunch.com/images/Lunch%20Images/PatrickHeadShot.jpg" width="115" height="130" /&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Speaker:&lt;/b&gt; Patrick LeBlanc&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Add To Outlook: &lt;/b&gt;&lt;a href="http://www.sqllunch.com/AddtoOutlook/lunch47.ics"&gt;Add To Calendar&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Meeting URL:&lt;/strong&gt;&amp;#160; &lt;a title="https://www.livemeeting.com/cc/usergroups/join?id=269DRP&amp;amp;role=attend" href="https://www.livemeeting.com/cc/usergroups/join?id=269DRP&amp;amp;role=attend"&gt;https://www.livemeeting.com/cc/usergroups/join?id=269DRP&amp;amp;role=attend&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Date and Time:&lt;/b&gt; 2/1/2011 11:30:00 AM CST     &lt;br /&gt;&lt;b&gt;BIO: &lt;/b&gt;Patrick LeBlanc, SQL Server MVP, is currently a Business Intelligence Architect for Pragmatic Works. He has worked as a SQL Server DBA for the past 9 years. His experience includes working in the Educational, Advertising, Mortgage, Medical and Financial Industries. He is also the founder of TSQLScripts.com, SQLLunch.com and the President of the Baton Rouge Area SQL Server User Group. Patrick is a regular speaker at various SQL Server community events, including SQL Saturday’s, User Groups and the SQL Lunch.     &lt;br /&gt;&lt;b&gt;Topic: &lt;/b&gt;#47-Introduction to Change Data Capture     &lt;br /&gt;In this session Patrick will introduce the basic concepts for configuring Change Data Capture (CDC). He will explain how to configure CDC at the database level and for each table within the database. In addition, Patrick will explain a few techniques that can be that can be used to load your Data Warehouse Incrementally with CDC.&lt;/p&gt;  &lt;p&gt;Talk to you soon,&lt;/p&gt;  &lt;p&gt;Patrick LeBlanc, MVP&lt;/p&gt;  &lt;p&gt;Founder, &lt;a href="http://www.SQLLunch.com"&gt;www.SQLLunch.com&lt;/a&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2046028067618905204-800231567681808485?l=sqldownsouth.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sqldownsouth.blogspot.com/feeds/800231567681808485/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sqldownsouth.blogspot.com/2011/01/sql-lunch-introduction-to-change-data.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2046028067618905204/posts/default/800231567681808485'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2046028067618905204/posts/default/800231567681808485'/><link rel='alternate' type='text/html' href='http://sqldownsouth.blogspot.com/2011/01/sql-lunch-introduction-to-change-data.html' title='SQL Lunch - Introduction to Change Data Capture'/><author><name>Patrick LeBlanc</name><uri>http://www.blogger.com/profile/01738972122068246140</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_barBiSO8ITc/TGG9UkphClI/AAAAAAAAAPY/dGyatbRnf0Y/S220/PatrickHeadShotFull.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2046028067618905204.post-8259611142828577614</id><published>2011-01-18T10:18:00.001-08:00</published><updated>2011-01-18T10:18:19.559-08:00</updated><title type='text'>SQL Lunch - Building a Performance Point Dashboard</title><content type='html'>&lt;h5&gt;Don't forget to attend the SQLLunch tomorrow.&lt;/h5&gt;  &lt;h5&gt;&lt;a href="http://sqllunch.com/Meeting.aspx?lunchid=35"&gt;#35-Building your first PerformancePoint Dashboard in SharePoint 2010&lt;/a&gt;&lt;/h5&gt;  &lt;p&gt;&lt;img alt="Lunch Image" src="http://sqllunch.com/images/Lunch%20Images/AdamJorgensen.jpg" width="115" height="130" /&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Speaker:&lt;/b&gt; Adam Jorgensen, SQL Server MVP&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Add To Outlook: &lt;/b&gt;&lt;a href="http://sqllunch.com/AddtoOutlook/lunch35.ics"&gt;Add To Calendar&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Date and Time:&lt;/b&gt; 1/19/2011 11:30:00 AM CST&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Meeting URL:&amp;#160; &lt;a href="https://www.livemeeting.com/cc/usergroups/join?id=RGZ9KD&amp;amp;role=attend"&gt;https://www.livemeeting.com/cc/usergroups/join?id=RGZ9KD&amp;amp;role=attend&lt;/a&gt; &lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;   &lt;br /&gt;&lt;b&gt;BIO: &lt;/b&gt;Adam Jorgensen , MBA, MCDBA, MCITP: BI has over a decade of experience leading organizations around the world in developing and implementing enterprise solutions. His passion is finding new and innovative avenues for clients and the community to embrace business intelligence and lower barriers to implementation. Adam is also very involved in the community as a featured author on SQLServerCentral, SQLShare, as well as a regular contributor to the SQLPASS Virtual User Groups for Business Intelligence and other organizations. He regularly speaks at industry group events, major conferences, Code Camps, and SQLSaturday events on strategic and technical topics. &lt;/p&gt;  &lt;p&gt;   &lt;br /&gt;&lt;b&gt;Topic: &lt;/b&gt;#35-Building your first PerformancePoint Dashboard in SharePoint 2010     &lt;br /&gt;Many of you have seen the coolness that is PerformancePoint in SharePoint 2010. Come get hands on with Adam as we go through the ins and outs of creating your first dashboard. See some of the cool visualizations you can use and how they work together to create a cool user experience. &lt;/p&gt;  &lt;p&gt;Talk to you soon,&lt;/p&gt;  &lt;p&gt;Patrick LeBlanc, MCST, SQL Server MVP&lt;/p&gt;  &lt;p&gt;Founder &lt;a href="http://www.sqllunch.com"&gt;www.sqllunch.com&lt;/a&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2046028067618905204-8259611142828577614?l=sqldownsouth.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sqldownsouth.blogspot.com/feeds/8259611142828577614/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sqldownsouth.blogspot.com/2011/01/sql-lunch-building-performance-point.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2046028067618905204/posts/default/8259611142828577614'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2046028067618905204/posts/default/8259611142828577614'/><link rel='alternate' type='text/html' href='http://sqldownsouth.blogspot.com/2011/01/sql-lunch-building-performance-point.html' title='SQL Lunch - Building a Performance Point Dashboard'/><author><name>Patrick LeBlanc</name><uri>http://www.blogger.com/profile/01738972122068246140</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_barBiSO8ITc/TGG9UkphClI/AAAAAAAAAPY/dGyatbRnf0Y/S220/PatrickHeadShotFull.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2046028067618905204.post-8171138565440525552</id><published>2011-01-16T21:10:00.001-08:00</published><updated>2011-01-16T21:10:28.051-08:00</updated><title type='text'>2011.....So (long pause), what's next for me?</title><content type='html'>&lt;p&gt;I've actually sat down to write this blog several times.&amp;#160; I am never indecisive when it comes to my thoughts or my writings.&amp;#160; Most of the time I just write what I feel.&amp;#160; For some reason this post was a little challenging.&amp;#160; It was hard for me to decide if I want to share my thoughts about what my goals were for the year.&amp;#160; After a couple of attempts I decided to share.&amp;#160; &lt;/p&gt;  &lt;p&gt;So, what's next for Patrick?&amp;#160; Before I delve to deep into my upcoming goals, I want to revisit 2010.&amp;#160; Last year was a very good year for me.&amp;#160; I accomplished everything I set out to do with the exception of one thing, record a few videos for &lt;a href="http://sqldownsouth.blogspot.com/www.sqlshare.com"&gt;SQL Share&lt;/a&gt;.&amp;#160; I have placed this pretty high on my priority list.&amp;#160; The main reason is because I explicitly stated it as a goal last year.&amp;#160; I am working on my second book now, which is monopolizing a fare amount of my free time between midnight and 5 am.&amp;#160; Therefore, most of things I mention here will not begin until I am finished with the first drafts of each chapter.&amp;#160; I have about 4 days of writing left.&amp;#160; I have to say, the two biggest highlights of 2010 for me was being selected as a SQL Server MVP and SQL Lunch turning 1 years old.&amp;#160; Overall, 2010 was a great year for me.&lt;/p&gt;  &lt;p&gt;So now, what's next for Patrick?&amp;#160; This is where I get stuck every time on this post.&amp;#160; What do I want to achieve or accomplish?&amp;#160; I am not saying that I have reached the pinnacle of my career.&amp;#160; There is still so much for me left to learn and do, but the challenge is deciding what and making sure that it will fit into my already busy schedule.&amp;#160; Therefore, I decided to only set a few goals now and add more as priorities change and the year goes on.&amp;#160; I plan on chronicling my progress on my blog so follow along.&amp;#160; So here are my goals, not resolutions:&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;u&gt;Brand Myself&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;I spent much of 2010 marketing and talking about the SQL Lunch that I actually forgot about Patrick.&amp;#160; I know some of you that have attended my sessions or met me in person may be thinking, are you kidding.&amp;#160; You talk about yourself constantly or at least your EGO does.&amp;#160; I recently purchased a domain, which will be announced in another blog, that will be all about me.&amp;#160; Yep, I said it all about me.&amp;#160; I will blog, post articles, videos, etc...&amp;#160; What's going to make it different is that I am going to share technical, professional, and personal thoughts there.&amp;#160; I am still going to syndicate all the technical stuff, but I am going to share other thoughts and ideas also.&amp;#160; The later will not get syndicated.&amp;#160; &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;u&gt;Grow Technically&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;I have decided to let my career (not job) and the questions I answer during presentations dictate which technical areas I will grow.&amp;#160; I figured if I focus on those things my knowledge should grow immensely since I am a consultant and I speak on a regular basis.&amp;#160; Now, I may decide after a couple months that these two avenues are not producing enough learning opportunities for me.&amp;#160; At that point, I will start to work on identifying what will be beneficial to me in all aspects of my career.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;u&gt;More Involved&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;I wear many hats in my life at this time.&amp;#160; Taking on anything new would probably not be a good idea.&amp;#160; So instead, I decided to focus on this things that I am apart of now.&amp;#160; For example, I run the SQL Server User Group here in Baton Rouge.&amp;#160; Our attendance has slumped over the past couple of months.&amp;#160; I plan on making some changes and implementing some new things to improve attendance.&amp;#160; One thing that I have to work on is bringing in speakers.&amp;#160; I think the low attendance can be directly attributed to the fact that we have the same four or five speakers speaking on a regular basis.&amp;#160; Another example, would be to improve the things I do as a PASS Regional Mentor.&amp;#160; I have some ideas that I think will help grow the User Group base in my region and I will be working with my co-Regional Mentor to get them implemented in an attempt to encourage other community members to start chapters in their area.&amp;#160; A final example, which has been brought to my attention several times, is to be a more consistent blogger.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;u&gt;Physically Fit&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;For me, becoming physically fit is going to require a life style change.&amp;#160; This change will require that I workout daily and change what I eat.&amp;#160; I started this about a week ago and so far not too good.&amp;#160; Fortunately I have someone that is pushing the process along.&amp;#160; I have been given a workout schedule and a daily menu.&amp;#160; Its going to take a little time for me to get this worked in to my life, but I am up to the challenge.&amp;#160; Eating lots and lost of junk food is a big part of my life, especially when I am traveling.&amp;#160; &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;u&gt;Family Time&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Family is really important to me.&amp;#160; Last year, as I ramped up on Business Intelligence, my job started to take precedence over my family.&amp;#160; No one complained, but when you come home and realize how much you have missed.&amp;#160; Weeeeell, it kind of makes you think.&amp;#160; As a result, I have worked with closely with my family to add their lives to my calendar before I add work.&amp;#160; So far we have the scheduled worked out through May.&amp;#160; As events come up I block that time on my calendar.&amp;#160; After all, what would life be without them.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;u&gt;Speaking&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Finally, I want to speak more.&amp;#160; For those of you that know me, you may be thinking really.&amp;#160; Last year I spoke more than 50 times.&amp;#160; I plan on at least meeting that number or exceeding it.&amp;#160; So if you are looking for a speaking for any of your events, please email me at &lt;a href="mailto:pleblanc@pragmaticworks.com"&gt;pleblanc@pragmaticworks.com&lt;/a&gt;.&amp;#160; I cannot physically attend all the meeting, but through the magic of Live Meeting I can make almost any meeting.&amp;#160; Last year I had the opportunity to speak to the Auckland SQL Server User Group.&amp;#160; I hope I get an opportunity to do that again this year.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;u&gt;PhD&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Believe it or not, I am currently working on my PhD in Science and Math Education.&amp;#160; I have completed all my course work and all that is left it to write the dissertation.&amp;#160; Well, I will be back in school the summer working with my committee to get that completed.&amp;#160; I have set a graduation date of May 2012.&amp;#160; Now that it is out there I must do it.&amp;#160; So when I am done, I am going to require that everyone refers to me as Dr. Ego :).&lt;/p&gt;  &lt;p&gt;So that is what's next for me.&amp;#160; I don't think these things are unattainable, just some things that I think will make me a better IT professional, father and husband.&lt;/p&gt;  &lt;p&gt;Talk to you soon and Happy New Year to you all,&lt;/p&gt;  &lt;p&gt;Patrick LeBlanc, SQL Server MVP&lt;/p&gt;  &lt;p&gt;Founder &lt;a href="http://www.sqllunch.com"&gt;www.sqllunch.com&lt;/a&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2046028067618905204-8171138565440525552?l=sqldownsouth.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sqldownsouth.blogspot.com/feeds/8171138565440525552/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sqldownsouth.blogspot.com/2011/01/2011so-long-pause-what-next-for-me.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2046028067618905204/posts/default/8171138565440525552'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2046028067618905204/posts/default/8171138565440525552'/><link rel='alternate' type='text/html' href='http://sqldownsouth.blogspot.com/2011/01/2011so-long-pause-what-next-for-me.html' title='2011.....So (long pause), what&amp;#39;s next for me?'/><author><name>Patrick LeBlanc</name><uri>http://www.blogger.com/profile/01738972122068246140</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_barBiSO8ITc/TGG9UkphClI/AAAAAAAAAPY/dGyatbRnf0Y/S220/PatrickHeadShotFull.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2046028067618905204.post-6248312003510624166</id><published>2011-01-16T21:08:00.001-08:00</published><updated>2011-01-16T21:08:15.165-08:00</updated><title type='text'>TechEd:  Session Preference Survey</title><content type='html'>&lt;p&gt;TechEd has listed some potential sessions for TechEd North America 2011 here:&amp;#160; &lt;a title="http://northamerica.msteched.com/sessionpreference?fbid=I1Ydc71JM4a" href="http://northamerica.msteched.com/sessionpreference?fbid=I1Ydc71JM4a."&gt;http://northamerica.msteched.com/sessionpreference?fbid=I1Ydc71JM4a.&lt;/a&gt;&amp;#160; They want to know which sessions you are interested in seeing.&amp;#160; I have one session on the list.&amp;#160; I am not going to say which one, since TechEd did not include the names on the site.&amp;#160; I like the idea, this way it's not a popularity contest.&amp;#160; If you have time, go and check out what they are doing.&amp;#160; Select your preferred sessions.&amp;#160; I think it's a great way to find out what the community wants.&lt;/p&gt;  &lt;p&gt;Talk to you soon,&lt;/p&gt;  &lt;p&gt;Patrick LeBlanc, SQL Server MVP&lt;/p&gt;  &lt;p&gt;Founder &lt;a href="http://www.SQLLunch.com"&gt;www.SQLLunch.com&lt;/a&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2046028067618905204-6248312003510624166?l=sqldownsouth.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sqldownsouth.blogspot.com/feeds/6248312003510624166/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sqldownsouth.blogspot.com/2011/01/teched-session-preference-survey.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2046028067618905204/posts/default/6248312003510624166'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2046028067618905204/posts/default/6248312003510624166'/><link rel='alternate' type='text/html' href='http://sqldownsouth.blogspot.com/2011/01/teched-session-preference-survey.html' title='TechEd:  Session Preference Survey'/><author><name>Patrick LeBlanc</name><uri>http://www.blogger.com/profile/01738972122068246140</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_barBiSO8ITc/TGG9UkphClI/AAAAAAAAAPY/dGyatbRnf0Y/S220/PatrickHeadShotFull.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2046028067618905204.post-8504166408365959014</id><published>2011-01-11T10:25:00.001-08:00</published><updated>2011-01-11T10:25:06.117-08:00</updated><title type='text'>January Baton Rouge SQL Server User Group</title><content type='html'>&lt;p&gt;The Baton Rouge SQL Server User Group will be hosting its first meeting of the new year.&amp;#160; Our meeting place has changed to &lt;a href="http://www.eng.lsu.edu/map/"&gt;Louisiana State University in Patrick F. Taylor Hall&lt;/a&gt;. Both SQL Saturday's held in Baton Rouge were located here.&amp;#160; If you haven't attended a meeting I recommend that you come out to this meeting.&amp;#160; We have two great presentations and some really great giveaways.&amp;#160; Wait, did I mention that I was speaking.&amp;#160; That should definitely get you out.&amp;#160; I will be also giving away a copy of our book, &lt;a href="http://www.amazon.com/Knights-Microsoft-Business-Intelligence-24-Hour/dp/0470889632/ref=ntt_at_ep_dpt_1/191-4666943-7898168"&gt;Knights Microsoft Business Intelligence 24 Hour Trainer &lt;/a&gt;.&amp;#160; Still not convinced, well there is always the free Pizza and great Networking.&amp;#160; The Baton Rouge .Net User Group will also be meeting that evening.&amp;#160; So, if you are in the area come and hang out with us.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Topics: &lt;/strong&gt;Introduction to SQL Replication – Transactional (Mark Verret) and Taming your SSIS Configuration Files (Patrick LeBlanc)&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Location: &lt;/strong&gt;LSU, Patrick F. Taylor Hall, Room 1118. &lt;a href="http://www.eng.lsu.edu/misc/directions.html"&gt;Click here for directions&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Date and Time: &lt;/strong&gt;1/12/2011 5:45:00 PM     &lt;br /&gt;&lt;strong&gt;Sponsored By&lt;/strong&gt;: &lt;strong&gt;Envoc&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Agenda:&lt;/strong&gt;    &lt;br /&gt;&lt;strong&gt;5:45 - 6:15 pm:&lt;/strong&gt; Networking and Refreshments     &lt;br /&gt;&lt;strong&gt;6:15 - 7:00 pm: &lt;/strong&gt;Introduction to Replication &lt;strong&gt;     &lt;br /&gt;7:00 - 7:45 pm:&lt;/strong&gt; Taming your SSIS Configuration Files&lt;strong&gt;     &lt;br /&gt;7:45 - until:&lt;/strong&gt; Open Forum for questions and Raffle&lt;/p&gt;  &lt;h6&gt;SQL Server User Group&lt;/h6&gt;  &lt;p&gt;&lt;strong&gt;Speaker: Mark Verret&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Topic: &lt;/strong&gt;Introduction to SQL Replication – Transactional&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Description: &lt;/strong&gt;An introduction to SQL Replication with a focus on Transactional Replication. What is SQL Replication and why would you want to use it? The presentation will involve a demonstration and discussion of usage in a production environment.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;BIO: &lt;/strong&gt;Mark Verret has been in the IT field for over 10 years. He is currently the System Administrator and DBA for the LSU Highway Safety Research Group. For the past 2 years he has taken on the DBA role involving SQL replication, warehousing, reporting, etc. Along with teaching an undergraduate business intelligence course, he has also presented at the Baton Rouge SQL user group and Baton Rouge and Dallas SQLSaturday.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Speaker: Patrick LeBlanc, SQL Server MVP&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Topic: Taming Your SSIS Configuration Files&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Description: &lt;/strong&gt;Typically, you develop SSIS packages on your laptop, desktop or some client machine and then deploy them to a server. In most cases these environments are completely different. They may have different machine names, folders, connection strings, etc… To assist in easing the pain of deploying your SSIS packages, SSIS includes a range of options that help you when building your data integration solutions. These options include: Property expressions, SET options of DTEXec, and my favorite Package Configurations. In this session I will attempt to demystify the usage of Configurations files in your SSIS package with a particular focus on Child and Master package solutions.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;BIO: &lt;/strong&gt;Patrick LeBlanc, SQL Server MVP and author, is currently a Business Intelligence Architect for Pragmatic Works. He has worked as a SQL Server DBA for the past 9 years. His experience includes working in the Educational, Advertising, Mortgage, Medical and Financial Industries. He is also the founder of TSQLScripts.com, SQLLunch.com and the President of the Baton Rouge Area SQL Server User Group. Patrick is a regular speaker at various SQL Server community events, including SQL Saturday’s, User Groups and the SQL Lunch.&lt;/p&gt;  &lt;p&gt;Patrick Leblanc, SQL Server MVP, MCTS&lt;/p&gt;  &lt;p&gt;Founder, &lt;a href="http://www.SQLLunch.com"&gt;www.SQLLunch.com&lt;/a&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2046028067618905204-8504166408365959014?l=sqldownsouth.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sqldownsouth.blogspot.com/feeds/8504166408365959014/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sqldownsouth.blogspot.com/2011/01/january-baton-rouge-sql-server-user.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2046028067618905204/posts/default/8504166408365959014'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2046028067618905204/posts/default/8504166408365959014'/><link rel='alternate' type='text/html' href='http://sqldownsouth.blogspot.com/2011/01/january-baton-rouge-sql-server-user.html' title='January Baton Rouge SQL Server User Group'/><author><name>Patrick LeBlanc</name><uri>http://www.blogger.com/profile/01738972122068246140</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_barBiSO8ITc/TGG9UkphClI/AAAAAAAAAPY/dGyatbRnf0Y/S220/PatrickHeadShotFull.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2046028067618905204.post-4346211630549613217</id><published>2011-01-11T08:52:00.001-08:00</published><updated>2011-01-11T09:03:53.652-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Reporting Services'/><category scheme='http://www.blogger.com/atom/ns#' term='SQLLunch'/><title type='text'>First SQL Lunch of the Year - SSRS Tips and Tricks with Pam Shaw</title><content type='html'>&lt;h5&gt;Last Year was a great year for the SQL Lunch.&amp;#160; We had so many great presentations.&amp;#160; I am really excited about this year and what we have coming up.&amp;#160; There are three lunches scheduled for this month and we are going to be making a BIG announcement about what we are doing in May on the SQL Lunch.&amp;#160; Stay tuned.&lt;/h5&gt;  &lt;h5&gt;&lt;a href="http://www.sqllunch.com/Meeting.aspx?lunchid=45"&gt;45-Tips &amp;amp; Tricks for dynamic Reporting Services Reports&lt;/a&gt;&lt;/h5&gt;  &lt;p&gt;&lt;img alt="Lunch Image" src="http://www.sqllunch.com/images/Lunch%20Images/PamShawProfile.bmp" width="115" height="130" /&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Speaker:&lt;/b&gt; Pam Shaw&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Join Meeting:&amp;#160; &lt;a title="https://www.livemeeting.com/cc/usergroups/join?id=PNZ5F4&amp;amp;role=attend" href="https://www.livemeeting.com/cc/usergroups/join?id=PNZ5F4&amp;amp;role=attend"&gt;https://www.livemeeting.com/cc/usergroups/join?id=PNZ5F4&amp;amp;role=attend&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Add To Outlook: &lt;/b&gt;&lt;a href="http://www.sqllunch.com/AddtoOutlook/lunch45.ics"&gt;Add To Calendar&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Date and Time:&lt;/b&gt; 1/13/2011 11:30:00 AM CST &lt;/p&gt;  &lt;p&gt;&lt;b&gt;Topic: &lt;/b&gt;#45-Tips &amp;amp; Tricks for dynamic Reporting Services Reports     &lt;br /&gt;In this session we will explore the multitude of ways that you can make your reports adapt to the needs of your users. This will include defining formats based on the data contents. We will explore how to refine layouts based on the data to be delivered. We will demonstrate how to create a parameter driven data source. We will take a look at how creating templates can give your catalog of reports a more professional look. All of this together will empower you to have more control over the reports you create.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;BIO: &lt;/b&gt;Pam Shaw has been in IT for almost 30 years. Since 2001, Pam has been working with SQL Server, first 2000, then 2005 and now 2008. Pam is currently an independent contractor. Pam is also the Chapter Leader of the Tampa Bay SQL Users Group - a local chapter of PASS and organizer of SQL Saturday Tampa.&lt;/p&gt;  &lt;p&gt;Patrick LeBlanc, MCTS, SQL Server MVP&lt;/p&gt;  &lt;p&gt;Founder &lt;a href="http://www.SQLLunch.com"&gt;www.SQLLunch.com&lt;/a&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2046028067618905204-4346211630549613217?l=sqldownsouth.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sqldownsouth.blogspot.com/feeds/4346211630549613217/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sqldownsouth.blogspot.com/2011/01/first-sql-lunch-of-year-ssrs-tips-and.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2046028067618905204/posts/default/4346211630549613217'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2046028067618905204/posts/default/4346211630549613217'/><link rel='alternate' type='text/html' href='http://sqldownsouth.blogspot.com/2011/01/first-sql-lunch-of-year-ssrs-tips-and.html' title='First SQL Lunch of the Year - SSRS Tips and Tricks with Pam Shaw'/><author><name>Patrick LeBlanc</name><uri>http://www.blogger.com/profile/01738972122068246140</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_barBiSO8ITc/TGG9UkphClI/AAAAAAAAAPY/dGyatbRnf0Y/S220/PatrickHeadShotFull.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2046028067618905204.post-5030633984689410063</id><published>2010-12-13T05:32:00.001-08:00</published><updated>2010-12-13T05:32:44.470-08:00</updated><title type='text'>Learning SSIS in Under 1 Hour on the SQL Lunch</title><content type='html'>&lt;h5&gt;Don't miss the SQL Lunch tomorrow.&lt;/h5&gt;  &lt;h5&gt;&lt;a href="http://sqllunch.com/Meeting.aspx?lunchid=44"&gt;#44-Learning SSIS under 1 hour&lt;/a&gt;&lt;/h5&gt;  &lt;p&gt;&lt;img alt="Lunch Image" src="http://sqllunch.com/images/Lunch%20Images/josechinchilla.jpg" width="115" height="130" /&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Speaker:&lt;/b&gt; Jose Raul Chinchilla&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Add To Outlook: &lt;/b&gt;&lt;a href="http://sqllunch.com/addtooutlook/lunch44.ics"&gt;Add To Calendar&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Meeting URL: &lt;a title="https://www.livemeeting.com/cc/usergroups/join?id=FN36T2&amp;amp;role=attend" href="https://www.livemeeting.com/cc/usergroups/join?id=FN36T2&amp;amp;role=attend"&gt;https://www.livemeeting.com/cc/usergroups/join?id=FN36T2&amp;amp;role=attend&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Date and Time:&lt;/b&gt; 12/14/2010 11:30:00 AM CST     &lt;br /&gt;&lt;b&gt;BIO: &lt;/b&gt;Jose Chinchilla is a Microsoft Certified Database Administrator and Business Intelligence Developer working as a BI consultant for Convergence Consulting Group, a Tampa based full service consulting firm. Jose has12+ years of experience in IT and has focused his career in OLTP and OLAP database design, development and administration and specializes in ETL/ELT, Data Warehousing and Multidimensional Analysis using SQL Server 2008 BI tools. He is also the current president of the Tampa Bay area Business Intelligence User Group and Official PASS Chapter. He is an avid twitterer under the @SQLJoe handle and blogs at &lt;a href="http://www.sqljoe.com"&gt;http://www.sqljoe.com&lt;/a&gt;.&amp;#160; &lt;/p&gt;  &lt;p&gt;   &lt;br /&gt;&lt;b&gt;Topic: &lt;/b&gt;#44-Learning SSIS under 1 hour     &lt;br /&gt;Need to know what is the corresponding SSIS transformation or task to a specific T-SQL statement? How do you accomplish Unions, Joins, and Merges in SSIS? How do you do CASE statements in SSIS? How do you group and aggregate data in SSIS? In this session I will cover the some of the most important SSIS control flow and data flow tasks to jump start DBAs and Developers into SSIS with SQL Server 2008-R2. At the end of this interactive demo, you will be able to identify what control flow tasks and data flow transformations can be used in place of T-SQL statements and scripts. I will also cover how to accomplish in SISS: • Basic SELECT, INSERT, DELETE, UPDATE statements • Inner and Outer joins • CAST and CONVERTS • CASE statement • Sorting, Grouping and Aggregate functions (SUM, COUNT, MAX, AVG) • MERGE and Unions • Loops (WHILE)&lt;/p&gt;  &lt;p&gt;Talk to you soon,&lt;/p&gt;  &lt;p&gt;Patrick Leblanc, SQL Server MVP, founder SQLLunch.com&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2046028067618905204-5030633984689410063?l=sqldownsouth.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sqldownsouth.blogspot.com/feeds/5030633984689410063/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sqldownsouth.blogspot.com/2010/12/learning-ssis-in-under-1-hour-on-sql.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2046028067618905204/posts/default/5030633984689410063'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2046028067618905204/posts/default/5030633984689410063'/><link rel='alternate' type='text/html' href='http://sqldownsouth.blogspot.com/2010/12/learning-ssis-in-under-1-hour-on-sql.html' title='Learning SSIS in Under 1 Hour on the SQL Lunch'/><author><name>Patrick LeBlanc</name><uri>http://www.blogger.com/profile/01738972122068246140</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_barBiSO8ITc/TGG9UkphClI/AAAAAAAAAPY/dGyatbRnf0Y/S220/PatrickHeadShotFull.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2046028067618905204.post-5291575803617124073</id><published>2010-11-30T21:54:00.001-08:00</published><updated>2010-11-30T21:54:04.567-08:00</updated><title type='text'>Passing SSRS T-SQL Values to SSRS MDX Parameters</title><content type='html'>&lt;p&gt;At a recent client engagement we built a SQL Server Reporting Services (SSRS) report with a T-SQL based data source. A requirement of the report was to create an action that drilled-through to another report. No big deal, right? This is SSRS 101. Well, that was until I realized that the parameters that had to be set on the drill-through report were based on MDX queries. I still didn’t think that it would pose a problem and proceeded to configure the textbox Action to go to another report. After I completed the configurations, I ran the report and it DID NOT WORK! Hmmm, what’s wrong?&lt;/p&gt;  &lt;p&gt;The first step was to take a look at the parameters on the MDX based report, which revealed very little. I needed to see the source query that provided the data for the parameter. Initially I did not see the data set for the query. Then I realized that when you created parameters using the MDX query builder in SSRS it hid the corresponding data sets. To show them, right-click on the data sets folder and click Show Hidden DataSets. With the data set now visible, I was able to run the query in the designer. The designer revealed a little Golden Nugget of information. There was a column labeled “ParameterValue” as shown in the following figure:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/_barBiSO8ITc/TPXi8MhVRqI/AAAAAAAAASQ/Si4sf0RDdYQ/s1600-h/image%5B6%5D.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://lh4.ggpht.com/_barBiSO8ITc/TPXi87TXdGI/AAAAAAAAASY/KzjgUwLnD8Y/image_thumb%5B4%5D.png?imgmax=800" width="657" height="403" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;This was interesting. It revealed a fully qualified MDX value as the Parameter Value. Therefore, using the traditional method of only selecting the column from the data set as the value to be passed would not work. So I decided to build an expression that would dynamically create values equal to those values in the ParameterValue column of the MDX query result set. The expression can be seen in the following figure:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/_barBiSO8ITc/TPXi9RtZmWI/AAAAAAAAASc/WLiplQao0x0/s1600-h/image%5B11%5D.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://lh6.ggpht.com/_barBiSO8ITc/TPXi9pkKz2I/AAAAAAAAASg/8uV64o9BDyc/image_thumb%5B7%5D.png?imgmax=800" width="591" height="298" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;I re-ran the report and clicked the textbox with the action:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/_barBiSO8ITc/TPXi98_AdnI/AAAAAAAAASk/OeNw9vHA4Ps/s1600-h/image%5B16%5D.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://lh4.ggpht.com/_barBiSO8ITc/TPXi-UWNXcI/AAAAAAAAASo/YU6ruRurj90/image_thumb%5B10%5D.png?imgmax=800" width="514" height="126" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;This directed me to the MDX based report and the parameter was set correctly, which can be seen in the following figure:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/_barBiSO8ITc/TPXi-lAwpbI/AAAAAAAAASs/gdPFRnFelxg/s1600-h/image%5B21%5D.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://lh6.ggpht.com/_barBiSO8ITc/TPXi-7oxVMI/AAAAAAAAASw/VcJZSB1qF8U/image_thumb%5B13%5D.png?imgmax=800" width="513" height="388" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Happy Days are here again!&lt;/p&gt;  &lt;p&gt;Talk to you soon,&lt;/p&gt;  &lt;p&gt;Patrick LeBlanc, SQL Server MVP, MCTS, founder &lt;a href="http://www.sqllunch.com/"&gt;SQLLunch.com&lt;/a&gt;.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2046028067618905204-5291575803617124073?l=sqldownsouth.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sqldownsouth.blogspot.com/feeds/5291575803617124073/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sqldownsouth.blogspot.com/2010/11/passing-ssrs-t-sql-values-to-ssrs-mdx_30.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2046028067618905204/posts/default/5291575803617124073'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2046028067618905204/posts/default/5291575803617124073'/><link rel='alternate' type='text/html' href='http://sqldownsouth.blogspot.com/2010/11/passing-ssrs-t-sql-values-to-ssrs-mdx_30.html' title='Passing SSRS T-SQL Values to SSRS MDX Parameters'/><author><name>Patrick LeBlanc</name><uri>http://www.blogger.com/profile/01738972122068246140</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_barBiSO8ITc/TGG9UkphClI/AAAAAAAAAPY/dGyatbRnf0Y/S220/PatrickHeadShotFull.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh4.ggpht.com/_barBiSO8ITc/TPXi87TXdGI/AAAAAAAAASY/KzjgUwLnD8Y/s72-c/image_thumb%5B4%5D.png?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2046028067618905204.post-2670232958861207695</id><published>2010-11-16T19:32:00.001-08:00</published><updated>2010-11-16T19:32:34.379-08:00</updated><title type='text'>Handling Type II Dimension with the MERGE Statement</title><content type='html'>&lt;p&gt;Microsoft attempted to make our lives easier with the Slowly Changing Dimension task in SSIS.&amp;#160; However, as we all know the task has some major performance issues.&amp;#160; So they introduced the MERGE statement.&amp;#160; When I initially started using the MERGE statement I considered it as a great solution to handle Type I dimensions, but I did not consider it as a solution for Type II.&amp;#160; Recently, I was chatting with Brian Knight and he said that the MERGE statement could handle Type II dimensions.&amp;#160; After spending some time with Books Online I realized that you could SELECT the OUTPUT data from the MERGE Statement.&amp;#160; This set up the perfect mechanism for handling a Type II dimension.&amp;#160; This is how I did it.&lt;/p&gt;  &lt;p&gt;Running the examples requires the AdventureWorks2008R2 database.&amp;#160; To get started with the explanation run the following script:&lt;/p&gt;  &lt;div class="csharpcode"&gt;   &lt;pre class="alt"&gt;&lt;span class="kwrd"&gt;USE&lt;/span&gt; tempdb&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre&gt;&lt;span class="kwrd"&gt;GO&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre class="alt"&gt;&lt;span class="kwrd"&gt;IF&lt;/span&gt;(OBJECT_ID(&lt;span class="str"&gt;'dbo.Product'&lt;/span&gt;)) &lt;span class="kwrd"&gt;IS&lt;/span&gt; &lt;span class="kwrd"&gt;NOT&lt;/span&gt; &lt;span class="kwrd"&gt;NULL&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre&gt;    &lt;span class="kwrd"&gt;DROP&lt;/span&gt; &lt;span class="kwrd"&gt;TABLE&lt;/span&gt; dbo.Product&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre class="alt"&gt;&lt;span class="kwrd"&gt;GO&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre&gt;&lt;span class="kwrd"&gt;CREATE&lt;/span&gt; &lt;span class="kwrd"&gt;TABLE&lt;/span&gt; dbo.Product&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre class="alt"&gt;(&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre&gt;    ProductID &lt;span class="kwrd"&gt;int&lt;/span&gt; &lt;span class="kwrd"&gt;identity&lt;/span&gt;(1,1),&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre class="alt"&gt;    ProductNumber &lt;span class="kwrd"&gt;varchar&lt;/span&gt;(50),&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre&gt;    ProductName &lt;span class="kwrd"&gt;varchar&lt;/span&gt;(100),&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre class="alt"&gt;    Color &lt;span class="kwrd"&gt;varchar&lt;/span&gt;(30),&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre&gt;    ListPrice &lt;span class="kwrd"&gt;decimal&lt;/span&gt;(12,2)&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre class="alt"&gt;)&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre&gt;&lt;span class="kwrd"&gt;GO&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre class="alt"&gt;&amp;#160;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre&gt;INSERT &lt;span class="kwrd"&gt;INTO&lt;/span&gt; dbo.Product&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre class="alt"&gt;&lt;span class="kwrd"&gt;SELECT&lt;/span&gt; &lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre&gt;    ProductNumber,&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre class="alt"&gt;    Name,&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre&gt;    Color,&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre class="alt"&gt;    ListPrice&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre&gt;&lt;span class="kwrd"&gt;FROM&lt;/span&gt; AdventureWorks2008R2.Production.Product&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre class="alt"&gt;&amp;#160;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre&gt;&lt;span class="kwrd"&gt;GO&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre class="alt"&gt;&amp;#160;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre&gt;&lt;span class="kwrd"&gt;IF&lt;/span&gt;(OBJECT_ID(&lt;span class="str"&gt;'dbo.DimProduct'&lt;/span&gt;)) &lt;span class="kwrd"&gt;IS&lt;/span&gt; &lt;span class="kwrd"&gt;NOT&lt;/span&gt; &lt;span class="kwrd"&gt;NULL&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre class="alt"&gt;    &lt;span class="kwrd"&gt;DROP&lt;/span&gt; &lt;span class="kwrd"&gt;TABLE&lt;/span&gt; dbo.DimProduct&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre&gt;&lt;span class="kwrd"&gt;GO&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre class="alt"&gt;&lt;span class="kwrd"&gt;CREATE&lt;/span&gt; &lt;span class="kwrd"&gt;TABLE&lt;/span&gt; dbo.DimProduct&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre&gt;(&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre class="alt"&gt;    ProductSK &lt;span class="kwrd"&gt;int&lt;/span&gt; &lt;span class="kwrd"&gt;identity&lt;/span&gt;(1,1),&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre&gt;    ProductAK &lt;span class="kwrd"&gt;varchar&lt;/span&gt;(50),&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre class="alt"&gt;    ProductName &lt;span class="kwrd"&gt;varchar&lt;/span&gt;(100),&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre&gt;    Color &lt;span class="kwrd"&gt;varchar&lt;/span&gt;(30),&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre class="alt"&gt;    ListPrice &lt;span class="kwrd"&gt;decimal&lt;/span&gt;(12,2),&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre&gt;    EffectiveDate datetime,&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre class="alt"&gt;    ExpirationDate datetime&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre&gt;)&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre class="alt"&gt;&lt;span class="kwrd"&gt;GO&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre&gt;&amp;#160;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre class="alt"&gt;INSERT &lt;span class="kwrd"&gt;INTO&lt;/span&gt; dbo.DimProduct(ProductAK, ProductName, Color, ListPrice, EffectiveDate)&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre&gt;&lt;span class="kwrd"&gt;SELECT&lt;/span&gt; &lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre class="alt"&gt;    ProductNumber,&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre&gt;    ProductName,&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre class="alt"&gt;    Color,&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre&gt;    ListPrice,&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre class="alt"&gt;    &lt;span class="str"&gt;'1/1/1900'&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre&gt;&lt;span class="kwrd"&gt;FROM&lt;/span&gt; dbo.Product&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre class="alt"&gt;GO&lt;/pre&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;style type="text/css"&gt;&lt;br /&gt;.csharpcode, .csharpcode pre&lt;br /&gt;{&lt;br /&gt;	font-size: small;&lt;br /&gt;	color: black;&lt;br /&gt;	font-family: consolas, "Courier New", courier, monospace;&lt;br /&gt;	background-color: #ffffff;&lt;br /&gt;	/*white-space: pre;*/&lt;br /&gt;}&lt;br /&gt;.csharpcode pre { margin: 0em; }&lt;br /&gt;.csharpcode .rem { color: #008000; }&lt;br /&gt;.csharpcode .kwrd { color: #0000ff; }&lt;br /&gt;.csharpcode .str { color: #006080; }&lt;br /&gt;.csharpcode .op { color: #0000c0; }&lt;br /&gt;.csharpcode .preproc { color: #cc6633; }&lt;br /&gt;.csharpcode .asp { background-color: #ffff00; }&lt;br /&gt;.csharpcode .html { color: #800000; }&lt;br /&gt;.csharpcode .attr { color: #ff0000; }&lt;br /&gt;.csharpcode .alt &lt;br /&gt;{&lt;br /&gt;	background-color: #f4f4f4;&lt;br /&gt;	width: 100%;&lt;br /&gt;	margin: 0em;&lt;br /&gt;}&lt;br /&gt;.csharpcode .lnum { color: #606060; }&lt;/style&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;The above scripts creates an operational Product table and initially loads the data into the DimProduct table.&amp;#160; Now let's assume that ListPrice is a Type II attribute.&amp;#160; In other words, if the ListPrice changes, the current effective row should be expired and a new row should be inserted into the dimension as the effective row.&amp;#160; This new row will contain the changed data.&amp;#160; To simulate a Type II change run the following script:&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="csharpcode"&gt;&lt;br /&gt;  &lt;pre class="alt"&gt;&lt;span class="kwrd"&gt;UPDATE&lt;/span&gt; dbo.Product&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre&gt;&lt;span class="kwrd"&gt;SET&lt;/span&gt; &lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre class="alt"&gt;    ListPrice = 5.00&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre&gt;&lt;span class="kwrd"&gt;WHERE&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre class="alt"&gt;    ProductNumber &lt;span class="kwrd"&gt;IN&lt;/span&gt; (&lt;span class="str"&gt;'AR-5381'&lt;/span&gt;,&lt;span class="str"&gt;'BA-8327'&lt;/span&gt;)&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre&gt;GO&lt;/pre&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;style type="text/css"&gt;&lt;br /&gt;.csharpcode, .csharpcode pre&lt;br /&gt;{&lt;br /&gt;	font-size: small;&lt;br /&gt;	color: black;&lt;br /&gt;	font-family: consolas, "Courier New", courier, monospace;&lt;br /&gt;	background-color: #ffffff;&lt;br /&gt;	/*white-space: pre;*/&lt;br /&gt;}&lt;br /&gt;.csharpcode pre { margin: 0em; }&lt;br /&gt;.csharpcode .rem { color: #008000; }&lt;br /&gt;.csharpcode .kwrd { color: #0000ff; }&lt;br /&gt;.csharpcode .str { color: #006080; }&lt;br /&gt;.csharpcode .op { color: #0000c0; }&lt;br /&gt;.csharpcode .preproc { color: #cc6633; }&lt;br /&gt;.csharpcode .asp { background-color: #ffff00; }&lt;br /&gt;.csharpcode .html { color: #800000; }&lt;br /&gt;.csharpcode .attr { color: #ff0000; }&lt;br /&gt;.csharpcode .alt &lt;br /&gt;{&lt;br /&gt;	background-color: #f4f4f4;&lt;br /&gt;	width: 100%;&lt;br /&gt;	margin: 0em;&lt;br /&gt;}&lt;br /&gt;.csharpcode .lnum { color: #606060; }&lt;/style&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;The script will change the ListPrice for two products in the operational table.&amp;#160; After the updates have been executed, run the following script:&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="csharpcode"&gt;&lt;br /&gt;  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;INSERT &lt;span class="kwrd"&gt;INTO&lt;/span&gt; dbo.DimProduct(ProductAK, ListPrice, Color, ProductName, EffectiveDate)&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre&gt;&lt;span class="lnum"&gt;   2:  &lt;/span&gt;&lt;span class="kwrd"&gt;SELECT&lt;/span&gt; ProductNumber, ListPrice, Color, ProductName, EffectiveDate&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   3:  &lt;/span&gt;&lt;span class="kwrd"&gt;FROM&lt;/span&gt; &lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre&gt;&lt;span class="lnum"&gt;   4:  &lt;/span&gt;(&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   5:  &lt;/span&gt;    MERGE dbo.DimProduct dp&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre&gt;&lt;span class="lnum"&gt;   6:  &lt;/span&gt;    &lt;span class="kwrd"&gt;USING&lt;/span&gt; dbo.Product p&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   7:  &lt;/span&gt;        &lt;span class="kwrd"&gt;ON&lt;/span&gt; dp.ProductAK = p.ProductNumber&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre&gt;&lt;span class="lnum"&gt;   8:  &lt;/span&gt;    &lt;span class="kwrd"&gt;WHEN&lt;/span&gt; &lt;span class="kwrd"&gt;NOT&lt;/span&gt; MATCHED &lt;span class="kwrd"&gt;THEN&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   9:  &lt;/span&gt;        INSERT (ProductAK, ProductName, Color, ListPrice, EffectiveDate)&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre&gt;&lt;span class="lnum"&gt;  10:  &lt;/span&gt;        &lt;span class="kwrd"&gt;VALUES&lt;/span&gt; (p.ProductNumber, p.ProductName, p.Color, p.ListPrice, &lt;span class="str"&gt;'1/1/1900'&lt;/span&gt;)&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  11:  &lt;/span&gt;    &lt;span class="kwrd"&gt;WHEN&lt;/span&gt; MATCHED &lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre&gt;&lt;span class="lnum"&gt;  12:  &lt;/span&gt;        &lt;span class="kwrd"&gt;AND&lt;/span&gt; ExpirationDate &lt;span class="kwrd"&gt;IS&lt;/span&gt; &lt;span class="kwrd"&gt;NULL&lt;/span&gt; &lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  13:  &lt;/span&gt;        &lt;span class="kwrd"&gt;AND&lt;/span&gt; (dp.ListPrice &amp;lt;&amp;gt; p.ListPrice) &lt;span class="kwrd"&gt;THEN&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre&gt;&lt;span class="lnum"&gt;  14:  &lt;/span&gt;        &lt;span class="kwrd"&gt;UPDATE&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  15:  &lt;/span&gt;            &lt;span class="kwrd"&gt;SET&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre&gt;&lt;span class="lnum"&gt;  16:  &lt;/span&gt;                dp.ExpirationDate = &lt;span class="kwrd"&gt;convert&lt;/span&gt;(datetime, getdate(), 101)&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre style="width: 105.37%; height: 44px" class="alt"&gt;&lt;span class="lnum"&gt;  17:  &lt;/span&gt;    &lt;span class="kwrd"&gt;OUTPUT&lt;/span&gt; $&lt;span class="kwrd"&gt;Action&lt;/span&gt; MergeAction, p.ProductNumber, p.ListPrice, p.Color, p.ProductName, &lt;span class="kwrd"&gt;convert&lt;/span&gt;(datetime, getdate(), 101) EffectiveDate&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre&gt;&lt;span class="lnum"&gt;  18:  &lt;/span&gt;) MergeOutput&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  19:  &lt;/span&gt;&lt;span class="kwrd"&gt;WHERE&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre&gt;&lt;span class="lnum"&gt;  20:  &lt;/span&gt;    MergeAction = &lt;span class="str"&gt;'Update'&lt;/span&gt;;&lt;/pre&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Let's start the explanation in the inside of the query.&amp;#160; On line 12 the current effective row is identified.&amp;#160; You may need to change this depending on your Type II dimension design patterns.&amp;#160; Your dimensions may use a specific date as the expiration date and you may also include a ActiveFlag bit column.&amp;#160; Then on line 13 I verify that the column specified as a Type II attribute has actually changed.&amp;#160; Finally, on line 16 the row is expired.&amp;#160; Now you may be thinking how are you going to add the new current row for the corresponding expired rows.&amp;#160; That was the same thing I was thinking.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;On line 17 I output any of the Inserts or Updates.&amp;#160; In addition, I added a column that acts as the Effective Date.&amp;#160; The thing that I did not know was that you can SELECT the OUTPUT data from the MERGE statement and INSERT it into a table.&amp;#160; This is accomplished in lines 1 and 2.&amp;#160; Essentially, I derived a table from the OUTPUT of the MERGE statement.&amp;#160; Lastly, I included a WHERE clause to ensure that I only inserted the data that was UPDATED.&amp;#160; That pretty much did it.&amp;#160; To verify the changes run the following query:&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="csharpcode"&gt;&lt;br /&gt;  &lt;pre class="alt"&gt;&lt;span class="kwrd"&gt;SELECT&lt;/span&gt; *&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre&gt;&lt;span class="kwrd"&gt;FROM&lt;/span&gt; dbo.DimProduct&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre class="alt"&gt;&lt;span class="kwrd"&gt;WHERE&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre&gt;    ProductAK &lt;span class="kwrd"&gt;IN&lt;/span&gt; (&lt;span class="str"&gt;'AR-5381'&lt;/span&gt;,&lt;span class="str"&gt;'BA-8327'&lt;/span&gt;)&lt;/pre&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;style type="text/css"&gt;&lt;br /&gt;.csharpcode, .csharpcode pre&lt;br /&gt;{&lt;br /&gt;	font-size: small;&lt;br /&gt;	color: black;&lt;br /&gt;	font-family: consolas, "Courier New", courier, monospace;&lt;br /&gt;	background-color: #ffffff;&lt;br /&gt;	/*white-space: pre;*/&lt;br /&gt;}&lt;br /&gt;.csharpcode pre { margin: 0em; }&lt;br /&gt;.csharpcode .rem { color: #008000; }&lt;br /&gt;.csharpcode .kwrd { color: #0000ff; }&lt;br /&gt;.csharpcode .str { color: #006080; }&lt;br /&gt;.csharpcode .op { color: #0000c0; }&lt;br /&gt;.csharpcode .preproc { color: #cc6633; }&lt;br /&gt;.csharpcode .asp { background-color: #ffff00; }&lt;br /&gt;.csharpcode .html { color: #800000; }&lt;br /&gt;.csharpcode .attr { color: #ff0000; }&lt;br /&gt;.csharpcode .alt &lt;br /&gt;{&lt;br /&gt;	background-color: #f4f4f4;&lt;br /&gt;	width: 100%;&lt;br /&gt;	margin: 0em;&lt;br /&gt;}&lt;br /&gt;.csharpcode .lnum { color: #606060; }&lt;/style&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Talk to you soon,&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Patrick LeBlanc, SQL Server MPV, MCTS&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2046028067618905204-2670232958861207695?l=sqldownsouth.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sqldownsouth.blogspot.com/feeds/2670232958861207695/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sqldownsouth.blogspot.com/2010/11/handling-type-ii-dimension-with-merge.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2046028067618905204/posts/default/2670232958861207695'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2046028067618905204/posts/default/2670232958861207695'/><link rel='alternate' type='text/html' href='http://sqldownsouth.blogspot.com/2010/11/handling-type-ii-dimension-with-merge.html' title='Handling Type II Dimension with the MERGE Statement'/><author><name>Patrick LeBlanc</name><uri>http://www.blogger.com/profile/01738972122068246140</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_barBiSO8ITc/TGG9UkphClI/AAAAAAAAAPY/dGyatbRnf0Y/S220/PatrickHeadShotFull.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2046028067618905204.post-1259503547724148748</id><published>2010-11-15T18:38:00.001-08:00</published><updated>2010-11-15T18:38:47.554-08:00</updated><title type='text'>My SQL PASS Summit Adventures part 1</title><content type='html'>&lt;p&gt;I started my PASS Summit a little early this year.&amp;#160; I arrived in Seattle on Friday night, November 5th,&amp;#160; around 10:30 PM.&amp;#160; I met Brian Knight and Tim Moolic (Pragmatic Works COO) and we drove about 1.5 hours to Ashford, WA.&amp;#160; We settled in to our cabin on the Creek for a few hours of sleep before we began our BIG adventure.&amp;#160; About a month before PASS Brian gave me a call and asked if I would like to join he and Tim on a hike up Mt. Rainier.&amp;#160; I hesitated at first, but then quickly decided to do it.&amp;#160; So here I was, about to start a hike up the mountain in what we were told was some very unfavorable weather conditions.&lt;/p&gt;  &lt;table border="0" cellspacing="0" cellpadding="2" width="832"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign="top" width="200"&gt;&lt;a href="http://lh3.ggpht.com/_barBiSO8ITc/TOHunk3DcjI/AAAAAAAAARo/Goq0H5Ej1HI/s1600-h/IMG_10641.jpg"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="IMG_1064" border="0" alt="IMG_1064" src="http://lh4.ggpht.com/_barBiSO8ITc/TOHun2wbKFI/AAAAAAAAARs/guYCCzKEd5s/IMG_1064_thumb1.jpg?imgmax=800" width="308" height="232" /&gt;&lt;/a&gt; &lt;/td&gt;        &lt;td valign="top" width="630"&gt;As you can see from the background, the weather was not very kind.&amp;#160; It was snowing, raining, and sleeting all at once.&amp;#160; If that is possible, but we were brave and had already rented all the gear so we did not really have a choice.&amp;#160; If you take a close look at my face in the picture you realize that I was the only one not smiling.&amp;#160; If you don't know I currently live in Louisiana and I was born in Houston, Tx.&amp;#160; Snow is not a common occurrence in either of these places.&amp;#160; To be honest I almost backed out, but my EGO wouldn't let me, besides these two guys would have never let me live it down.&amp;#160; So on to the hike.&lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;I thought we were going to have a slow start to the hike, boy was I wrong.&amp;#160; Tim took off like he was running a 40 yard dash.&amp;#160; By the way, Tim lives in Boston so he is very familiar with snow and how to get around in it.&amp;#160; After about the first 200 feet I was done.&amp;#160; I wanted to turn back and find a nice warm place with a hot cup of coffee.&amp;#160; Again, my EGO took over and forced me to continue.&lt;/p&gt;  &lt;table border="0" cellspacing="0" cellpadding="2" width="836"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign="top" width="630"&gt;We hiked up for about 3 hours or 4000 feet, stopping a few times along the way for a little water, snacks and sight seeting.&amp;#160; At one point I found myself nearly waste deep in snow. Since I am not very familiar with snow, I did not realize that I should have been wearing the Snow Shoes that we rented.&amp;#160; Tim quickly brought that to my attention after I trudged through the snow for about 100 or so feet.          &lt;br /&gt;&amp;#160;&lt;a href="http://lh5.ggpht.com/_barBiSO8ITc/TOHuoYVSK-I/AAAAAAAAARw/ddwIBP1OjTU/s1600-h/SANY00241.jpg"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="SANY0024" border="0" alt="SANY0024" src="http://lh5.ggpht.com/_barBiSO8ITc/TOHupbiKJkI/AAAAAAAAAR0/6i76i912UWo/SANY0024_thumb1.jpg?imgmax=800" width="338" height="254" /&gt;&lt;/a&gt;           &lt;br /&gt;The visibility worsened as we hiked higher and we decided to call it quits after we reached about 8000 feet.&amp;#160; We did not want to take the chance of hiking down in the dark and getting lost.&lt;/td&gt;        &lt;td valign="top" width="204"&gt;         &lt;p&gt;&lt;a href="http://lh4.ggpht.com/_barBiSO8ITc/TOHuqXL9aeI/AAAAAAAAAR4/E4gfUrYoJfA/s1600-h/IMG_10721.jpg"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="IMG_1072" border="0" alt="IMG_1072" src="http://lh3.ggpht.com/_barBiSO8ITc/TOHuqzPKBOI/AAAAAAAAAR8/ghgewGAxt70/IMG_1072_thumb1.jpg?imgmax=800" width="311" height="234" /&gt;&lt;/a&gt; &lt;/p&gt;          &lt;p align="center"&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;This was the first time that I had ever experienced so much snow in my life.&amp;#160; Would I do it again?&amp;#160; Yep, without a doubt.&amp;#160; Since the PASS Summit is in October next year, the weather should be better and we should be able to hike a little higher.&amp;#160; At the end of the day we were exhausted, exhilarated, and ready for a drink.&amp;#160; We ended our night at a the only restaurant in Ashford.&amp;#160; We enjoyed a nice dinner with a few drinks some food and a little fun (Karaoke).&amp;#160; &lt;/p&gt;  &lt;table border="0" cellspacing="0" cellpadding="2" width="400"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign="top" width="200"&gt;&lt;a href="http://lh3.ggpht.com/_barBiSO8ITc/TOHurbdwzbI/AAAAAAAAASA/0L5dJFPtn0I/s1600-h/IMG_11364.jpg"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="IMG_1136" border="0" alt="IMG_1136" src="http://lh5.ggpht.com/_barBiSO8ITc/TOHur7LcsEI/AAAAAAAAASE/arvmNeg8ou4/IMG_1136_thumb2.jpg?imgmax=800" width="318" height="240" /&gt;&lt;/a&gt;&lt;/td&gt;        &lt;td valign="top" width="200"&gt;&lt;a href="http://lh5.ggpht.com/_barBiSO8ITc/TOHusTvickI/AAAAAAAAASI/AdT293JFc8E/s1600-h/IMG_11483.jpg"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="IMG_1148" border="0" alt="IMG_1148" src="http://lh4.ggpht.com/_barBiSO8ITc/TOHuspcAlVI/AAAAAAAAASM/KVNSgXT3bDk/IMG_1148_thumb1.jpg?imgmax=800" width="318" height="240" /&gt;&lt;/a&gt; &lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;All SMILES!!!!!&amp;#160; This was just day one of my PASS adventures.&amp;#160; Stay tuned for more adventures.&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;Talk to you soon,&lt;/p&gt;  &lt;p&gt;Patrick LeBlanc, SQL Server MVP, MCTS, Mountain Man&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2046028067618905204-1259503547724148748?l=sqldownsouth.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sqldownsouth.blogspot.com/feeds/1259503547724148748/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sqldownsouth.blogspot.com/2010/11/my-sql-pass-summit-adventures-part-1.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2046028067618905204/posts/default/1259503547724148748'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2046028067618905204/posts/default/1259503547724148748'/><link rel='alternate' type='text/html' href='http://sqldownsouth.blogspot.com/2010/11/my-sql-pass-summit-adventures-part-1.html' title='My SQL PASS Summit Adventures part 1'/><author><name>Patrick LeBlanc</name><uri>http://www.blogger.com/profile/01738972122068246140</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_barBiSO8ITc/TGG9UkphClI/AAAAAAAAAPY/dGyatbRnf0Y/S220/PatrickHeadShotFull.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh4.ggpht.com/_barBiSO8ITc/TOHun2wbKFI/AAAAAAAAARs/guYCCzKEd5s/s72-c/IMG_1064_thumb1.jpg?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2046028067618905204.post-2783130013823845790</id><published>2010-11-14T06:48:00.001-08:00</published><updated>2010-11-14T06:48:40.995-08:00</updated><title type='text'>Join SQL Lunch on Tuesday</title><content type='html'>&lt;h5&gt;What a long week at PASS (stay tuned for more details about my trip).&amp;#160; Now that it's over back to work.&amp;#160; Join me and Cade Roux for a SQL Lunch on Tuesday.&amp;#160; Cade is lives in the rocking city of New Orleans, LA.&lt;/h5&gt;  &lt;h5&gt;&lt;a href="http://sqllunch.com/Meeting.aspx?lunchid=41"&gt;#41-Get a Lever and Pick Any Turtle: Lifting with Metadata&lt;/a&gt;&lt;/h5&gt;  &lt;p&gt;&lt;img alt="Lunch Image" src="http://sqllunch.com/images/Lunch%20Images/caderoux.jpg" width="115" height="130" /&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Speaker:&lt;/b&gt; Cade Roux&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Add To Outlook: &lt;/b&gt;&lt;a href="http://sqllunch.com/addtooutlook/lunch41.ics"&gt;Add To Calendar&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Date and Time:&lt;/b&gt; 11/16/2010 11:30:00 AM CST&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Live Meeting URL:&amp;#160; &lt;a title="https://www.livemeeting.com/cc/usergroups/join?id=68R4BF&amp;amp;role=attend" href="https://www.livemeeting.com/cc/usergroups/join?id=68R4BF&amp;amp;role=attend"&gt;https://www.livemeeting.com/cc/usergroups/join?id=68R4BF&amp;amp;role=attend&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;   &lt;br /&gt;&lt;b&gt;BIO: &lt;/b&gt;Cade Roux, is the recent founder of Rose Crescent, a software and systems consultancy in New Orleans. He has been a professional programmer since 1992, and a user of SQL Server since 1997, managing IT operations at all levels of organizations. He has broad experience in several lines of business, including Route Accounting, Medical and Banking and technical exposure ranging from C/C++ to T-SQL, from the Windows API to Data Warehousing. He loves building great systems and great teams.&lt;/p&gt;  &lt;p&gt;   &lt;br /&gt;&lt;b&gt;Topic: &lt;/b&gt;#41-Get a Lever and Pick Any Turtle: Lifting with Metadata    &lt;br /&gt;&lt;/p&gt;  &lt;p&gt;Integrated metadata is a required element of all RDBMSs. In addition to ANSI INFORAMTION_SCHEMA and metadata on implementation-specific features like indexes, SQL Server also offers a very powerful extended properties feature. In this talk, I cover using the basic metadata combined with extended properties and demonstrate practical usage to organize and document a system's design and monitor the health of a system's compliance with design rules.&lt;/p&gt;  &lt;p&gt;Talk to you soon,&lt;/p&gt;  &lt;p&gt;Patrick LeBlanc, SQL Server MVP, MCTS, founder SQLLunch.com&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2046028067618905204-2783130013823845790?l=sqldownsouth.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sqldownsouth.blogspot.com/feeds/2783130013823845790/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sqldownsouth.blogspot.com/2010/11/join-sql-lunch-on-tuesday.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2046028067618905204/posts/default/2783130013823845790'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2046028067618905204/posts/default/2783130013823845790'/><link rel='alternate' type='text/html' href='http://sqldownsouth.blogspot.com/2010/11/join-sql-lunch-on-tuesday.html' title='Join SQL Lunch on Tuesday'/><author><name>Patrick LeBlanc</name><uri>http://www.blogger.com/profile/01738972122068246140</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_barBiSO8ITc/TGG9UkphClI/AAAAAAAAAPY/dGyatbRnf0Y/S220/PatrickHeadShotFull.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2046028067618905204.post-3221645195547070721</id><published>2010-11-03T05:34:00.001-07:00</published><updated>2010-11-03T05:34:39.221-07:00</updated><title type='text'>A Couple of SQL Lunches this Week</title><content type='html'>&lt;p&gt;I want to apologize for posting this so late, but there is a SQL Lunch today and one tomorrow.&amp;#160; Hope you all can make it.&lt;/p&gt;  &lt;h5&gt;&lt;a href="http://sqllunch.com/Meeting.aspx?lunchid=37"&gt;#37-&lt;/a&gt;Zero to Dashboard&lt;/h5&gt;  &lt;p&gt;&lt;img alt="Lunch Image" src="http://sqllunch.com/images/Lunch%20Images/AdamJorgensen.jpg" width="115" height="130" /&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Speaker:&lt;/b&gt; Adam Jorgensen&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Add To Outlook: &lt;/b&gt;&lt;a href="http://sqllunch.com/AddtoOutlook/lunch37.ics"&gt;Add To Calendar&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Date and Time:&lt;/b&gt; 11/3/2010 11:30:00 AM CST &lt;/p&gt;  &lt;p&gt;   &lt;br /&gt;&lt;b&gt;BIO: &lt;/b&gt;Adam Jorgensen , MBA, MCDBA, MCITP: BI has over a decade of experience leading organizations around the world in developing and implementing enterprise solutions. His passion is finding new and innovative avenues for clients and the community to embrace business intelligence and lower barriers to implementation. Adam is also very involved in the community as a featured author on SQLServerCentral, SQLShare, as well as a regular contributor to the SQLPASS Virtual User Groups for Business Intelligence and other organizations. He regularly speaks at industry group events, major conferences, Code Camps, and SQLSaturday events on strategic and technical topics. &lt;/p&gt;  &lt;p&gt;   &lt;br /&gt;&lt;b&gt;Topic: &lt;/b&gt;#37-Zero to Dashboard     &lt;br /&gt;Come have some fun seeing how we can build your first dashboard in PerformancePoint Services Together. Join Adam and Go from Zero to Dashboard and see some of the cool reporting techniques you can do with Performance Point without writing any code!&lt;/p&gt;  &lt;h5&gt;&lt;a href="http://sqllunch.com/Meeting.aspx?lunchid=42"&gt;#42-Auditing Database Permissions in SQL Server&lt;/a&gt;&lt;/h5&gt;  &lt;p&gt;&lt;img alt="Lunch Image" src="http://sqllunch.com/images/Lunch%20Images/KBrianKelly.jpg" width="115" height="130" /&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Speaker:&lt;/b&gt; K. Brian Kelley&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Add To Outlook: &lt;/b&gt;&lt;a href="http://sqllunch.com/addtooutlook/lunch42.ics"&gt;Add To Calendar&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Date and Time:&lt;/b&gt; 11/4/2010 11:30:00 AM CST &lt;/p&gt;  &lt;p&gt;   &lt;br /&gt;&lt;b&gt;BIO: &lt;/b&gt;Brian is a SQL Server author, columnist, and Microsoft MVP focusing primarily on SQL Server security. He is a contributing author for How to Cheat at Securing SQL Server 2005 (Syngress) and Professional SQL Server 2008 Administration (Wrox). Brian currently serves as a database administrator / architect for AgFirst Farm Credit Bank where he can concentrate on his passion: SQL Server. He previously was a systems and security architect for AgFirst Farm Credit Bank where he worked on Active Directory, Windows security, VMware, and Citrix. In the technical community, Brian is president of the Midlands PASS Chapter, an official chapter of PASS. Brian is also a junior high youth minister at Spears Creek Baptist Church in Elgin, SC.     &lt;br /&gt;&lt;b&gt;Topic: &lt;/b&gt;#42-Auditing Database Permissions in SQL Server &lt;/p&gt;  &lt;p&gt;   &lt;br /&gt;Invariably, the dreaded auditors will come knocking at your door wanting to know who can do what in a database. Knee deep in other initiatives, the last thing you want to do is parcel out the time required to answer their requests and the follow-on questions they're likely to have. However, you know that this these are requests you can't refuse and you resign yourself to your fate. In this presentation, Certified Information Systems Auditor (CISA) and Microsoft SQL Server MVP K. Brian Kelley will cover what to audit, how to audit it quickly and efficiently, and the gotchas to look out for when it comes to compiling and reporting database permissions in SQL Server. Coverage of the security catalog views to use in SQL Server 2005/2008 as well as capturing implicit permissions will be focused on. &lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;Talk to you soon,&lt;/p&gt;  &lt;p&gt;Patrick LeBlanc, SQL Server MVP, founder SQL Lunch.com&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2046028067618905204-3221645195547070721?l=sqldownsouth.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sqldownsouth.blogspot.com/feeds/3221645195547070721/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sqldownsouth.blogspot.com/2010/11/couple-of-sql-lunches-this-week.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2046028067618905204/posts/default/3221645195547070721'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2046028067618905204/posts/default/3221645195547070721'/><link rel='alternate' type='text/html' href='http://sqldownsouth.blogspot.com/2010/11/couple-of-sql-lunches-this-week.html' title='A Couple of SQL Lunches this Week'/><author><name>Patrick LeBlanc</name><uri>http://www.blogger.com/profile/01738972122068246140</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_barBiSO8ITc/TGG9UkphClI/AAAAAAAAAPY/dGyatbRnf0Y/S220/PatrickHeadShotFull.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2046028067618905204.post-5758635948701018103</id><published>2010-10-31T18:37:00.001-07:00</published><updated>2010-10-31T18:37:20.174-07:00</updated><title type='text'>Vote for Our SQL Rally Pre-con</title><content type='html'>&lt;p&gt;VOTE VOTE VOTE VOTE VOTE VOTE VOTE!!!!!!!!!!&lt;/p&gt;  &lt;p&gt;Vote here:&amp;#160; &lt;a href="http://www.zoomerang.com/Survey/WEB22BD59JCQBT"&gt;http://www.zoomerang.com/Survey/WEB22BD59JCQBT&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Honestly, I want each of reading my blog to vote for our Pre-con(&lt;a href="http://www.sqlpass.org/sqlrally/2011/PreConsforVotingBI.aspx"&gt;Full Day Business Intelligence Workshop&lt;/a&gt;).&amp;#160; However, as with any voting process you have choices.&amp;#160; Well....in most cases you do.&amp;#160; We often feel or believe that our vote does not count.&amp;#160; I really believe that this is going to be a little different.&amp;#160; I am really excited about the SQL Rally and more excited that our Preconference seminar was selected as one of those that are now being voted upon.&amp;#160; So, why should you vote for our Pre-con?&lt;/p&gt;  &lt;p&gt;I have been referencing the pre-con as &amp;quot;Ours&amp;quot;, that is because four individuals will be delivering the conference.&amp;#160; The team of presenters/authors include Adam Jorgensen, Mike Davis, Devin Knight, and myself.&amp;#160; I am not going to list the credentials for each person, but I will say that each presenter has taught full day courses in building Data Warehouses, SSIS, SSAS, and SSRS.&amp;#160; In addition, we are all regular speakers at various SQL Server events, including SQL Saturdays, Users Groups, and PASS.&lt;/p&gt;  &lt;p&gt;Still not convinced?&amp;#160; Each member of this team has designed, created and delivered solutions that encompass each of the tools that will be presented during the Precon.&amp;#160; First, we will spend time teaching you how to transform your Operational database to a data warehouse.&amp;#160; Adam Jorgensen will take a deep dive into Dimensional Modeling and all the techniques required to create you data warehouse database.&amp;#160; In the next three sections, which are all very demo-centric, you will learn from Devin Knight, Mike Davis and myself how to build SSIS Packages to load your data warehouse fully or incrementally, then we will show you how to create and maintain an SSAS cube and finally we will use SSRS to create visually appealing reports for your end-users.&lt;/p&gt;  &lt;p&gt;This may seem like a lot to accomplish in one day, but we will be taking a very explicit and focused approach in regards to each technology.&amp;#160; For example, we are not going to discuss every transform in the SSIS control and data flow toolboxes.&amp;#160; However, we will provide detail explanations of the tasks that are vital when building and ETL solution.&amp;#160; At the end of the day you will leave with the knowledge and tools needed to build a complete data warehouse solution.&amp;#160; As an extra touch, we will not be using the traditional Adventure Works database for our demonstrations.&amp;#160; We will be using some real world data that will enhance the discussions and potentially create a more engaging learning experience for all attendees.&lt;/p&gt;  &lt;p&gt;So with that, I am not going to restate our abstract, nor am I going to talk about how good all the other sessions are.&amp;#160; What am I going to say is that as a part of the community and a potential attendee of these Precons, go and vote so your can make a difference!&amp;#160; Hey, I kind of sound like a politician, maybe I will run for the PASS board next year ;).&amp;#160; See you all at the PASS Summit in two weeks and hopefully next year at our SQL Rally Preconference Seminar.&lt;/p&gt;  &lt;p&gt;Go make it happen! There's a lot of good seminars, go read about them here:&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;BI Sessions:&lt;/strong&gt; &lt;a href="http://www.sqlpass.org/sqlrally/2011/PreConsforVotingBI.aspx"&gt;http://www.sqlpass.org/sqlrally/2011/PreConsforVotingBI.aspx&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;DBA Sessions:&lt;/strong&gt; &lt;a href="http://www.sqlpass.org/sqlrally/2011/PreConsforVotingDba.aspx"&gt;http://www.sqlpass.org/sqlrally/2011/PreConsforVotingDba.aspx&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Developer Sessions:&lt;/strong&gt;&amp;#160;&lt;a href="http://www.sqlpass.org/sqlrally/2011/PreConsforVotingDev.aspx"&gt;http://www.sqlpass.org/sqlrally/2011/PreConsforVotingDev.aspx&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Misc Sessions:&lt;/strong&gt; &lt;a href="http://www.sqlpass.org/sqlrally/2011/PreConsforVotingMisc.aspx"&gt;http://www.sqlpass.org/sqlrally/2011/PreConsforVotingMisc.aspx&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Talk to you soon,&lt;/p&gt;  &lt;p&gt;Patrick LeBlanc, SQL Server MVP, founder &lt;a href="http://www.SQLLunch.com"&gt;www.SQLLunch.com&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Visit &lt;a href="http://www.BIDN.com"&gt;www.BIDN.com&lt;/a&gt;, Bring Business Intelligence to your company.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2046028067618905204-5758635948701018103?l=sqldownsouth.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sqldownsouth.blogspot.com/feeds/5758635948701018103/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sqldownsouth.blogspot.com/2010/10/vote-for-our-sql-rally-pre-con.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2046028067618905204/posts/default/5758635948701018103'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2046028067618905204/posts/default/5758635948701018103'/><link rel='alternate' type='text/html' href='http://sqldownsouth.blogspot.com/2010/10/vote-for-our-sql-rally-pre-con.html' title='Vote for Our SQL Rally Pre-con'/><author><name>Patrick LeBlanc</name><uri>http://www.blogger.com/profile/01738972122068246140</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_barBiSO8ITc/TGG9UkphClI/AAAAAAAAAPY/dGyatbRnf0Y/S220/PatrickHeadShotFull.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2046028067618905204.post-7760453540012769471</id><published>2010-10-19T13:46:00.001-07:00</published><updated>2010-10-19T13:46:53.835-07:00</updated><title type='text'>1st Houston Microsoft Business Intelligence User Group</title><content type='html'>&lt;p&gt; Tyler Chessman of Microsoft has started a Business Intelligence Users Group in Houston.&amp;#160; The group will meet online&amp;#160; and onsite quarterly.&amp;#160; If you are interested in attending here are the meeting details:&lt;/p&gt;  &lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td&gt;         &lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;             &lt;tr&gt;               &lt;td&gt;                 &lt;p&gt;&lt;strong&gt;Houston – Microsoft Business Intelligence User Group&lt;/strong&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;                  &lt;p&gt;We would like to invite you to the very 1&lt;sup&gt;st&lt;/sup&gt; Houston Microsoft Business Intelligence User Group.&amp;#160; This event will take place on Wednesday October 20&lt;sup&gt;th&lt;/sup&gt;, 2010 from 11:15 – 1:00 p.m. at the Microsoft Houston Office&amp;#160; (location and map below).&amp;#160;&amp;#160; LiveMeeting will also be available for remote attendees.&lt;/p&gt;                  &lt;p&gt;Learn the latest and greatest in BI - along with practical advice for getting the most out of your existing technology investments.&lt;/p&gt;                  &lt;p&gt;No RSVP needed.&lt;/p&gt;                  &lt;p&gt;&lt;u&gt;&lt;/u&gt;&lt;/p&gt;                  &lt;p&gt;&lt;u&gt;Cost&lt;/u&gt;&lt;/p&gt;                  &lt;p&gt;This is a free event; lunch will be provided.&lt;/p&gt;                  &lt;p&gt;&lt;u&gt;Who should attend&lt;/u&gt;&lt;/p&gt;                  &lt;p&gt;BI Practitioners from both an IT &amp;amp;&amp;#160; business background should attend.&amp;#160;&amp;#160; We’ll have two presentations (see Topics below) of interest to both IT and business analysts/power users.&lt;/p&gt;                  &lt;p&gt;&lt;u&gt;&lt;/u&gt;&lt;/p&gt;                  &lt;p&gt;&lt;u&gt;Date                      &lt;br /&gt;&lt;/u&gt;Wednesday, October 20&lt;sup&gt;th&lt;/sup&gt;, 2010.&amp;#160; 11:15 a.m. – 1:00 p.m.&lt;/p&gt;                  &lt;p&gt;&lt;u&gt;&lt;/u&gt;&lt;/p&gt;                  &lt;p&gt;&lt;u&gt;Location&lt;/u&gt;&lt;/p&gt;                  &lt;p&gt;One Briar Lake Plaza&lt;/p&gt;                  &lt;p&gt;2000 W. Sam Houston Pkwy. S. #350&lt;/p&gt;                  &lt;p&gt;Houston, TX 77042 &lt;/p&gt;                  &lt;p&gt;Phone: (832) 252-4300&lt;/p&gt;                  &lt;p&gt;&lt;a href="http://local.live.com/default.aspx?v=2&amp;amp;cp=29.745134~-95.55198&amp;amp;style=r&amp;amp;lvl=14&amp;amp;scene=4136079&amp;amp;sp=Point.nyqvw37130x6_2000%20W.%20Sam%20Houston%20Pkwy.%20S.%2c%20Houston%2c%20TX%2077042%2c%20United%20States___"&gt;See map and/or driving directions&lt;/a&gt;&lt;/p&gt;                  &lt;p&gt;Live Meeting Link for Remote Attendees - &lt;a href="meet:sip:tylerc@microsoft.com;gruu;opaque=app:conf:focus:id:2933eeecb1e4416c94b89ea427e8883a%3Fconf-key=1037"&gt;Join the meeting&lt;/a&gt;&lt;/p&gt;                  &lt;p&gt;Make sure the Office Live Meeting client is installed before the meeting:&lt;/p&gt;                  &lt;p&gt;· I am connecting from &lt;a href="http://r.office.microsoft.com/r/rlidOCSR2?clid=1033&amp;amp;p1=livemeeting"&gt;inside the Microsoft network&lt;/a&gt;&lt;/p&gt;                  &lt;p&gt;· I am connecting from &lt;a href="http://r.office.microsoft.com/r/rlidOCSR2?clid=1033&amp;amp;p1=livemeeting"&gt;outside the Microsoft network&lt;/a&gt;&lt;/p&gt;                  &lt;p&gt;&lt;u&gt;&lt;/u&gt;&lt;/p&gt;                  &lt;p&gt;&lt;u&gt;Topics&lt;/u&gt;&lt;/p&gt;                  &lt;p&gt;· &lt;b&gt;Introducing SQL Server 2008 R2 Master Data Services (MDS):&lt;/b&gt;&lt;/p&gt;                  &lt;p&gt;Master Data Management is a key enabler in improving the timeliness, quality and reliability of BI with the ultimate goal of improving business performance.&amp;#160; This session will be a primer on how to get started with Master Data Management using MDS.&lt;/p&gt;                  &lt;p&gt;Speaker:&amp;#160; Satheesh Kumar is the principal/lead consultant for Catapult Systems, a Microsoft-focused IT consulting firm. Satheesh has been developing with Microsoft technologies since 1996 and has deep experience in web applications, business intelligence and business analytics. He is currently focused on providing professional solutions using the latest technologies, including the Microsoft BI technology stack.&amp;#160; He has an MBA from RICE University, interested&amp;#160; in data mining research. He can be reached online at &lt;a href="http://businessintelligence101.wordpress.com/"&gt;http://businessintelligence101.wordpress.com/&lt;/a&gt;&lt;/p&gt;                  &lt;p&gt;· &lt;b&gt;Excel Tips and Tricks - Working with External Data&lt;/b&gt;&lt;/p&gt;                  &lt;p&gt;In this talk, Jim is going to share tips/tricks for working in Excel, specifically how to build flexible data extracts from relational databases, including passing parameters from Excel to SQL Server or Access.&lt;/p&gt;                  &lt;p&gt;Speaker:&amp;#160; Jim Cline is a Senior Manager of Ad-Hoc Reporting at Service Corporation International, the world’s largest funeral home and cemetery consolidator; he has been with SCI for about 14 years.&amp;#160; Jim’s department creates ad hoc reporting in Excel, Access, SQL Server, and web-based reports and applications.&amp;#160; Jim has a strong business background and mastery of Excel, including:&lt;/p&gt;                  &lt;p&gt;•&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Previously with Arthur Andersen as a tax accountant and real estate appraiser (7 years).&lt;/p&gt;                  &lt;p&gt;•&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Degree from the University of Houston with a BBA in Accounting and Taxation.&lt;/p&gt;                  &lt;p&gt;•&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Founded ClineSys, an Excel and Access training system.&amp;#160; Currently has two Excel courses (2003 and 2007) and two Access/SQL courses (2003 and 2007).&amp;#160; &lt;a href="http://www.ClineSys.com"&gt;www.ClineSys.com&lt;/a&gt; .&amp;#160; ClineSys is approved by the National Association of State Boards of Accountancy (NASBA) and CPAs can earn 40 hours of CPE credit by taking the Excel (2003 or 2007) course.&lt;/p&gt;               &lt;/td&gt;             &lt;/tr&gt;           &lt;/tbody&gt;&lt;/table&gt;       &lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;Come out and support the new group.&amp;#160; &lt;/p&gt;  &lt;p&gt;Talk to you soon,&lt;/p&gt;  &lt;p&gt;Patrick LeBlanc, SQL Server MVP, MCTS, founder &lt;a href="www.sqllunch.com"&gt;SQL Lunch&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Visit &lt;a href="http://www.BIDN.com"&gt;www.BIDN.com&lt;/a&gt;, Bring Business Intelligence to your company.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2046028067618905204-7760453540012769471?l=sqldownsouth.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sqldownsouth.blogspot.com/feeds/7760453540012769471/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sqldownsouth.blogspot.com/2010/10/1st-houston-microsoft-business.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2046028067618905204/posts/default/7760453540012769471'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2046028067618905204/posts/default/7760453540012769471'/><link rel='alternate' type='text/html' href='http://sqldownsouth.blogspot.com/2010/10/1st-houston-microsoft-business.html' title='1st Houston Microsoft Business Intelligence User Group'/><author><name>Patrick LeBlanc</name><uri>http://www.blogger.com/profile/01738972122068246140</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_barBiSO8ITc/TGG9UkphClI/AAAAAAAAAPY/dGyatbRnf0Y/S220/PatrickHeadShotFull.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2046028067618905204.post-7147028786096250049</id><published>2010-10-18T16:27:00.001-07:00</published><updated>2010-10-18T16:27:26.651-07:00</updated><title type='text'>MDX Puzzles (New Author)</title><content type='html'>&lt;p&gt;Well I am sure most of you noticed that I haven't posted an MDX puzzle in some time.&amp;#160; After much consideration I have decided to pass the torch to someone that I feel will devote the time needed to help you all continue with your learning.&amp;#160; So with that, I would like to introduce or re-introduce you all to &lt;a href="http://bidn.com/blogs/DustinRyan"&gt;Dustin Ryan&lt;/a&gt; the new MDX Puzzle guy.&amp;#160; Dustin is a consultant for Pragmatic Works and a regular blogger on BIDN.com.&amp;#160; He is also very skilled with MDX.&amp;#160; &lt;/p&gt;  &lt;p&gt;I am not quite sure when Dustin is going to start posting the puzzles, but I am sure it is going to be soon.&amp;#160; Thanks Dustin for stepping taking in over.&amp;#160; &lt;/p&gt;  &lt;p&gt;Talk to you soon,&lt;/p&gt;  &lt;p&gt;Patrick LeBlanc (form MDX puzzler), SQL Server MVP, MCTS and founder &lt;a href="www.sqllunch.com"&gt;SQL Lunch&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Visit &lt;a href="http://www.BIDN.com" www.bidn.com?="www.bidn.com?"&gt;www.BIDN.com&lt;/a&gt;, Bring Business Intelligence to your company.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2046028067618905204-7147028786096250049?l=sqldownsouth.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sqldownsouth.blogspot.com/feeds/7147028786096250049/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sqldownsouth.blogspot.com/2010/10/mdx-puzzles-new-author.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2046028067618905204/posts/default/7147028786096250049'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2046028067618905204/posts/default/7147028786096250049'/><link rel='alternate' type='text/html' href='http://sqldownsouth.blogspot.com/2010/10/mdx-puzzles-new-author.html' title='MDX Puzzles (New Author)'/><author><name>Patrick LeBlanc</name><uri>http://www.blogger.com/profile/01738972122068246140</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_barBiSO8ITc/TGG9UkphClI/AAAAAAAAAPY/dGyatbRnf0Y/S220/PatrickHeadShotFull.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2046028067618905204.post-4389703134831531593</id><published>2010-10-18T05:23:00.001-07:00</published><updated>2010-10-18T05:23:50.171-07:00</updated><title type='text'>SQL Lunch #40 - Mirroring: The Bear Necessities</title><content type='html'>&lt;p&gt;I am excited to announce a new speaker to the SQL Lunch, Ryan Adams.&amp;#160; Ryan will be discussing Database Mirroring and how it has become an integral part of high availability and&amp;#160; disaster recovery planning.&amp;#160; See the following meeting details:&lt;/p&gt;  &lt;p&gt;&lt;img alt="Lunch Image" src="http://sqllunch.com/images/Lunch%20Images/Ryan Web Profile.JPG" width="115" height="130" /&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Speaker:&lt;/b&gt; Ryan Adams&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Meeting URL:&lt;/strong&gt;&amp;#160; &lt;a title="https://www.livemeeting.com/cc/usergroups/join?id=6J9BKQ&amp;amp;role=attend" href="https://www.livemeeting.com/cc/usergroups/join?id=6J9BKQ&amp;amp;role=attend"&gt;https://www.livemeeting.com/cc/usergroups/join?id=6J9BKQ&amp;amp;role=attend&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Add To Outlook: &lt;/b&gt;&lt;a href="http://sqllunch.com/addtooutlook/lunch40.ics"&gt;Add To Calendar&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Date and Time:&lt;/b&gt; 10/19/2010 11:30:00 AM CST     &lt;br /&gt;&lt;b&gt;BIO: &lt;/b&gt;Ryan is a highly skilled Microsoft oriented administrator and has worked for a Fortune 100 company for 12 years. In his time there he has supported everything from desktop to server. Most recently he has served as a senior Active Directory Architect and Identity Management (MIIS, ILM, FIM) Consultant. He is the sole SQL Server DBA for his group, supporting both vendor databases and custom databases. His primary focus is database design and performance, but also works with SSRS report development, and SSIS ETL. He enjoys being involved in the SQL community and serves on the board of directors for the North Texas SQL Server User Group. He is well versed in many core Microsoft technologies, has implemented and supported them both nationally and internationally for a company of 250k+ users, and holds the following certifications: MCP MCSA MCSE MCDBA - SQL 2000 MCTS - SQL 2005 MCITP - SQL 2005 &lt;/p&gt;  &lt;p&gt;   &lt;br /&gt;&lt;b&gt;Topic: &lt;/b&gt;#40-Mirroring: The Bear Necessities     &lt;br /&gt;Mirroring can be an integral part of your high availability and disaster recovery planning. We’ll cover what mirroring is, how it can fit into an HA/DR plan, the rules surrounding its use, configuration via the GUI and T-SQL, as well as how to monitor mirroring. This presentation is designed to not only give you an overview of mirroring, but to also walk you through a basic implementation. At the end you will have learned what mirroring is, how it can fit into your environment, what business requirements it solves, and how to configure it.&lt;/p&gt;  &lt;p&gt;See you at Lunch,&lt;/p&gt;  &lt;p&gt;Patrick LeBlanc, founder SQL Lunch, SQL Server MVP, MCTS&lt;/p&gt;  &lt;p&gt;Visit &lt;a href="http://www.BIDN.com"&gt;www.BIDN.com&lt;/a&gt;, Bring Business Intelligence to your company.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2046028067618905204-4389703134831531593?l=sqldownsouth.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sqldownsouth.blogspot.com/feeds/4389703134831531593/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sqldownsouth.blogspot.com/2010/10/sql-lunch-40-mirroring-bear-necessities.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2046028067618905204/posts/default/4389703134831531593'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2046028067618905204/posts/default/4389703134831531593'/><link rel='alternate' type='text/html' href='http://sqldownsouth.blogspot.com/2010/10/sql-lunch-40-mirroring-bear-necessities.html' title='SQL Lunch #40 - Mirroring: The Bear Necessities'/><author><name>Patrick LeBlanc</name><uri>http://www.blogger.com/profile/01738972122068246140</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_barBiSO8ITc/TGG9UkphClI/AAAAAAAAAPY/dGyatbRnf0Y/S220/PatrickHeadShotFull.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2046028067618905204.post-7378492045111910108</id><published>2010-10-14T06:18:00.001-07:00</published><updated>2010-10-14T06:18:38.736-07:00</updated><title type='text'>Speaking at SQL Saturday #49 Orlando</title><content type='html'>&lt;p&gt;After making the trip last weekend to Houston for &lt;a href="http://houstontechfest.com"&gt;Houston Techfest&lt;/a&gt; with the kids I am off again, but this time alone.&amp;#160; On Friday I will fly into Orlando for the Speaker dinner, which is always a lot of fun.&amp;#160; On Saturday I will be presenting two sessions.&amp;#160; The first is a mini session on &lt;a href="http://sqlsaturday.com/viewsession.aspx?sat=49&amp;amp;sessionid=2285"&gt;Speaking&lt;/a&gt; and the second is on using &lt;a href="http://sqlsaturday.com/viewsession.aspx?sat=49&amp;amp;sessionid=2283"&gt;Change Data Capture and SSIS to load a Slowly Changing Dimension&lt;/a&gt;.&amp;#160; This is my second time speaking at &lt;a href="http://sqlsaturday.com/49/eventhome.aspx"&gt;SQL Saturday in Orlando&lt;/a&gt;.&amp;#160; If you are in the area stop by.&amp;#160; &lt;/a&gt;&lt;a href="http://sqlsaturday.com/49/register.aspx"&gt;Registration&lt;/a&gt; is still open. &lt;/p&gt;  &lt;p&gt;Talk to you soon, &lt;/p&gt;  &lt;p&gt;Patrick LeBlanc, SQL Server MVP, MCTS, Founder SQL Lunch &lt;/p&gt;  &lt;p&gt;Visit &lt;a href="http://www.BIDN.com"&gt;www.BIDN.com&lt;/a&gt;, Bring Business Intelligence to your company. &lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2046028067618905204-7378492045111910108?l=sqldownsouth.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sqldownsouth.blogspot.com/feeds/7378492045111910108/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sqldownsouth.blogspot.com/2010/10/speaking-at-sql-saturday-49-orlando.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2046028067618905204/posts/default/7378492045111910108'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2046028067618905204/posts/default/7378492045111910108'/><link rel='alternate' type='text/html' href='http://sqldownsouth.blogspot.com/2010/10/speaking-at-sql-saturday-49-orlando.html' title='Speaking at SQL Saturday #49 Orlando'/><author><name>Patrick LeBlanc</name><uri>http://www.blogger.com/profile/01738972122068246140</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_barBiSO8ITc/TGG9UkphClI/AAAAAAAAAPY/dGyatbRnf0Y/S220/PatrickHeadShotFull.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2046028067618905204.post-4247948018430643851</id><published>2010-10-12T16:09:00.001-07:00</published><updated>2010-10-12T16:09:08.016-07:00</updated><title type='text'>Why do I contribute to the SQL Server Community?</title><content type='html'>&lt;p&gt;As an active speaker and volunteer in the SQL Server community I am often asked why do I do it?&amp;#160; Sometimes, I actually ask myself that question, but when I think about how the community as a whole operates (quick to answer questions and join discussions) any doubt is quickly removed.&amp;#160; Think about this, in what community can you post a question on twitter or send an email to someone you met at a community event and before you know it, you have several responses to your question.&amp;#160; I became active in the community almost three years ago and I was embraced (not physically, well maybe by a couple) by several people who I considered to be some the of the top SQL Server professionals in the community.&amp;#160; So why not give back?&amp;#160; If I had to list the TOP (5) reasons as to why I do it, it would hard for me to narrow it down.&amp;#160; Fortunately, I am always up to a challenge so here are my TOP 5 reasons:&lt;/p&gt;  &lt;p&gt;1.&amp;#160; Contributing to the community, continually increases my knowledge about SQL Server and all of it's components.&lt;/p&gt;  &lt;p&gt;2.&amp;#160; Allows me to meet a bunch of really talented SQL Server professionals.&amp;#160; Networking, Networking, Networking....&lt;/p&gt;  &lt;p&gt;3.&amp;#160; Can't forget about job opportunities, because I landed my current job with Pragmatic Works at a SQL Saturday event where I was speaking.&lt;/p&gt;  &lt;p&gt;4.&amp;#160; Allows me to travel to places that I have never been (a selfish reason) ;).&lt;/p&gt;  &lt;p&gt;5.&amp;#160; Honestly, I enjoy it.&lt;/p&gt;  &lt;p&gt;So why do you contribute?&amp;#160; Write your own blog post and share it with the community.&lt;/p&gt;  &lt;p&gt;Talk to you soon,&lt;/p&gt;  &lt;p&gt;Patrick LeBlanc, SQL Server MVP, MCTS, Founder SQL Lunch&lt;/p&gt;  &lt;p&gt;Visit &lt;a href="http://www.BIDN.com"&gt;www.BIDN.com&lt;/a&gt;, Bring Business Intelligence to your company.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2046028067618905204-4247948018430643851?l=sqldownsouth.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sqldownsouth.blogspot.com/feeds/4247948018430643851/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sqldownsouth.blogspot.com/2010/10/why-do-i-contribute-to-sql-server.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2046028067618905204/posts/default/4247948018430643851'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2046028067618905204/posts/default/4247948018430643851'/><link rel='alternate' type='text/html' href='http://sqldownsouth.blogspot.com/2010/10/why-do-i-contribute-to-sql-server.html' title='Why do I contribute to the SQL Server Community?'/><author><name>Patrick LeBlanc</name><uri>http://www.blogger.com/profile/01738972122068246140</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_barBiSO8ITc/TGG9UkphClI/AAAAAAAAAPY/dGyatbRnf0Y/S220/PatrickHeadShotFull.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2046028067618905204.post-1543880989140199126</id><published>2010-10-12T04:55:00.001-07:00</published><updated>2010-10-12T04:55:56.142-07:00</updated><title type='text'>Speaking at South Florida SQL Server User Group</title><content type='html'>&lt;p&gt;I will be speaking at the &lt;a href="http://www.sfssug.com"&gt;South Florida SQL Server User Group&lt;/a&gt; on October 13 via Live Meeting.&amp;#160; My topic is Introduction to Change Data Capture with SSIS.&amp;#160; If you have some time logon and watch the meeting.&lt;/p&gt;  &lt;p&gt;Meeting URL:&amp;#160; &lt;a href="https://www.livemeeting.com/cc/mvp/join?id=PWWZ93&amp;amp;role=attend&amp;amp;pw=47WFd%7EC%5CJ"&gt;https://www.livemeeting.com/cc/mvp/join?id=PWWZ93&amp;amp;role=attend&amp;amp;pw=47WFd%7EC%5CJ&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;In thisLeBlanc presentation I will Introduce Change Data Capture and show how it can be used to incrementally load a Slowly Changing Dimension.&amp;#160; Hope to see some of you online.&lt;/p&gt;  &lt;p&gt;Talk to you soon,&lt;/p&gt;  &lt;p&gt;Patrick LeBlanc, SQL Server MVP, MCTS, Founder SQL Lunch&lt;/p&gt;  &lt;p&gt;Visit &lt;a href="http://www.BIDN.com"&gt;www.BIDN.com&lt;/a&gt;, Bring Business Intelligence to your company.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2046028067618905204-1543880989140199126?l=sqldownsouth.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sqldownsouth.blogspot.com/feeds/1543880989140199126/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sqldownsouth.blogspot.com/2010/10/speaking-at-south-florida-sql-server.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2046028067618905204/posts/default/1543880989140199126'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2046028067618905204/posts/default/1543880989140199126'/><link rel='alternate' type='text/html' href='http://sqldownsouth.blogspot.com/2010/10/speaking-at-south-florida-sql-server.html' title='Speaking at South Florida SQL Server User Group'/><author><name>Patrick LeBlanc</name><uri>http://www.blogger.com/profile/01738972122068246140</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_barBiSO8ITc/TGG9UkphClI/AAAAAAAAAPY/dGyatbRnf0Y/S220/PatrickHeadShotFull.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2046028067618905204.post-8899612904797125454</id><published>2010-10-07T21:41:00.001-07:00</published><updated>2010-10-07T21:41:31.520-07:00</updated><title type='text'>October SQL Server &amp; .Net User Group Meetings</title><content type='html'>&lt;h2&gt;October .NET &amp;amp; SQL User Group Meetings &lt;/h2&gt;  &lt;p&gt;This month the Baton Rouge SQL Server and .Net user groups are holding a joint meeting.&amp;#160; We will be meeting at our usual location.&amp;#160; If you are around Baton Rouge on Wednesday October 13th stop by.&amp;#160; The meeting details are as follows:&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Location:&amp;#160; &lt;/strong&gt;Lamar Advertising, 5551 Corporate Blvd, Baton Rouge, LA&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Date and Time: &lt;/strong&gt;10/13/2010 5:45:00 PM     &lt;br /&gt;&lt;strong&gt;Sponsored By&lt;/strong&gt;: Sparkhound     &lt;br /&gt;&lt;strong&gt;Agenda:&lt;/strong&gt;     &lt;br /&gt;&lt;strong&gt;5:45 - 6:15 pm:&lt;/strong&gt; Networking and Refreshments     &lt;br /&gt;&lt;strong&gt;6:15 - 6:30 pm:&lt;/strong&gt; Lightning Round     &lt;br /&gt;&lt;strong&gt;6:30 - 7:45 pm:&lt;/strong&gt; (.NET) Visualize Data in a “geo way” with WP 7 and Silverlight     &lt;br /&gt;&lt;strong&gt;6:30 - 7:45 pm:&lt;/strong&gt; (SQL) Building Spatial Data Reports with SSRS 2008 R2 and Powershell for the DBA     &lt;br /&gt;&lt;strong&gt;7:45 - until:&lt;/strong&gt; Open Forum for questions and Raffle &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Lightning Round (Lamar Kitchen)&lt;/strong&gt;     &lt;br /&gt;&lt;strong&gt;Topic:&lt;/strong&gt; Introduction to the Pomodoro Technique     &lt;br /&gt;&lt;strong&gt;Overview:&lt;/strong&gt; For many of us time is an enemy. The anxiety triggered by “the ticking clock” and deadlines to be met leads to ineffective work and study habits and procrastination. In this lightning round we’ll look at how the Pomodoro Technique can help transform time into a valuable ally.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Speaker: &lt;/strong&gt;Stacy Vicknair, VB.NET MVP, MCTS&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;BIO: &lt;/strong&gt;Stacy Vicknair is a development consultant working for Sparkhound and a Microsoft MVP for two years running in Visual Basic. Stacy blogs at his website, &lt;a href="http://www.wtfnext.com"&gt;http://www.wtfnext.com&lt;/a&gt;, about .NET and other general development topics. He is active in his local community as a committee member for the Baton Rouge .NET User Group (&lt;a href="http://www.brdnug.org)"&gt;http://www.brdnug.org)&lt;/a&gt; and     &lt;br /&gt;a co-founder for the Baton Rouge Architecture Group (&lt;a href="http://www.braglunch.com"&gt;http://&lt;/a&gt;&lt;a href="http://www.braglunch.com"&gt;www.braglunch.com&lt;/a&gt;&lt;/a&gt;). &lt;/p&gt;  &lt;h2&gt;SQL Server User Group (3rd Floor Conference Room) Two Topics&lt;/h2&gt;  &lt;p&gt;&lt;u&gt;Session One&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Topic:&lt;/strong&gt; Building Spatial Data Reports with SQL Server 2008 R2 Reporting Services Overview: Microsoft introduced spatial data types in SQL Server 2008 and since has enhanced the reporting capabilities in the following release of SQL Server 2008 R2. This session will introduce the concept of spatial data types in SQL, provide some tips and tools for getting spatial data into SQL, and show different methods for including spatial data in SQL Reporting Services Reports.&lt;/p&gt;  &lt;p&gt;   &lt;br /&gt;&lt;strong&gt;Speaker:&lt;/strong&gt; Mark Verret&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;BIO: &lt;/strong&gt;Mark Verret is the Systems Administrator for the LSU Highway Safety Research Group.&amp;#160; He has over 10 years of experience in the IT field.&amp;#160; He has presented at the past two SQLSaturday events in Baton Rouge.&amp;#160; He has functioned as DBA for the past 3 years working with SQL 2000, 2005, 2008, and 2008 R2.&amp;#160; &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;u&gt;Session Two&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Summary: Powershell for DBAs- introduction and examples of how Powershell 2.0 can make you a more versatile SQL Server Administrator &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Speaker:&amp;#160; &lt;/strong&gt;William Assaf&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Bio: &lt;/strong&gt;William Assaf, MCITP-DD, is a Senior Development Consultant and Team Lead for Sparkhound, Inc. in Baton Rouge, LA.&amp;#160; He blogs on SQL Server at &lt;a href="http://sqltact.blogspot.com"&gt;http://sqltact.blogspot.com&lt;/a&gt;, where you can find the slides and code examples of this presentation.&lt;/p&gt;  &lt;h2&gt;&lt;strong&gt;.NET User Group (Lamar Kitchen)&lt;/strong&gt;     &lt;br /&gt;&lt;/h2&gt;  &lt;p&gt;&lt;strong&gt;&lt;/strong&gt;Topic: Visualize Data in a “geo way” with WP 7 and Silverlight Overview: Geospatial data is being used everywhere these days, from social media, to citizen reporting 311 applications, to tracking government spending. This talk will discuss design tips and go over the requirements for creating a better user experience and how to visualize data in a “geo way” for Windows Phone 7 and Silverlight applications.&lt;/p&gt;  &lt;p&gt;   &lt;br /&gt;&lt;strong&gt;Speaker:&lt;/strong&gt; Al Pascual     &lt;br /&gt;&lt;strong&gt;BIO: &lt;/strong&gt;Company: ESRI     &lt;br /&gt;Al Pascual was born, bred and educated in Barcelona Spain,. He moved to England as a young lad to work as a developer in start-ups in the technology field. After seven years working in many small companies, Al moved to California with dreams of stock options to work for another start-up and enjoyed the world of low-level C and C++. After spending a few years working as a consultant, when .NET came out, Al helped companies be more productive. He became a pure web developer, believing that HTTP will rule the world and ASP.NET had nothing to do with classic ASP. Finally growing up and joining the corporate world     &lt;br /&gt;to be part of the matrix, Al now has a wife, 3 daughters, 2 dogs, 2 rats, 1 turtle and a mortgage. He’s happy to work for a big company like Esri as a senior software developer working mainly in Silverlight and ASP.NET. &lt;/p&gt;  &lt;p&gt;See at the User Group&lt;/p&gt;  &lt;p&gt;Patrick LeBlanc, SQL Server MVP, MCTS, SQL Server Chapter Leader&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2046028067618905204-8899612904797125454?l=sqldownsouth.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sqldownsouth.blogspot.com/feeds/8899612904797125454/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sqldownsouth.blogspot.com/2010/10/october-sql-server-net-user-group.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2046028067618905204/posts/default/8899612904797125454'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2046028067618905204/posts/default/8899612904797125454'/><link rel='alternate' type='text/html' href='http://sqldownsouth.blogspot.com/2010/10/october-sql-server-net-user-group.html' title='October SQL Server &amp;amp; .Net User Group Meetings'/><author><name>Patrick LeBlanc</name><uri>http://www.blogger.com/profile/01738972122068246140</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_barBiSO8ITc/TGG9UkphClI/AAAAAAAAAPY/dGyatbRnf0Y/S220/PatrickHeadShotFull.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2046028067618905204.post-4484260235951813727</id><published>2010-10-07T19:10:00.001-07:00</published><updated>2010-10-07T19:10:36.919-07:00</updated><title type='text'>SQL Lunch #32:  SSIS Design Patterns, with Andy Leonard</title><content type='html'>&lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;Don't miss SQL Server MVP Andy Leonard on the SQL Lunch, Monday, October 11th.&lt;/p&gt;  &lt;h5&gt;&lt;a href="http://www.sqllunch.com/Meeting.aspx?lunchid=33"&gt;#32-SSIS Design Patterns 1c: Variables, Events, and Automated Custom Logging Patterns&lt;/a&gt;&lt;/h5&gt;  &lt;p&gt;&lt;img alt="Lunch Image" src="http://www.sqllunch.com/images/Lunch%20Images/AndyLeonard.jpg" width="115" height="130" /&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Speaker:&lt;/b&gt; Andy Leonard&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Add To Outlook: &lt;/b&gt;&lt;a href="http://www.sqllunch.com/AddtoOutlook/lunch32.ics"&gt;Add To Calendar&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Live Meeting URL:&amp;#160; &lt;a title="https://www.livemeeting.com/cc/usergroups/join?id=JG6T72&amp;amp;role=attend" href="https://www.livemeeting.com/cc/usergroups/join?id=JG6T72&amp;amp;role=attend"&gt;https://www.livemeeting.com/cc/usergroups/join?id=JG6T72&amp;amp;role=attend&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Date and Time:&lt;/b&gt; 10/11/2010 11:30:00 AM CST    &lt;br /&gt;&lt;b&gt;BIO: &lt;/b&gt;Andy Leonard is an Architect with Molina Medicaid Solutions, SQL Server database and Integration Services developer, SQL Server MVP, PASS Regional Mentor, and engineer. He is a co-author of Professional SQL Server 2005 Integration Services and SQL Server MVP Deep Dives. Andy blogs for SQLBlog.com. His background includes web application architecture and development, VB, and ASP; SQL Server Integration Services (SSIS); data warehouse development using SQL Server 2000, 2005 and 2008.&lt;/p&gt;  &lt;p&gt;See you at Lunch&lt;/p&gt;  &lt;p&gt;Patrick LeBlanc, SQL Server MVP, MCTS, Founder SQL Lunch&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2046028067618905204-4484260235951813727?l=sqldownsouth.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sqldownsouth.blogspot.com/feeds/4484260235951813727/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sqldownsouth.blogspot.com/2010/10/sql-lunch-32-ssis-design-patterns-with.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2046028067618905204/posts/default/4484260235951813727'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2046028067618905204/posts/default/4484260235951813727'/><link rel='alternate' type='text/html' href='http://sqldownsouth.blogspot.com/2010/10/sql-lunch-32-ssis-design-patterns-with.html' title='SQL Lunch #32:  SSIS Design Patterns, with Andy Leonard'/><author><name>Patrick LeBlanc</name><uri>http://www.blogger.com/profile/01738972122068246140</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_barBiSO8ITc/TGG9UkphClI/AAAAAAAAAPY/dGyatbRnf0Y/S220/PatrickHeadShotFull.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2046028067618905204.post-6883614458005062245</id><published>2010-10-06T19:42:00.001-07:00</published><updated>2010-10-06T19:42:06.519-07:00</updated><title type='text'>Speaking at Houston Techfest</title><content type='html'>&lt;p&gt;I am heading down to Houston, TX to speak at the &lt;a href="http://houstontechfest.com/"&gt;Houston Techfest&lt;/a&gt; this weekend.&amp;#160; Being a Houston native makes this trip even more exciting.&amp;#160; This is a free event that offers a diverse set of sessions.&amp;#160; The sessions range from What's new in Java to Introduction to Window Azure.&amp;#160;&amp;#160; I attended the event last year and if my memory serves me correctly there were only two SQL Sessions.&amp;#160; Fortunately, I was able to convince the event coordinator, Michael Steinberg, to include a full SQL Track at the event. This year the event will host at least 7 SQL Sessions.&amp;#160; I will be giving two presentations.&amp;#160; The first is a presentation on Backup and Data Compression and in the second session I will be introducing the use of Change Data Capture with SSIS.&amp;#160; &lt;/p&gt;  &lt;p&gt;This event attracts approximately 1000 people from all across the state.&amp;#160; If you are near the Houston area this weekend I recommend that you try to attend.&amp;#160; Not only is it a great chance to learn something new, but you may even win a Trip to Las Vegas.&amp;#160; One thing I forgot to mention was that lunch is FREE.&amp;#160; So I hope to see you all there.&amp;#160; Also, if you attend my second session of the day you will have a chance to win &lt;a href="http://www.amazon.com/Knights-Microsoft-Business-Intelligence-24-Hour/dp/0470889632/ref=sr_1_fkmr2_1?ie=UTF8&amp;amp;qid=1286419101&amp;amp;sr=8-1-fkmr2"&gt;Knight's Microsoft Business Intelligence 24-Hour Trainer&lt;/a&gt;, which I co-authored.&amp;#160; Hope to see you there!&lt;/p&gt;  &lt;p&gt;Talk to you soon,&lt;/p&gt;  &lt;p&gt;Patrick LeBlanc, SQL Server MVP, MCTS, Founder &lt;a href="http://www.sqllunch.com"&gt;www.sqllunch.com&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Visit &lt;a href="http://www.BIDN.com"&gt;www.BIDN.com&lt;/a&gt;, Bring Business Intelligence to your company.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2046028067618905204-6883614458005062245?l=sqldownsouth.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sqldownsouth.blogspot.com/feeds/6883614458005062245/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sqldownsouth.blogspot.com/2010/10/speaking-at-houston-techfest.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2046028067618905204/posts/default/6883614458005062245'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2046028067618905204/posts/default/6883614458005062245'/><link rel='alternate' type='text/html' href='http://sqldownsouth.blogspot.com/2010/10/speaking-at-houston-techfest.html' title='Speaking at Houston Techfest'/><author><name>Patrick LeBlanc</name><uri>http://www.blogger.com/profile/01738972122068246140</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_barBiSO8ITc/TGG9UkphClI/AAAAAAAAAPY/dGyatbRnf0Y/S220/PatrickHeadShotFull.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2046028067618905204.post-2219655877712913769</id><published>2010-10-04T07:55:00.001-07:00</published><updated>2010-10-04T07:55:20.736-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SQLLunch'/><title type='text'>SQL Lunch One Year Anniversary</title><content type='html'>&lt;p&gt;I am very excited to announce the 1 year anniversary of the SQL Lunch. Last year around this time I was getting the site up and trying to find a couple of speakers to ensure that we had a good start. I was able to convince Tim Mitchell to speak and the rest is history. Thanks to everyone that has attended all of the lunch events and thanks to all of the speakers who gave their time to make the site a success.&lt;/p&gt;  &lt;p&gt;During the first year I gained a co-host (Adam Jorgensen) and several new friends along the way. I also hired the first SQL Lunch employee, Patrick Jr. (my son). He and I are working hard on improving the site and the notifications. Thanks again to everyone and see you at the next SQL Lunch. As always, we are looking for speakers so email us at &lt;a href="mailto:webmaster@sqllunch.com"&gt;webmaster@sqllunch.com&lt;/a&gt; if you are interested in speaking.&lt;/p&gt;  &lt;p&gt;Talk to you soon, &lt;/p&gt;  &lt;p&gt;Patrick LeBlanc, SQL Server MVP, MCTS &lt;/p&gt;  &lt;p&gt;Founder &lt;a href="http://www.sqllunch.com/"&gt;SQL Lunch&lt;/a&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2046028067618905204-2219655877712913769?l=sqldownsouth.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sqldownsouth.blogspot.com/feeds/2219655877712913769/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sqldownsouth.blogspot.com/2010/10/sql-lunch-one-year-anniversary.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2046028067618905204/posts/default/2219655877712913769'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2046028067618905204/posts/default/2219655877712913769'/><link rel='alternate' type='text/html' href='http://sqldownsouth.blogspot.com/2010/10/sql-lunch-one-year-anniversary.html' title='SQL Lunch One Year Anniversary'/><author><name>Patrick LeBlanc</name><uri>http://www.blogger.com/profile/01738972122068246140</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_barBiSO8ITc/TGG9UkphClI/AAAAAAAAAPY/dGyatbRnf0Y/S220/PatrickHeadShotFull.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2046028067618905204.post-24935177817088872</id><published>2010-10-03T14:22:00.001-07:00</published><updated>2010-10-03T14:22:39.309-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Change Data Capture'/><title type='text'>Maintain Change Data Capture Configuration when restoring a database</title><content type='html'>&lt;p&gt;I have been working with a several clients that are leveraging Change Data Capture (CDC) as a tool for incrementally loading their Data Warehouse.&amp;#160; In most cases the clients are using database restores from various environments to create test environments.&amp;#160; When databases with CDC enabled is restored to the same server with the same database name, CDC remains enabled and &lt;b&gt;&lt;i&gt;all related meta data is persisted&lt;/i&gt;&lt;/b&gt;.&amp;#160; However, when restoring the database to another server or to the same server, but with a new database name, CDC is disabled and all related metadata is deleted.&amp;#160; To retain the CDC configuration when restoring, simply use the KEEP_CDC option when restoring your database.&amp;#160; The following script shows an example of how to accomplish this:    &lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;       &lt;tr&gt;         &lt;td valign="top" width="379"&gt;           &lt;p&gt;&lt;b&gt;RESTORE&lt;/b&gt;&lt;b&gt; DATABASE TestCDC&lt;/b&gt;&lt;/p&gt;            &lt;p&gt;&lt;b&gt;FROM&lt;/b&gt;&lt;b&gt; DISK = 'C:\MMSQL\BACKUPS\TestCDC.bak'&lt;/b&gt;&lt;/p&gt;            &lt;p&gt;&lt;b&gt;WITH&lt;/b&gt;&lt;b&gt; KEEP_CDC&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;     &lt;/tbody&gt;&lt;/table&gt; &lt;/p&gt;  &lt;p&gt;The key item here is to specify KEEP_CDC as an option of the restore.&amp;#160; As always, if you have any questions concerning this post please comment here or send an email to &lt;a href="mailto:pleblanc@pragmaticworks.com"&gt;pleblanc@pragmaticworks.com&lt;/a&gt;. &lt;/p&gt;  &lt;p&gt;Talk to you soon,&lt;/p&gt;  &lt;p&gt;Patrick LeBlanc, SQL Server MVP, MCTS&lt;/p&gt;  &lt;p&gt;Founder &lt;a href="http://www.sqllunch.com/"&gt;SQL Lunch&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Visit &lt;a href="http://www.BIDN.com"&gt;www.BIDN.com&lt;/a&gt;, Bring Business Intelligence to your company.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2046028067618905204-24935177817088872?l=sqldownsouth.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sqldownsouth.blogspot.com/feeds/24935177817088872/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sqldownsouth.blogspot.com/2010/10/maintain-change-data-capture.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2046028067618905204/posts/default/24935177817088872'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2046028067618905204/posts/default/24935177817088872'/><link rel='alternate' type='text/html' href='http://sqldownsouth.blogspot.com/2010/10/maintain-change-data-capture.html' title='Maintain Change Data Capture Configuration when restoring a database'/><author><name>Patrick LeBlanc</name><uri>http://www.blogger.com/profile/01738972122068246140</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_barBiSO8ITc/TGG9UkphClI/AAAAAAAAAPY/dGyatbRnf0Y/S220/PatrickHeadShotFull.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2046028067618905204.post-4909791771667902634</id><published>2010-10-03T11:03:00.001-07:00</published><updated>2010-10-03T11:03:49.955-07:00</updated><title type='text'>SQL Saturday #57 (Houston) Call for Speakers and Registration is Open!!</title><content type='html'>&lt;p&gt;So many people have been waiting for a SQL Saturday in Houston and now it’s finally here. As a native of Houston I was surprised that it wasn’t one of the first SQL Saturday venues. Well the wait is over. Thanks to Nancy Wilson, the local SQL Server User Group Chapter Leader, Jonathan Gardner and Malik Al-Aminthe, the first Houston &lt;a href="http://sqlsaturday.com/57/eventhome.aspx"&gt;SQL Saturday (#57)&lt;/a&gt; will be held on January 29, 2011. Several great sessions have already been submitted, but they are definitely accepting more. In a city the size of Houston they are expecting an overwhelming number of attendees for this event. If you are a speaker that has never given a presentation at a SQL Saturday this may be a good place to get your start. Go &lt;a href="http://sqlsaturday.com/57/callforspeakers.aspx"&gt;here&lt;/a&gt; to sign up. If you are not quite ready to speak, but would like to attend click &lt;a href="http://sqlsaturday.com/57/register.aspx"&gt;here&lt;/a&gt; to register. See you in Houston.&lt;/p&gt;  &lt;p&gt;Talk to you soon,&lt;/p&gt;  &lt;p&gt;Patrick LeBlanc, SQL Server MVP, MCTS&lt;/p&gt;  &lt;p&gt;Founder &lt;a href="http://www.sqllunch.com/"&gt;SQL Lunch&lt;/a&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2046028067618905204-4909791771667902634?l=sqldownsouth.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sqldownsouth.blogspot.com/feeds/4909791771667902634/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sqldownsouth.blogspot.com/2010/10/sql-saturday-57-houston-call-for.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2046028067618905204/posts/default/4909791771667902634'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2046028067618905204/posts/default/4909791771667902634'/><link rel='alternate' type='text/html' href='http://sqldownsouth.blogspot.com/2010/10/sql-saturday-57-houston-call-for.html' title='SQL Saturday #57 (Houston) Call for Speakers and Registration is Open!!'/><author><name>Patrick LeBlanc</name><uri>http://www.blogger.com/profile/01738972122068246140</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_barBiSO8ITc/TGG9UkphClI/AAAAAAAAAPY/dGyatbRnf0Y/S220/PatrickHeadShotFull.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2046028067618905204.post-4889934796771231277</id><published>2010-09-19T16:29:00.001-07:00</published><updated>2010-09-19T16:29:21.559-07:00</updated><title type='text'>SSIS: Assign a value to Variable using Dataflow Script task</title><content type='html'>&lt;p&gt;I am not quite sure how many of you have tried to set or change the value of a variable using an SSIS script task, but if you have tried I am sure that you may have ran into a few road blocks.&amp;#160; Recently I tried to do this and I quickly realized that it is not as straightforward as I thought.&amp;#160; To do this configure your package so that you have a source of some type on the data flow design surface.&amp;#160; Drag a script task onto the data flow and connect it to the source.&amp;#160; Typically, you would set the variable you want to read from or write to as a ReadOnly or ReadWrite value on the Custom Properties of the script task.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/_barBiSO8ITc/TJacysatmvI/AAAAAAAAARg/DqTuHw-Lf90/s1600-h/image%5B3%5D.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://lh4.ggpht.com/_barBiSO8ITc/TJac0A0VsQI/AAAAAAAAARk/Y25MXFeKEIg/image_thumb%5B1%5D.png?imgmax=800" width="530" height="188" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;This is only the case on the Control Flow.&amp;#160; In the case of the data flow this is not required.&amp;#160; I don't claim to be a developer, but I do know how to use the Internet to find a solution to a problem.&amp;#160; After searching for about 10 minutes I found three posts that assisted me in solving the problem.&amp;#160; Each post provided a little snippet of code that added to my solution.&amp;#160; Here is the code:&lt;/p&gt;  &lt;div class="csharpcode"&gt;   &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;    &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;override&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; Input0_ProcessInputRow(Input0Buffer Row)&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre&gt;&lt;span class="lnum"&gt;   2:  &lt;/span&gt;    {&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   3:  &lt;/span&gt;        &lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre&gt;&lt;span class="lnum"&gt;   4:  &lt;/span&gt;        IDTSVariables100 vars = &lt;span class="kwrd"&gt;null&lt;/span&gt;;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   5:  &lt;/span&gt;        VariableDispenser.LockOneForWrite(&lt;span class="str"&gt;&amp;quot;intMaxSalesDetailsID&amp;quot;&lt;/span&gt;, &lt;span class="kwrd"&gt;ref&lt;/span&gt; vars);&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre&gt;&lt;span class="lnum"&gt;   6:  &lt;/span&gt;        &lt;span class="kwrd"&gt;if&lt;/span&gt;(!Row.SalesDetailID_IsNull)&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   7:  &lt;/span&gt;            vars[0].Value = Row.SalesDetailID;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre&gt;&lt;span class="lnum"&gt;   8:  &lt;/span&gt;        vars.Unlock();&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   9:  &lt;/span&gt;    }&lt;/pre&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;style type="text/css"&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;.csharpcode, .csharpcode pre&lt;br /&gt;{&lt;br /&gt;	font-size: small;&lt;br /&gt;	color: black;&lt;br /&gt;	font-family: consolas, "Courier New", courier, monospace;&lt;br /&gt;	background-color: #ffffff;&lt;br /&gt;	/*white-space: pre;*/&lt;br /&gt;}&lt;br /&gt;.csharpcode pre { margin: 0em; }&lt;br /&gt;.csharpcode .rem { color: #008000; }&lt;br /&gt;.csharpcode .kwrd { color: #0000ff; }&lt;br /&gt;.csharpcode .str { color: #006080; }&lt;br /&gt;.csharpcode .op { color: #0000c0; }&lt;br /&gt;.csharpcode .preproc { color: #cc6633; }&lt;br /&gt;.csharpcode .asp { background-color: #ffff00; }&lt;br /&gt;.csharpcode .html { color: #800000; }&lt;br /&gt;.csharpcode .attr { color: #ff0000; }&lt;br /&gt;.csharpcode .alt &lt;br /&gt;{&lt;br /&gt;	background-color: #f4f4f4;&lt;br /&gt;	width: 100%;&lt;br /&gt;	margin: 0em;&lt;br /&gt;}&lt;br /&gt;.csharpcode .lnum { color: #606060; }&lt;/style&gt;&lt;style type="text/css"&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;.csharpcode, .csharpcode pre&lt;br /&gt;{&lt;br /&gt;	font-size: small;&lt;br /&gt;	color: black;&lt;br /&gt;	font-family: consolas, "Courier New", courier, monospace;&lt;br /&gt;	background-color: #ffffff;&lt;br /&gt;	/*white-space: pre;*/&lt;br /&gt;}&lt;br /&gt;.csharpcode pre { margin: 0em; }&lt;br /&gt;.csharpcode .rem { color: #008000; }&lt;br /&gt;.csharpcode .kwrd { color: #0000ff; }&lt;br /&gt;.csharpcode .str { color: #006080; }&lt;br /&gt;.csharpcode .op { color: #0000c0; }&lt;br /&gt;.csharpcode .preproc { color: #cc6633; }&lt;br /&gt;.csharpcode .asp { background-color: #ffff00; }&lt;br /&gt;.csharpcode .html { color: #800000; }&lt;br /&gt;.csharpcode .attr { color: #ff0000; }&lt;br /&gt;.csharpcode .alt &lt;br /&gt;{&lt;br /&gt;	background-color: #f4f4f4;&lt;br /&gt;	width: 100%;&lt;br /&gt;	margin: 0em;&lt;br /&gt;}&lt;br /&gt;.csharpcode .lnum { color: #606060; }&lt;/style&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;On line 4 declare an interface that is going to allow us to access the variable.&amp;#160; In the next line we lock the variable for writing.&amp;#160; In line six ensure that the value that is being assigned to the variable from the Input Row is not null.&amp;#160; Then on the next line set the value of the variable to the desired column from the buffer.&amp;#160; Lastly, unlock the variable.&amp;#160; That's all to it.&amp;#160; If you have other method, preferably a simpler approach, send me an email at &lt;a href="mailto:pleblanc@pragmaticworks.com"&gt;pleblanc@pragmaticworks.com&lt;/a&gt; or post it here.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Talk to you soon, &lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Patrick LeBlanc, SQL Server MVP, MCTS&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Founder &lt;a href="www.tsqlscripts.com"&gt;TSQLScripts.com&lt;/a&gt; and &lt;a href="www.sqllunch.com"&gt;SQLLunch.com&lt;/a&gt;.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2046028067618905204-4889934796771231277?l=sqldownsouth.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sqldownsouth.blogspot.com/feeds/4889934796771231277/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sqldownsouth.blogspot.com/2010/09/ssis-assign-value-to-variable-using.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2046028067618905204/posts/default/4889934796771231277'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2046028067618905204/posts/default/4889934796771231277'/><link rel='alternate' type='text/html' href='http://sqldownsouth.blogspot.com/2010/09/ssis-assign-value-to-variable-using.html' title='SSIS: Assign a value to Variable using Dataflow Script task'/><author><name>Patrick LeBlanc</name><uri>http://www.blogger.com/profile/01738972122068246140</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_barBiSO8ITc/TGG9UkphClI/AAAAAAAAAPY/dGyatbRnf0Y/S220/PatrickHeadShotFull.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh4.ggpht.com/_barBiSO8ITc/TJac0A0VsQI/AAAAAAAAARk/Y25MXFeKEIg/s72-c/image_thumb%5B1%5D.png?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2046028067618905204.post-2156665349516386706</id><published>2010-09-15T04:33:00.001-07:00</published><updated>2010-09-15T04:33:40.194-07:00</updated><title type='text'>Baton Rouge SQL Server User Group Meeting Tonight</title><content type='html'>&lt;p&gt;Last Night (9/14/2010) I had the opportunity to present to the Wisconsin SQL Server User Group.&amp;#160; My topic was SSIS- Configuration Files, Deployment and a Little Performance Tuning.&amp;#160; The presentation was well received and I hope to have the opportunity to speak to the group again on another occasion.&amp;#160; &lt;/p&gt;  &lt;p&gt;Tonight(9/15/2010) I will be speaking in front of my local SQL Server User Group in Baton Rouge.&amp;#160; The topic is Loading a Data Warehouse with SSIS.&amp;#160; In addition, I will doing a short presentation (Lightning Round) to the local .Net User group just before the SQL User group begins.&amp;#160; If you are in and around the Baton Rouge area this even stop by.&amp;#160; The details for both groups are as follows:&lt;/p&gt;  &lt;p&gt;&lt;b&gt;There will be great prizes supplied by &lt;b&gt;&lt;a href="https://webmail.east.cox.net/do/redirect?url=http%253A%252F%252Fr20.rs6.net%252Ftn.jsp%253Fllr%253D96hhyqbab%2526et%253D1103688424295%2526s%253D268%2526e%253D001mjGd42dXYU6lVAuTX3S2m3egcSoCtYE52p0yAFkbZAJ6sPoKdBg34DAPZtJ3FEEc8H1WQz_uRSr5yM-N8YNnT_V7kocB28GycFEulEOGELM%253D"&gt;Enta&lt;/a&gt;&lt;/b&gt; including: &lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;A Nook (plays all three e-reader types), Madden 2011, Windows 7, and many more... &lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Date:&lt;/b&gt; September 15, 2010 &lt;/p&gt;  &lt;p&gt;&lt;b&gt;Time:&lt;/b&gt; 5:45 pm &lt;/p&gt;  &lt;p&gt;&lt;b&gt;Location:&lt;/b&gt; Lamar Advertising, 5551 Corporate Blvd, Baton Rouge, LA 70808 &lt;/p&gt;  &lt;p&gt;&lt;b&gt;Sponsored By:&lt;/b&gt; User Group Support Services &lt;/p&gt;  &lt;p&gt;&lt;b&gt;Agenda:&lt;/b&gt; &lt;/p&gt;  &lt;p&gt;5:45 - 6:15 pm: Networking and Refreshments &lt;/p&gt;  &lt;p&gt;6:15 - 6:30 pm: Lightning Round &lt;/p&gt;  &lt;p&gt;6:30 - 7:45 pm: (.Net) Introduction to RIA Services and (SQL) Loading a DataWarehouse with SSIS &lt;/p&gt;  &lt;p&gt;7:45 - until: Open Forum for questions and Raffle &lt;/p&gt;  &lt;h4&gt;&lt;b&gt;&lt;u&gt;Lightning Round (Lamar Kitchen)&lt;/u&gt;&lt;/b&gt;&lt;/h4&gt;  &lt;p&gt;&lt;b&gt;Topic: &lt;/b&gt;Introduction Data-tier applications &lt;/p&gt;  &lt;p&gt;&lt;b&gt;Overview: &lt;/b&gt;SQL Server 2008 R2 introduced a new feature called Data-tier applications (DAC). A data-tier application defines the SQL Server Database Engine schemas and objects that are required to support an application. Join Patrick for a brief introduction to this new feature and learn how to author, build and extract the applications from an existing database using Visual Studio 2010 and SQL Server Management Studio. &lt;/p&gt;  &lt;p&gt;&lt;b&gt;Speaker: &lt;/b&gt;Patrick LeBlanc, SQL Server MVP, MCTS &lt;/p&gt;  &lt;h4&gt;&lt;b&gt;&lt;u&gt;.Net User Group (Lamar Kitchen)&lt;/u&gt;&lt;/b&gt;&lt;/h4&gt;  &lt;p&gt;&lt;b&gt;Topic: &lt;/b&gt;Introduction to RIA Services&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;b&gt;Overview: &lt;/b&gt;RIA Services and Silverlight 4.0 are recent releases and are tightly integrated with .NET 4.0 and Visual Studio 2010. RIA services is a very powerful productivity tool/framework and can be a bit overwhelming when trying to learn. This session will cover an overview of RIA services and then dive into the details using the new Silverlight Business Application Template in VS.NET 2010. We will cover some tips to modifying the code that is generated by the template to tailor it for most enterprise environments. &lt;/p&gt;  &lt;p&gt;&lt;b&gt;Speaker: &lt;/b&gt;Mike &lt;strong&gt;Huguet &lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;BIO: &lt;/b&gt;&lt;b&gt;Company: &lt;/b&gt;&lt;/p&gt;  &lt;p&gt;Sparkhound Blog: &lt;a href="http://geekswithblogs.com/mikehuguet"&gt;http://geekswithblogs.com/mikehuguet&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Mike Huguet is a Solutions Architect for Sparkhound. He is an active member of the community acting as co-leader of the Baton Rouge .NET User Group and committee member for the BR SQL Saturday event. He is also a member of the Microsoft SharePoint Patterns and Practices Advisory team for the recent release for SharePoint 2010. Mike has a software development background and has been working with .NET since Beta 1 of the 1.0 framework. &lt;/p&gt;  &lt;h4&gt;&lt;b&gt;&lt;u&gt;SQL Server User Group (3rd Floor Board Room)&lt;/u&gt;&lt;/b&gt;&lt;/h4&gt;  &lt;p&gt;&lt;b&gt;Topic: &lt;/b&gt;Loading a DataWarehouse with SSIS &lt;/p&gt;  &lt;p&gt;&lt;b&gt;Overview: &lt;/b&gt;With SSIS Data Warehouse developers have a new method of loading their DW. In this session Patrick LeBlanc will show you how to use SSIS to load your Dimensions and Facts. We will discuss different methods that can be used in various environments. He will show you how to fully reload or incrementally load your Data Warehouse. &lt;/p&gt;  &lt;p&gt;&lt;b&gt;Speaker: &lt;/b&gt;Patrick LeBlanc, SQL Server MVP, MCTS &lt;/p&gt;  &lt;p&gt;&lt;b&gt;BIO:&lt;/b&gt; Patrick LeBlanc, SQL Server MVP, is currently a Business Intelligence Architect for Pragmatic Works. He has worked as a SQL Server DBA for the past 9 years. His experience includes working in the Educational, Advertising, Mortgage, Medical and Financial Industries. He is also the founder of TSQLScripts.com, SQLLunch.com and the President of the Baton Rouge Area SQL Server User Group. Patrick is a regular speaker at various SQL Server community events, including SQL Saturday’s, User Groups and the SQL Lunch.&amp;#160; &lt;/p&gt;  &lt;p&gt;Talk to you soon,&lt;/p&gt;  &lt;p&gt;Patrick LeBlanc, SQL Server MVP, MCTS&lt;/p&gt;  &lt;p&gt;Founder &lt;a href="http://www.TSQLScripts.com"&gt;www.TSQLScripts.com&lt;/a&gt; and &lt;a href="http://www.SQLLunch.com"&gt;www.SQLLunch.com&lt;/a&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2046028067618905204-2156665349516386706?l=sqldownsouth.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sqldownsouth.blogspot.com/feeds/2156665349516386706/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sqldownsouth.blogspot.com/2010/09/baton-rouge-sql-server-user-group.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2046028067618905204/posts/default/2156665349516386706'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2046028067618905204/posts/default/2156665349516386706'/><link rel='alternate' type='text/html' href='http://sqldownsouth.blogspot.com/2010/09/baton-rouge-sql-server-user-group.html' title='Baton Rouge SQL Server User Group Meeting Tonight'/><author><name>Patrick LeBlanc</name><uri>http://www.blogger.com/profile/01738972122068246140</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_barBiSO8ITc/TGG9UkphClI/AAAAAAAAAPY/dGyatbRnf0Y/S220/PatrickHeadShotFull.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2046028067618905204.post-8958151260334106549</id><published>2010-09-06T12:03:00.001-07:00</published><updated>2010-09-06T12:03:50.032-07:00</updated><title type='text'>Where do you get your motivation and drive?</title><content type='html'>&lt;p&gt;I was asked by someone the other day, where do you get your drive and motivation? For a second, I was stumped. After giving it a little thought I realized that my drive has several sources. The first is my family of course. My wife has this unbridled drive for success that cannot be measured at any level. Whenever anyone in the house says I can’t, I don’t know how to…, You can’t or some variation of those sentences she immediately corrects us. Can’t is not part of our vocabulary. Next it’s my kids, they think I am Superman, Bill Gates, Jay Z, Barack Obama, a barber, a mechanic, a chef, etc.. You get the picture. It's funny, if we are watching TV or we see someone do something, one of my kids will always say, Dad you can do that.&amp;#160; With that long list of expectations a man has to be driven to learn and succeed.&lt;/p&gt;  &lt;p&gt;Then there is the SQL Server Community. For me the community is boundless. We learn from each other. I became active in the community about 3 years ago when I started a SQL Server User Group in Baton Rouge. I had just installed SQL Server 2005 and set up a GEO cluster. In the process I learned so many interesting things about the new features of 2005 and I wanted to share them. I talked to the local .Net user group then I spoke with PASS and the user group was born. After the first presentation I became addicted to presenting. I get a rush from sharing what I learn and for some reason not being able to answer a question. This drives me to learn more so I can share more. So I guess my addiction to presenting and the need to share information is a major contributor to my drive.&lt;/p&gt;  &lt;p&gt;Another source and probably the biggest factor to my motivation is myself. Everyone morning when I wake up I say, this is going to be a productive day. What does productive mean? I am going to write a new presentation, I am going to get a new speaker for the SQL Lunch, I am going to help someone solve a problem, I am going to learn something new about SQL Server, I am going to read something new today, I am going to help someone start a User Group. I often end the day with a recount of the day. What did I do? Some would call me a GEEK or maybe even a NERD, but these days that equals success. Think back to your youth, and all of the geeks or nerds that you knew. Look them up. What are they doing? I actually talked to a couple of the GEEKS that went to our high recently and they are pretty successful.&amp;#160; I am not saying that all GEEKS are successful, but there seems to be a decent trend in their favor.&lt;/p&gt;  &lt;p&gt;Finally, there's GOD and my parents.&amp;#160; We all know that all this that you know as PATRICK would not exist.&amp;#160; So, I definitely have to mention that trio.&lt;/p&gt;  &lt;p&gt;So, what drives you? What is your motivation? Share it with us. &lt;/p&gt;  &lt;p&gt;Talk to you soon, &lt;/p&gt;  &lt;p&gt;Patrick LeBlanc, SQL Server MVP, MCTS &lt;/p&gt;  &lt;p&gt;Founder &lt;a href="http://www.TSQLScripts.com"&gt;www.TSQLScripts.com&lt;/a&gt; and &lt;a href="http://www.SQLLunch.com"&gt;www.SQLLunch.com&lt;/a&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2046028067618905204-8958151260334106549?l=sqldownsouth.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sqldownsouth.blogspot.com/feeds/8958151260334106549/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sqldownsouth.blogspot.com/2010/09/where-do-you-get-your-motivation-and.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2046028067618905204/posts/default/8958151260334106549'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2046028067618905204/posts/default/8958151260334106549'/><link rel='alternate' type='text/html' href='http://sqldownsouth.blogspot.com/2010/09/where-do-you-get-your-motivation-and.html' title='Where do you get your motivation and drive?'/><author><name>Patrick LeBlanc</name><uri>http://www.blogger.com/profile/01738972122068246140</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_barBiSO8ITc/TGG9UkphClI/AAAAAAAAAPY/dGyatbRnf0Y/S220/PatrickHeadShotFull.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2046028067618905204.post-6811716596166552935</id><published>2010-09-03T06:20:00.001-07:00</published><updated>2010-09-03T06:20:07.967-07:00</updated><title type='text'>MDX Puzzle #7 - Solution</title><content type='html'>&lt;p&gt;Puzzle #7 had an interesting twist.&amp;#160; You were required to add a column to the result set that dynamically displayed a currency type based on the existing currency code.&amp;#160; As always, there are a couple of ways to solve this puzzle.&amp;#160; So here is what I started with:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/_barBiSO8ITc/TID2BGYUqiI/AAAAAAAAARQ/OGdLiBx87YI/s1600-h/image11.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://lh4.ggpht.com/_barBiSO8ITc/TID2Bcp6cJI/AAAAAAAAARU/UNto5hz5xk4/image_thumb5.png?imgmax=800" width="626" height="255" /&gt;&lt;/a&gt; &lt;/p&gt; &lt;style type="text/css"&gt;&lt;br /&gt;.csharpcode, .csharpcode pre&lt;br /&gt;{&lt;br /&gt;	font-size: small;&lt;br /&gt;	color: black;&lt;br /&gt;	font-family: consolas, "Courier New", courier, monospace;&lt;br /&gt;	background-color: #ffffff;&lt;br /&gt;	/*white-space: pre;*/&lt;br /&gt;}&lt;br /&gt;.csharpcode pre { margin: 0em; }&lt;br /&gt;.csharpcode .rem { color: #008000; }&lt;br /&gt;.csharpcode .kwrd { color: #0000ff; }&lt;br /&gt;.csharpcode .str { color: #006080; }&lt;br /&gt;.csharpcode .op { color: #0000c0; }&lt;br /&gt;.csharpcode .preproc { color: #cc6633; }&lt;br /&gt;.csharpcode .asp { background-color: #ffff00; }&lt;br /&gt;.csharpcode .html { color: #800000; }&lt;br /&gt;.csharpcode .attr { color: #ff0000; }&lt;br /&gt;.csharpcode .alt &lt;br /&gt;{&lt;br /&gt;	background-color: #f4f4f4;&lt;br /&gt;	width: 100%;&lt;br /&gt;	margin: 0em;&lt;br /&gt;}&lt;br /&gt;.csharpcode .lnum { color: #606060; }&lt;/style&gt;&lt;style type="text/css"&gt;&lt;br /&gt;&lt;br /&gt;.csharpcode, .csharpcode pre&lt;br /&gt;{&lt;br /&gt;	font-size: small;&lt;br /&gt;	color: black;&lt;br /&gt;	font-family: consolas, "Courier New", courier, monospace;&lt;br /&gt;	background-color: #ffffff;&lt;br /&gt;	/*white-space: pre;*/&lt;br /&gt;}&lt;br /&gt;.csharpcode pre { margin: 0em; }&lt;br /&gt;.csharpcode .rem { color: #008000; }&lt;br /&gt;.csharpcode .kwrd { color: #0000ff; }&lt;br /&gt;.csharpcode .str { color: #006080; }&lt;br /&gt;.csharpcode .op { color: #0000c0; }&lt;br /&gt;.csharpcode .preproc { color: #cc6633; }&lt;br /&gt;.csharpcode .asp { background-color: #ffff00; }&lt;br /&gt;.csharpcode .html { color: #800000; }&lt;br /&gt;.csharpcode .attr { color: #ff0000; }&lt;br /&gt;.csharpcode .alt &lt;br /&gt;{&lt;br /&gt;	background-color: #f4f4f4;&lt;br /&gt;	width: 100%;&lt;br /&gt;	margin: 0em;&lt;br /&gt;}&lt;br /&gt;.csharpcode .lnum { color: #606060; }&lt;/style&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;This query satisfies most of the requirements, but one thing you should notice here is the tuple.&amp;#160; I started out here with only the Country and State-Province, which I thought would work.&amp;#160; Then I added the following calculated member:&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/_barBiSO8ITc/TID2BnMLCCI/AAAAAAAAARY/y_V6ElwOmNU/s1600-h/image23.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://lh5.ggpht.com/_barBiSO8ITc/TID2B3txJDI/AAAAAAAAARc/BmHEpOlk8ZY/image_thumb11.png?imgmax=800" width="638" height="192" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;In the calculation I used the IIf function to dynamically determine whether or not the currency code was US or International.&amp;#160; The function is used in the same way as you would use it in Excel or Reporting Services.&amp;#160; It accepts three arguments.&amp;#160; The second and third arguments are returned based on the evaluation of the first argument, which is the logical expression.&amp;#160; This expression should evaluate to true or false.&amp;#160; If it evaluates to true the second argument is returned and if false the third argument is returned.&amp;#160; In addition, I used the CurrentMember function.&amp;#160; This function obtains a reference to the member identified for a particular hierarchy in the current context. When I coupled the function with my initial query, I thought I was done.&amp;#160; Unfortunately, the calculation evaluated every code to International even when it was USD.&amp;#160; &lt;/p&gt;  &lt;p&gt;To solve the problem I had to modify the tuple from the first query to include the Source Currency Code.&amp;#160; After the change was made the results satisfied all of the puzzle requirements.&amp;#160; Here is the solution:&lt;/p&gt;  &lt;div class="csharpcode"&gt;   &lt;pre class="alt"&gt;&lt;span class="kwrd"&gt;WITH&lt;/span&gt; MEMBER [Measures].[Currency Type]&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre&gt;&lt;span class="kwrd"&gt;AS&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre class="alt"&gt;IIF&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre&gt;(&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre class="alt"&gt;    [Source Currency].[Source Currency Code].CurrentMember=[Source Currency].[Source Currency Code].[USD],&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre&gt;    &amp;quot;US&amp;quot;,&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre class="alt"&gt;    &amp;quot;International&amp;quot;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre&gt;&amp;#160;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre class="alt"&gt;)&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre&gt;&lt;span class="kwrd"&gt;SELECT&lt;/span&gt; &lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre class="alt"&gt;    {[Measures].[Reseller Sales Amount],[Measures].[Currency Type]} &lt;span class="kwrd"&gt;ON&lt;/span&gt; COLUMNS,&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre&gt;    NONEMPTY(&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre class="alt"&gt;    &lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre&gt;    {&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre class="alt"&gt;        (&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre&gt;            [Sales Territory].[Sales Territory Country].[Sales Territory Country],&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre class="alt"&gt;            [Geography].[Geography].[&lt;span class="kwrd"&gt;State&lt;/span&gt;-Province],&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre&gt;            [Source Currency].[Source Currency Code].[Source Currency Code]&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre class="alt"&gt;        )&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre&gt;    }&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre class="alt"&gt;    )&lt;span class="kwrd"&gt;ON&lt;/span&gt; &lt;span class="kwrd"&gt;ROWS&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre&gt;&lt;span class="kwrd"&gt;FROM&lt;/span&gt; [Adventure Works]&lt;/pre&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;style type="text/css"&gt;&lt;br /&gt;.csharpcode, .csharpcode pre&lt;br /&gt;{&lt;br /&gt;	font-size: small;&lt;br /&gt;	color: black;&lt;br /&gt;	font-family: consolas, "Courier New", courier, monospace;&lt;br /&gt;	background-color: #ffffff;&lt;br /&gt;	/*white-space: pre;*/&lt;br /&gt;}&lt;br /&gt;.csharpcode pre { margin: 0em; }&lt;br /&gt;.csharpcode .rem { color: #008000; }&lt;br /&gt;.csharpcode .kwrd { color: #0000ff; }&lt;br /&gt;.csharpcode .str { color: #006080; }&lt;br /&gt;.csharpcode .op { color: #0000c0; }&lt;br /&gt;.csharpcode .preproc { color: #cc6633; }&lt;br /&gt;.csharpcode .asp { background-color: #ffff00; }&lt;br /&gt;.csharpcode .html { color: #800000; }&lt;br /&gt;.csharpcode .attr { color: #ff0000; }&lt;br /&gt;.csharpcode .alt &lt;br /&gt;{&lt;br /&gt;	background-color: #f4f4f4;&lt;br /&gt;	width: 100%;&lt;br /&gt;	margin: 0em;&lt;br /&gt;}&lt;br /&gt;.csharpcode .lnum { color: #606060; }&lt;/style&gt;&lt;style type="text/css"&gt;&lt;br /&gt;.csharpcode, .csharpcode pre&lt;br /&gt;{&lt;br /&gt;	font-size: small;&lt;br /&gt;	color: black;&lt;br /&gt;	font-family: consolas, "Courier New", courier, monospace;&lt;br /&gt;	background-color: #ffffff;&lt;br /&gt;	/*white-space: pre;*/&lt;br /&gt;}&lt;br /&gt;.csharpcode pre { margin: 0em; }&lt;br /&gt;.csharpcode .rem { color: #008000; }&lt;br /&gt;.csharpcode .kwrd { color: #0000ff; }&lt;br /&gt;.csharpcode .str { color: #006080; }&lt;br /&gt;.csharpcode .op { color: #0000c0; }&lt;br /&gt;.csharpcode .preproc { color: #cc6633; }&lt;br /&gt;.csharpcode .asp { background-color: #ffff00; }&lt;br /&gt;.csharpcode .html { color: #800000; }&lt;br /&gt;.csharpcode .attr { color: #ff0000; }&lt;br /&gt;.csharpcode .alt &lt;br /&gt;{&lt;br /&gt;	background-color: #f4f4f4;&lt;br /&gt;	width: 100%;&lt;br /&gt;	margin: 0em;&lt;br /&gt;}&lt;br /&gt;.csharpcode .lnum { color: #606060; }&lt;/style&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Tell me what you think and post your solutions.&amp;#160; Let's see how much our solutions differed.&amp;#160; Stay tuned for Puzzle #8.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Talk to you soon, &lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Patrick LeBlanc, SQL Server MVP, MCTS &lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Founder &lt;a href="http://www.TSQLScripts.com"&gt;www.TSQLScripts.com&lt;/a&gt; and &lt;a href="http://www.SQLLunch.com"&gt;www.SQLLunch.com&lt;/a&gt;.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2046028067618905204-6811716596166552935?l=sqldownsouth.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sqldownsouth.blogspot.com/feeds/6811716596166552935/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sqldownsouth.blogspot.com/2010/09/mdx-puzzle-7-solution.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2046028067618905204/posts/default/6811716596166552935'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2046028067618905204/posts/default/6811716596166552935'/><link rel='alternate' type='text/html' href='http://sqldownsouth.blogspot.com/2010/09/mdx-puzzle-7-solution.html' title='MDX Puzzle #7 - Solution'/><author><name>Patrick LeBlanc</name><uri>http://www.blogger.com/profile/01738972122068246140</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_barBiSO8ITc/TGG9UkphClI/AAAAAAAAAPY/dGyatbRnf0Y/S220/PatrickHeadShotFull.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh4.ggpht.com/_barBiSO8ITc/TID2Bcp6cJI/AAAAAAAAARU/UNto5hz5xk4/s72-c/image_thumb5.png?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2046028067618905204.post-1714703818426543491</id><published>2010-08-30T10:22:00.001-07:00</published><updated>2010-08-30T10:22:23.870-07:00</updated><title type='text'>Join me for Lunch - SQL Lunch #33 (Indicators, Sparklines and Databars)</title><content type='html'>&lt;h5&gt;&lt;a href="http://sqllunch.com/Meeting.aspx?lunchid=31"&gt;#33-SSRS 2008 R2 - Indicators, Sparklines and Databars&lt;/a&gt;&lt;/h5&gt;  &lt;p&gt;&lt;img alt="Lunch Image" src="http://sqllunch.com/images/Lunch%20Images/PatrickHeadShot.jpg" width="115" height="130" /&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Speaker:&lt;/b&gt; Patrick LeBlanc&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Add To Outlook: &lt;/b&gt;&lt;a href="http://sqllunch.com/AddtoOutlook/lunch33.ics"&gt;Add To Calendar&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Live Meeting URL:&amp;#160; &lt;a title="https://www.livemeeting.com/cc/usergroups/join?id=RZW5HJ&amp;amp;role=attend" href="https://www.livemeeting.com/cc/usergroups/join?id=RZW5HJ&amp;amp;role=attend"&gt;https://www.livemeeting.com/cc/usergroups/join?id=RZW5HJ&amp;amp;role=attend&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Date and Time:&lt;/b&gt; 9/1/2010 11:30:00 AM CST     &lt;br /&gt;&lt;b&gt;BIO: &lt;/b&gt;Patrick LeBlanc, SQL Server MVP, is currently a Business Intelligence Architect for Pragmatic Works. He has worked as a SQL Server DBA for the past 9 years. His experience includes working in the Educational, Advertising, Mortgage, Medical and Financial Industries. He is also the founder of TSQLScripts.com, SQLLunch.com and the President of the Baton Rouge Area SQL Server User Group. Patrick is a regular speaker at various SQL Server community events, including SQL Saturday’s, User Groups and the SQL Lunch.     &lt;br /&gt;&lt;b&gt;Topic: &lt;/b&gt;#33-SSRS 2008 R2 - Indicators, Sparklines and Databars     &lt;br /&gt;SQL Server Reporting Services R2 introduced several new features. In this lunch Patrick LeBlanc will provide three demonstrations that will show you how to create Indicators, Databars and Sparklines on your reports.&lt;/p&gt;  &lt;p&gt;Talk to you soon,&lt;/p&gt;  &lt;p&gt;Patrick LeBlanc, SQL Server MVP, MCTS&lt;/p&gt;  &lt;p&gt;Founder &lt;a href="http://www.TSQLScripts.com"&gt;www.TSQLScripts.com&lt;/a&gt; and &lt;a href="http://www.SQLLunch.com"&gt;www.SQLLunch.com&lt;/a&gt;.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2046028067618905204-1714703818426543491?l=sqldownsouth.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sqldownsouth.blogspot.com/feeds/1714703818426543491/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sqldownsouth.blogspot.com/2010/08/join-me-for-lunch-sql-lunch-33.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2046028067618905204/posts/default/1714703818426543491'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2046028067618905204/posts/default/1714703818426543491'/><link rel='alternate' type='text/html' href='http://sqldownsouth.blogspot.com/2010/08/join-me-for-lunch-sql-lunch-33.html' title='Join me for Lunch - SQL Lunch #33 (Indicators, Sparklines and Databars)'/><author><name>Patrick LeBlanc</name><uri>http://www.blogger.com/profile/01738972122068246140</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_barBiSO8ITc/TGG9UkphClI/AAAAAAAAAPY/dGyatbRnf0Y/S220/PatrickHeadShotFull.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2046028067618905204.post-3854676913913796273</id><published>2010-08-29T14:38:00.001-07:00</published><updated>2010-08-29T14:38:58.615-07:00</updated><title type='text'>MDX Puzzle #7</title><content type='html'>&lt;p&gt;I have presented you with a couple of easy puzzles in the last few posts.&amp;#160; So, let's step it up a little with one that is a little more challenging.&amp;#160; I have to be honest, this puzzle was sent to me by one of my co-workers at Pragmatic Works.&amp;#160; Here are the requirements:&lt;/p&gt;  &lt;p&gt;Columns:&amp;#160; Reseller Sales Amount and using the Source Currency Code add a column to the result that displays US if the currency code is USD and International for all other currency codes.&lt;/p&gt;  &lt;p&gt;Rows:&amp;#160; Country and State-Province&lt;/p&gt;  &lt;p&gt;Filters:&amp;#160; None&lt;/p&gt;  &lt;p&gt;Hint:&amp;#160; You may need to use a CASE statement or the IIF function.&lt;/p&gt;  &lt;p&gt;Your results should show Reseller Sales Amount by Country and State-Province.&amp;#160; An additional column will also be included that displays the currency type.&amp;#160; Be careful when designing your tuple for the rows.&amp;#160; You may notice that I have intentionally omitted one small nugget of information in the requirements.&amp;#160; Your results should resemble the following:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/_barBiSO8ITc/THrTcNzd9wI/AAAAAAAAARI/1lvox-l-lXg/s1600-h/image7.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://lh4.ggpht.com/_barBiSO8ITc/THrTcSzAeMI/AAAAAAAAARM/gkblkmq4ak4/image_thumb3.png?imgmax=800" width="411" height="250" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Notice the additional column that corresponds to the currency code.&amp;#160; Remember, don't post your solution here.&amp;#160; Save them for my solution post.&amp;#160; I will post it along with the steps that was taken to solve this puzzle in a couple of days.&amp;#160; &lt;/p&gt;  &lt;p&gt;Don’t forget to check back in a couple days for the solution.&lt;/p&gt;  &lt;p&gt;Talk to you soon,&lt;/p&gt;  &lt;p&gt;Patrick LeBlanc, SQL Server MVP, MCTS&lt;/p&gt;  &lt;p&gt;Founder &lt;a href="http://www.TSQLScripts.com"&gt;www.TSQLScripts.com&lt;/a&gt; and &lt;a href="http://www.SQLLunch.com"&gt;www.SQLLunch.com&lt;/a&gt;.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2046028067618905204-3854676913913796273?l=sqldownsouth.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sqldownsouth.blogspot.com/feeds/3854676913913796273/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sqldownsouth.blogspot.com/2010/08/mdx-puzzle-7.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2046028067618905204/posts/default/3854676913913796273'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2046028067618905204/posts/default/3854676913913796273'/><link rel='alternate' type='text/html' href='http://sqldownsouth.blogspot.com/2010/08/mdx-puzzle-7.html' title='MDX Puzzle #7'/><author><name>Patrick LeBlanc</name><uri>http://www.blogger.com/profile/01738972122068246140</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_barBiSO8ITc/TGG9UkphClI/AAAAAAAAAPY/dGyatbRnf0Y/S220/PatrickHeadShotFull.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh4.ggpht.com/_barBiSO8ITc/THrTcSzAeMI/AAAAAAAAARM/gkblkmq4ak4/s72-c/image_thumb3.png?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2046028067618905204.post-6107774093807913837</id><published>2010-08-27T11:13:00.001-07:00</published><updated>2010-08-27T11:13:50.886-07:00</updated><title type='text'>MDX Puzzle #6 - Solution</title><content type='html'>&lt;p&gt;Puzzle #6 should not have presented too much of a challenge, it's intentions were to introduction you to the ORDER function that is available in MDX.&amp;#160; Ok, so this is what I started with:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/_barBiSO8ITc/THgAUzalXOI/AAAAAAAAAQw/loaQcMOYNjo/s1600-h/image%5B3%5D.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://lh3.ggpht.com/_barBiSO8ITc/THgAVUlhQRI/AAAAAAAAAQ0/lh94nHkez9s/image_thumb%5B1%5D.png?imgmax=800" width="758" height="230" /&gt;&lt;/a&gt; &lt;/p&gt; &lt;style type="text/css"&gt;&lt;br /&gt;.csharpcode, .csharpcode pre&lt;br /&gt;{&lt;br /&gt;	font-size: small;&lt;br /&gt;	color: black;&lt;br /&gt;	font-family: consolas, "Courier New", courier, monospace;&lt;br /&gt;	background-color: #ffffff;&lt;br /&gt;	/*white-space: pre;*/&lt;br /&gt;}&lt;br /&gt;.csharpcode pre { margin: 0em; }&lt;br /&gt;.csharpcode .rem { color: #008000; }&lt;br /&gt;.csharpcode .kwrd { color: #0000ff; }&lt;br /&gt;.csharpcode .str { color: #006080; }&lt;br /&gt;.csharpcode .op { color: #0000c0; }&lt;br /&gt;.csharpcode .preproc { color: #cc6633; }&lt;br /&gt;.csharpcode .asp { background-color: #ffff00; }&lt;br /&gt;.csharpcode .html { color: #800000; }&lt;br /&gt;.csharpcode .attr { color: #ff0000; }&lt;br /&gt;.csharpcode .alt &lt;br /&gt;{&lt;br /&gt;	background-color: #f4f4f4;&lt;br /&gt;	width: 100%;&lt;br /&gt;	margin: 0em;&lt;br /&gt;}&lt;br /&gt;.csharpcode .lnum { color: #606060; }&lt;/style&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;This is a very simple statement that satisfies most of the puzzle requirements.&amp;#160; The only one that is does not satisfy is the ordering of the results.&amp;#160; To do this I used the ORDER function.&amp;#160; The function accepts two arguments.&amp;#160; The first is a valid expression that returns a set.&amp;#160; In this example it is the set of Product Subcategories.&amp;#160; The next argument is the numeric or string expression, which will be used to determine the order.&amp;#160; Finally, you must include the direction that your want to order by, DESC or ASC.&amp;#160; There are a couple of more, but I am saving them for a later puzzle.&amp;#160; &lt;/p&gt;  &lt;p&gt;Modifying the above query to include the ORDER function yields the result to this puzzle.&amp;#160; See the following:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/_barBiSO8ITc/THgAXEgHgMI/AAAAAAAAAQ4/4-c5zbM_t4E/s1600-h/image%5B8%5D.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://lh4.ggpht.com/_barBiSO8ITc/THgAXc0GdqI/AAAAAAAAAQ8/YQy4wQpm_b0/image_thumb%5B4%5D.png?imgmax=800" width="774" height="323" /&gt;&lt;/a&gt; &lt;/p&gt; &lt;style type="text/css"&gt;&lt;br /&gt;.csharpcode, .csharpcode pre&lt;br /&gt;{&lt;br /&gt;	font-size: small;&lt;br /&gt;	color: black;&lt;br /&gt;	font-family: consolas, "Courier New", courier, monospace;&lt;br /&gt;	background-color: #ffffff;&lt;br /&gt;	/*white-space: pre;*/&lt;br /&gt;}&lt;br /&gt;.csharpcode pre { margin: 0em; }&lt;br /&gt;.csharpcode .rem { color: #008000; }&lt;br /&gt;.csharpcode .kwrd { color: #0000ff; }&lt;br /&gt;.csharpcode .str { color: #006080; }&lt;br /&gt;.csharpcode .op { color: #0000c0; }&lt;br /&gt;.csharpcode .preproc { color: #cc6633; }&lt;br /&gt;.csharpcode .asp { background-color: #ffff00; }&lt;br /&gt;.csharpcode .html { color: #800000; }&lt;br /&gt;.csharpcode .attr { color: #ff0000; }&lt;br /&gt;.csharpcode .alt &lt;br /&gt;{&lt;br /&gt;	background-color: #f4f4f4;&lt;br /&gt;	width: 100%;&lt;br /&gt;	margin: 0em;&lt;br /&gt;}&lt;br /&gt;.csharpcode .lnum { color: #606060; }&lt;/style&gt;  &lt;p&gt;Stay tuned for Puzzle #7, I promise it will be a little more challenging.&lt;/p&gt;  &lt;p&gt;Talk to you soon,&lt;/p&gt;  &lt;p&gt;Patrick LeBlanc, SQL Server MVP, MCTS&lt;/p&gt;  &lt;p&gt;Founder &lt;a href="http://www.TSQLScripts.com"&gt;www.TSQLScripts.com&lt;/a&gt; and &lt;a href="http://www.SQLLunch.com"&gt;www.SQLLunch.com&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;Visit &lt;a href="http://www.BIDN.com"&gt;www.BIDN.com&lt;/a&gt;, Bring Business Intelligence to your company.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2046028067618905204-6107774093807913837?l=sqldownsouth.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sqldownsouth.blogspot.com/feeds/6107774093807913837/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sqldownsouth.blogspot.com/2010/08/mdx-puzzle-6-solution.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2046028067618905204/posts/default/6107774093807913837'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2046028067618905204/posts/default/6107774093807913837'/><link rel='alternate' type='text/html' href='http://sqldownsouth.blogspot.com/2010/08/mdx-puzzle-6-solution.html' title='MDX Puzzle #6 - Solution'/><author><name>Patrick LeBlanc</name><uri>http://www.blogger.com/profile/01738972122068246140</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_barBiSO8ITc/TGG9UkphClI/AAAAAAAAAPY/dGyatbRnf0Y/S220/PatrickHeadShotFull.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh3.ggpht.com/_barBiSO8ITc/THgAVUlhQRI/AAAAAAAAAQ0/lh94nHkez9s/s72-c/image_thumb%5B1%5D.png?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2046028067618905204.post-6785695959429953148</id><published>2010-08-24T19:39:00.001-07:00</published><updated>2010-08-24T19:39:31.979-07:00</updated><title type='text'>MDX Puzzle #6</title><content type='html'>&lt;p&gt;As we continue with the puzzles, I will continue to introduce new MDX functions.&amp;#160; In this puzzle the requirements are as follows:&lt;/p&gt;  &lt;p&gt;Columns:&amp;#160; Reseller Sales Amount&lt;/p&gt;  &lt;p&gt;Rows:&amp;#160; Product Subcategories&lt;/p&gt;  &lt;p&gt;Filters:&amp;#160; None&lt;/p&gt;  &lt;p&gt;Hints:&amp;#160; This puzzle is too easy for a hint. ;)&lt;/p&gt;  &lt;p&gt;Ahhhh, but there is one additional requirement, the resulting rows should be returned in DESC order by Reseller Sales Amount.&amp;#160; Remember, don't post your solution here.&amp;#160; Save them for my solution post.&amp;#160; I will post it along with the steps that was taken to solve this puzzle in a couple of days.&amp;#160; Here is a screen shot of what the results should look like:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/_barBiSO8ITc/THSCWv382JI/AAAAAAAAAQo/tLd6mISBCMc/s1600-h/image%5B3%5D.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://lh5.ggpht.com/_barBiSO8ITc/THSCYKtspkI/AAAAAAAAAQs/DXdE5n1Etw8/image_thumb%5B1%5D.png?imgmax=800" width="347" height="240" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Don’t forget to check back in a couple days for the solution.&lt;/p&gt;  &lt;p&gt;Talk to you soon,&lt;/p&gt;  &lt;p&gt;Patrick LeBlanc, SQL Server MVP, MCTS&lt;/p&gt;  &lt;p&gt;Founder &lt;a href="http://www.TSQLScripts.com"&gt;www.TSQLScripts.com&lt;/a&gt; and &lt;a href="http://www.SQLLunch.com"&gt;www.SQLLunch.com&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;Visit &lt;a href="http://www.BIDN.com"&gt;www.BIDN.com&lt;/a&gt;, Bring Business Intelligence to your company.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2046028067618905204-6785695959429953148?l=sqldownsouth.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sqldownsouth.blogspot.com/feeds/6785695959429953148/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sqldownsouth.blogspot.com/2010/08/mdx-puzzle-6.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2046028067618905204/posts/default/6785695959429953148'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2046028067618905204/posts/default/6785695959429953148'/><link rel='alternate' type='text/html' href='http://sqldownsouth.blogspot.com/2010/08/mdx-puzzle-6.html' title='MDX Puzzle #6'/><author><name>Patrick LeBlanc</name><uri>http://www.blogger.com/profile/01738972122068246140</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_barBiSO8ITc/TGG9UkphClI/AAAAAAAAAPY/dGyatbRnf0Y/S220/PatrickHeadShotFull.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh5.ggpht.com/_barBiSO8ITc/THSCYKtspkI/AAAAAAAAAQs/DXdE5n1Etw8/s72-c/image_thumb%5B1%5D.png?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2046028067618905204.post-3091375564033472018</id><published>2010-08-22T17:56:00.001-07:00</published><updated>2010-08-22T17:56:51.525-07:00</updated><title type='text'>SQL Saturday #28 - Lessons Learned</title><content type='html'>&lt;p&gt;After spending a week in Tampa, FL at a client site I've had some time to unwind and reflect back on SQL Saturday #28.&amp;#160; I have received some really positive feedback from all individuals involved.&amp;#160; While I can't say that every aspect of the event was excellent, I can say that compared to last years event this one far exceeded any of my expectations. I have read several blog posting about the event and I have to issue one correction, most of you are reporting our attendance as 350 attendees.&amp;#160; That is a little off.&amp;#160; After reviewing our attendance roster our final tally was 397 signed in attendees.&amp;#160; I know this is not a numbers game, but for little Baton Rouge, LA this is a big number.&amp;#160; Ok, now that I have that out of the way let's talk about a few lessons we learned from the event.&lt;/p&gt;  &lt;p&gt;1. &lt;u&gt;More Signs on Campus:&lt;/u&gt; Our event was held on the beautiful campus LSU.&amp;#160; If you are familiar with the campus finding the location is a easy.&amp;#160; On the other hand, if you are not then you can get lost easily.&amp;#160; We only had signs on the main streets into and off of campus.&amp;#160; At the next event we need to add signs from the event hotel directly to the event.&amp;#160; Even though the event and the hotel are located on the campus, the hotel is a bit of a hike from the event.&amp;#160; You can easily get lost.&amp;#160; I am sure a couple of our speakers can attest to that. In addition, we will include more signs on the the main streets and at various locations leading up to campus.&amp;#160; This is one aspect that tends to be overlooked, but after this event I realized that this is a vital component to a successful event.&lt;/p&gt;  &lt;p&gt;2.&amp;#160; &lt;u&gt;Physical Address:&lt;/u&gt;&amp;#160; Having the event on a very large college campus can present a challenge when attempting to map out a physical address.&amp;#160; This can be attributed to the fact that building on campuses change names, which can cause a problem as we found out.&amp;#160; I thought that we had the correct address, but most GPS devices could not locate the address.&amp;#160; As a result, we have decided to include Longitude and Latitude coordinates in our correspondence next year.&lt;/p&gt;  &lt;p&gt;3.&amp;#160; &lt;u&gt;Air Conditioning:&lt;/u&gt;&amp;#160; Everyone knows that it is HOT in Louisiana, so to prevent any complaints about the heat we coordinated with the facility to ensure that the AC was on all night the day before the event and all day the day of the event.&amp;#160; Even with that, it was still warm in some of the rooms.&amp;#160; We are currently looking for ways to solve this problem.&amp;#160; Nothing yet, but we have about 359 days until our next event.&amp;#160; I am sure we will come up with something.&lt;/p&gt;  &lt;p&gt;4.&amp;#160; &lt;u&gt;Food:&lt;/u&gt;&amp;#160; Now, this is a touchy topic for me, since we did not charge for Lunch.&amp;#160; I read a blog post about SQL Saturday #28 that started out very positive, but ended really bad.&amp;#160; The bad part of the blog was in regards to the food that we served.&amp;#160; How could food be bad if it is FREE?&amp;#160; For breakfast we served, donuts, muffins, coffee, water and soda.&amp;#160; This is typical for most of the SQL Saturday's that I have attended.&amp;#160; In addition to those items I have seen fruit, but with our humid and hot environment we voted against the fruit.&amp;#160; This was the last thing that I thought anyone would complain about, but our breakfast was described as horrendous.&amp;#160; Wow, such a harsh word.&amp;#160; I will say this, if you plan on attending next year, the only thing that we will change about breakfast is to buy more of the same because there wasn't a donut or muffin left.&amp;#160; For lunch we had a boxed Subway lunch, which is another typical item served during SQL Saturday's.&amp;#160; Maybe not Subway, but the boxed lunch with a sandwich, chips and cookie.&amp;#160; Everyone who was there when lunch was served received a FREE lunch.&amp;#160; We do plan on upgrading lunch next year, but we are only upgrading the lunch provider not the type of lunch.&amp;#160; A box lunch is convenient for our lunch team.&amp;#160; You can easily distribute them and the garbage collection is quick.&amp;#160; I don't recall what the post stated directly about the lunch, but I do remember a comment about the lackluster thought that was put into it.&amp;#160; In the afternoon, we supplied a snack of cookies and crackers, which is not a typical SQL Saturday practice.&amp;#160; Since the lunch is small, we decided to provide a little extra snack to all those that decided to stick around all day.&amp;#160; Not sure where to complain about any of the items, but since there was a complaint it has to be labeled as a bad.&amp;#160; We are going to discuss our food choices and there maybe some slight changes, but nothing too drastic.&amp;#160; We are on a budget, and I believe that charging for lunch is a deterrent to potential attendees.&amp;#160; As a result, we provide a low-cost, but quality lunch to our attendees.&amp;#160; Two years in a row and only 1 complaint about lunch that I know of, I would say those are good numbers.&lt;/p&gt;  &lt;p&gt;5.&amp;#160; &lt;u&gt;Too much .Net:&lt;/u&gt;&amp;#160; A lot of the SQL folk stressed their concern about the 4 .Net tracks at our SQL Saturday.&amp;#160; I have to be honest, initially I was concerned about this myself, but after the day started and I walked around and visited each room as the classes were in session I realized that there were plenty attendees to go around.&amp;#160; I was concerned that some of the SQL sessions would have fewer attendees.&amp;#160; I was wrong.&amp;#160; The attendance across all sessions appeared to be evenly distributed.&amp;#160; I also enjoyed the banter between the Devs and DBAs.&amp;#160; Our attendance roster was almost evenly distributed between the two.&amp;#160; I even noticed some of the developers in the SQL sessions and some the DBAs in the developers session.&amp;#160; Maybe we can learn something from each other.&lt;/p&gt;  &lt;p&gt;6.&amp;#160; &lt;u&gt;Schedule:&lt;/u&gt;&amp;#160; I have to be honest we could have done a much better job on our Event Schedule handouts.&amp;#160; This was probably the most commented about thing at the event, in regards to &amp;quot;Needs Improvement&amp;quot;.&amp;#160; We printed a one sheet schedule with the event diagram on one side and he schedule on the other.&amp;#160; Since we had nine tracks it was difficult to fit them all on a regular sheet.&amp;#160; Therefore, we decided to print the schedule on a legal sheet of paper.&amp;#160; On top of that, we decided to fold the sheet and put it in the event bag.&amp;#160; Big MISTAKE!.&amp;#160; The folded sheet was lost in our event bag.&amp;#160; Two things we are going to change.&amp;#160; First, instead of placing the schedule in the bag, it's going to be handed to each person.&amp;#160; Second, we are going to mimic what the guys in Dallas did.&amp;#160; We are going to create an Event Guide that will contain a very detailed schedule of the days events.&amp;#160; &lt;/p&gt;  &lt;p&gt;Wow.&amp;#160; I did not intend on writing that much about lunch, but I just couldn't stop.&amp;#160; Please note that I enjoy constructive criticism about anything I do because it only makes me do it better the next time.&amp;#160; Thanks to everyone that has provided really good points, we have some really good documentation and I promise that they all will be addressed.&amp;#160; As with any event there is going to be some good and some bad.&amp;#160; Overall, I have to say that we did pretty good.&amp;#160; Stay tuned, I will be sharing more information about the event. &lt;/p&gt;  &lt;p&gt;Talk to you soon,&lt;/p&gt;  &lt;p&gt;Patrick LeBlanc, SQL Server MVP, MCTS&lt;/p&gt;  &lt;p&gt;Founder &lt;a href="http://www.TSQLScripts.com"&gt;www.TSQLScripts.com&lt;/a&gt; and &lt;a href="http://www.SQLLunch.com"&gt;www.SQLLunch.com&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;Visit &lt;a href="http://www.BIDN.com"&gt;www.BIDN.com&lt;/a&gt;, Bring Business Intelligence to your company.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2046028067618905204-3091375564033472018?l=sqldownsouth.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sqldownsouth.blogspot.com/feeds/3091375564033472018/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sqldownsouth.blogspot.com/2010/08/sql-saturday-28-lessons-learned.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2046028067618905204/posts/default/3091375564033472018'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2046028067618905204/posts/default/3091375564033472018'/><link rel='alternate' type='text/html' href='http://sqldownsouth.blogspot.com/2010/08/sql-saturday-28-lessons-learned.html' title='SQL Saturday #28 - Lessons Learned'/><author><name>Patrick LeBlanc</name><uri>http://www.blogger.com/profile/01738972122068246140</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_barBiSO8ITc/TGG9UkphClI/AAAAAAAAAPY/dGyatbRnf0Y/S220/PatrickHeadShotFull.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2046028067618905204.post-6471144792110168967</id><published>2010-08-10T18:52:00.001-07:00</published><updated>2010-08-10T18:52:30.426-07:00</updated><title type='text'>SQL Reporting Services - Line Graph with a Vertical Bar</title><content type='html'>&lt;p&gt;So, I was recently asked if you could display a vertical bar on a line graph to denote the last day of the month.&amp;#160; Initially, I had no clue how to solve this problem.&amp;#160; I talked to a couple of people and searched the web, but came up empty.&amp;#160; I decided to just dive into a report and solve the problem on my own.&amp;#160; So I started with the following query that can be run in the AdventureWorks2008 database:&lt;/p&gt;  &lt;div class="csharpcode"&gt;   &lt;pre class="alt"&gt;&lt;span class="kwrd"&gt;SELECT&lt;/span&gt; &lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre&gt;    st.CountryRegionCode,&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre class="alt"&gt;    &lt;span class="kwrd"&gt;CAST&lt;/span&gt;(sod.OrderDate &lt;span class="kwrd"&gt;AS&lt;/span&gt; &lt;span class="kwrd"&gt;DATE&lt;/span&gt;),&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre&gt;    &lt;span class="kwrd"&gt;SUM&lt;/span&gt;(sod.TotalDue) TotalDue,&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre class="alt"&gt;    &lt;span class="kwrd"&gt;NULL&lt;/span&gt; Marker&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre&gt;&lt;span class="kwrd"&gt;FROM&lt;/span&gt; Sales.SalesOrderHeader sod&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre class="alt"&gt;&lt;span class="kwrd"&gt;INNER&lt;/span&gt; &lt;span class="kwrd"&gt;JOIN&lt;/span&gt; Sales.SalesTerritory st&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre&gt;    &lt;span class="kwrd"&gt;ON&lt;/span&gt; sod.TerritoryID = st.TerritoryID&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre class="alt"&gt;&lt;span class="kwrd"&gt;WHERE&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre&gt;    sod.OrderDate &lt;span class="kwrd"&gt;BETWEEN&lt;/span&gt; &lt;span class="str"&gt;'4/28/2003'&lt;/span&gt; &lt;span class="kwrd"&gt;AND&lt;/span&gt; &lt;span class="str"&gt;'5/03/2003'&lt;/span&gt; &lt;span class="kwrd"&gt;AND&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre class="alt"&gt;    st.CountryRegionCode &lt;span class="kwrd"&gt;NOT&lt;/span&gt; &lt;span class="kwrd"&gt;IN&lt;/span&gt; (&lt;span class="str"&gt;'US'&lt;/span&gt;, &lt;span class="str"&gt;'CA'&lt;/span&gt;)&lt;/pre&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;style type="text/css"&gt;&lt;br /&gt;&lt;br /&gt;.csharpcode, .csharpcode pre&lt;br /&gt;{&lt;br /&gt;	font-size: small;&lt;br /&gt;	color: black;&lt;br /&gt;	font-family: consolas, "Courier New", courier, monospace;&lt;br /&gt;	background-color: #ffffff;&lt;br /&gt;	/*white-space: pre;*/&lt;br /&gt;}&lt;br /&gt;.csharpcode pre { margin: 0em; }&lt;br /&gt;.csharpcode .rem { color: #008000; }&lt;br /&gt;.csharpcode .kwrd { color: #0000ff; }&lt;br /&gt;.csharpcode .str { color: #006080; }&lt;br /&gt;.csharpcode .op { color: #0000c0; }&lt;br /&gt;.csharpcode .preproc { color: #cc6633; }&lt;br /&gt;.csharpcode .asp { background-color: #ffff00; }&lt;br /&gt;.csharpcode .html { color: #800000; }&lt;br /&gt;.csharpcode .attr { color: #ff0000; }&lt;br /&gt;.csharpcode .alt &lt;br /&gt;{&lt;br /&gt;	background-color: #f4f4f4;&lt;br /&gt;	width: 100%;&lt;br /&gt;	margin: 0em;&lt;br /&gt;}&lt;br /&gt;.csharpcode .lnum { color: #606060; }&lt;/style&gt;&lt;style type="text/css"&gt;&lt;br /&gt;&lt;br /&gt;.csharpcode, .csharpcode pre&lt;br /&gt;{&lt;br /&gt;	font-size: small;&lt;br /&gt;	color: black;&lt;br /&gt;	font-family: consolas, "Courier New", courier, monospace;&lt;br /&gt;	background-color: #ffffff;&lt;br /&gt;	/*white-space: pre;*/&lt;br /&gt;}&lt;br /&gt;.csharpcode pre { margin: 0em; }&lt;br /&gt;.csharpcode .rem { color: #008000; }&lt;br /&gt;.csharpcode .kwrd { color: #0000ff; }&lt;br /&gt;.csharpcode .str { color: #006080; }&lt;br /&gt;.csharpcode .op { color: #0000c0; }&lt;br /&gt;.csharpcode .preproc { color: #cc6633; }&lt;br /&gt;.csharpcode .asp { background-color: #ffff00; }&lt;br /&gt;.csharpcode .html { color: #800000; }&lt;br /&gt;.csharpcode .attr { color: #ff0000; }&lt;br /&gt;.csharpcode .alt &lt;br /&gt;{&lt;br /&gt;	background-color: #f4f4f4;&lt;br /&gt;	width: 100%;&lt;br /&gt;	margin: 0em;&lt;br /&gt;}&lt;br /&gt;.csharpcode .lnum { color: #606060; }&lt;/style&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Note that there is a column labeled Marker that currently has a value of NULL.&amp;#160; It will be explained later in this post.&amp;#160; This query was the basis for this Line Graph:&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;a href="http://lh4.ggpht.com/_barBiSO8ITc/TGIB3NBBgmI/AAAAAAAAAP4/5Y89SIYN4fs/s1600-h/image%5B8%5D.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://lh4.ggpht.com/_barBiSO8ITc/TGIB37XyNfI/AAAAAAAAAP8/vdb5CEga6pk/image_thumb%5B4%5D.png?imgmax=800" width="497" height="349" /&gt;&lt;/a&gt; &lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;The RED vertical line you see in the graph is just an edit of the image, but this is the expected result.&amp;#160; I have to admit my solution to this problem is somewhat of a hack, but I think it will work.&amp;#160; The first thing i did was append a UNION to the query that would add an additional row which would be used to help create the vertical bar on the line graph. Since the initial query included four columns the UNION had to include four columns.&amp;#160; The only two columns that required values are the OrderDate and the Marker.&amp;#160; In this example, I hard-coded the OrderDate to the last day in April.&amp;#160; You can modify it so that it is a parameter that is selected by the end-user.&amp;#160; The second is a value or marker that will be used to determine the height of the vertical line.&amp;#160; Slight modifications can be made to query to ensure that the value is consistent with the results of the query.&amp;#160; For example, you could select the max from the result and increase it a little to further enhance the visualization.&amp;#160; In this case, since I know the maximum is 300,000, I set it to 350,000.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;a href="http://lh3.ggpht.com/_barBiSO8ITc/TGIB4-zRsgI/AAAAAAAAAQA/-zQCE4lNEr8/s1600-h/image%5B37%5D.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://lh5.ggpht.com/_barBiSO8ITc/TGIB6AjiwOI/AAAAAAAAAQE/kl_8UYd-Kv8/image_thumb%5B19%5D.png?imgmax=800" width="506" height="364" /&gt;&lt;/a&gt; &lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;What does the Union accomplish?&amp;#160; This is done to ensure that the Marker value is visible or placed only on the last day of the month.&amp;#160; I know what you are thinking, this is not going to work.&amp;#160; That is what I thought.&amp;#160; To create the vertical line I completed the following steps:&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;1.&amp;#160; Added the Marker to the Values section of the Report&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;a href="http://lh5.ggpht.com/_barBiSO8ITc/TGIB695ro_I/AAAAAAAAAQI/5JaKjNt36MI/s1600-h/image%5B25%5D.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://lh5.ggpht.com/_barBiSO8ITc/TGIB7uXsnTI/AAAAAAAAAQM/-qESKfYCXoM/image_thumb%5B13%5D.png?imgmax=800" width="226" height="232" /&gt;&lt;/a&gt; &lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;2.&amp;#160; Next right-click the Marker value and selected Change Chart Type. Choose the first column Graph from the column section.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;a href="http://lh5.ggpht.com/_barBiSO8ITc/TGIB9PpGo-I/AAAAAAAAAQQ/bBOs0qh_3M4/s1600-h/image%5B29%5D.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://lh4.ggpht.com/_barBiSO8ITc/TGIB-Ml1dVI/AAAAAAAAAQU/hqCT0IPRbF8/image_thumb%5B15%5D.png?imgmax=800" width="376" height="334" /&gt;&lt;/a&gt; &lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;3.&amp;#160; Now right-click on the bars on the graph and selected Series Properties.&amp;#160; Choose Fill from the navigation pane and choose Red from the Pick color section.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;a href="http://lh3.ggpht.com/_barBiSO8ITc/TGIB-zEdbLI/AAAAAAAAAQY/dP-nNmtsajI/s1600-h/image%5B41%5D.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://lh5.ggpht.com/_barBiSO8ITc/TGIB_s7IpxI/AAAAAAAAAQc/wdqJN7qJt-k/image_thumb%5B21%5D.png?imgmax=800" width="396" height="352" /&gt;&lt;/a&gt; &lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;4.&amp;#160; With the bars selected on the graph open the properties windows.&amp;#160; Then expand the Custom Attributes property. Finally change the PointWidth value to .2.&amp;#160; This changes the sizes of the bar.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Now run the report.&amp;#160; Your report should resemble the following:&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;a href="http://lh3.ggpht.com/_barBiSO8ITc/TGICAASs67I/AAAAAAAAAQg/I0YY9xY1eRA/s1600-h/image%5B50%5D.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://lh3.ggpht.com/_barBiSO8ITc/TGICA0Y50rI/AAAAAAAAAQk/f6OGql1J1o0/image_thumb%5B26%5D.png?imgmax=800" width="677" height="301" /&gt;&lt;/a&gt; &lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;You will see a single vertical bar whose point on the x axis is the last date of April and whose value is 350,000.&amp;#160; This line is a bar graph that has been customized to resemble a vertical line.&amp;#160; I am not saying that this is a perfect solution, but it appears to work.&amp;#160; If you have any other ideas or methods that may solve this problem please post your comments here.&amp;#160; Also, feel free to email me at &lt;a href="mailto:pleblanc@pragmaticworks.com"&gt;pleblanc@pragmaticworks.com&lt;/a&gt;.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;There are several ways to accomplish this, but this solutions does work.&amp;#160; Stay tuned for Puzzle #6.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Talk to you soon,&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Patrick LeBlanc, SQL Server MVP, MCTS&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Founder &lt;a href="http://www.TSQLScripts.com"&gt;www.TSQLScripts.com&lt;/a&gt; and &lt;a href="http://www.SQLLunch.com"&gt;www.SQLLunch.com&lt;/a&gt;.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Visit &lt;a href="http://www.BIDN.com"&gt;www.BIDN.com&lt;/a&gt;, Bring Business Intelligence to your company.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2046028067618905204-6471144792110168967?l=sqldownsouth.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sqldownsouth.blogspot.com/feeds/6471144792110168967/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sqldownsouth.blogspot.com/2010/08/sql-reporting-services-line-graph-with.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2046028067618905204/posts/default/6471144792110168967'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2046028067618905204/posts/default/6471144792110168967'/><link rel='alternate' type='text/html' href='http://sqldownsouth.blogspot.com/2010/08/sql-reporting-services-line-graph-with.html' title='SQL Reporting Services - Line Graph with a Vertical Bar'/><author><name>Patrick LeBlanc</name><uri>http://www.blogger.com/profile/01738972122068246140</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_barBiSO8ITc/TGG9UkphClI/AAAAAAAAAPY/dGyatbRnf0Y/S220/PatrickHeadShotFull.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh4.ggpht.com/_barBiSO8ITc/TGIB37XyNfI/AAAAAAAAAP8/vdb5CEga6pk/s72-c/image_thumb%5B4%5D.png?imgmax=800' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2046028067618905204.post-3524245326149499065</id><published>2010-08-10T07:43:00.001-07:00</published><updated>2010-08-10T07:43:17.033-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MDX'/><category scheme='http://www.blogger.com/atom/ns#' term='SSAS'/><title type='text'>MDX Puzzle #5 - Solution</title><content type='html'>&lt;p&gt;Again I want to apologize for the slow posting of the solution to this puzzle, but I have been hard at work on &lt;a href="http://sqlsaturday.com/28/eventhome.aspx"&gt;SQL Saturday #28&lt;/a&gt;.&amp;#160; Fortunately, I carved out some time to write it up.&amp;#160; The solution to this puzzle could have been accomplished a couple of ways.&amp;#160; I chose to use the SUM and YTD MDX functions, but before I discuss these functions I will start with the basic query, which satisfies these requirements:&lt;/p&gt;  &lt;p&gt;1.&amp;#160; Internet Sales Amount as a Column&lt;/p&gt;  &lt;p&gt;2.&amp;#160; Delivery Date Calendar Month as a Row&lt;/p&gt;  &lt;p&gt;3.&amp;#160; Applies a filter to limit the rows from the Delivery Date of January 2006 to December 2006.&lt;/p&gt;  &lt;div class="csharpcode"&gt;   &lt;pre class="alt"&gt;&lt;span class="kwrd"&gt;SELECT&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre&gt;    NON EMPTY(&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre class="alt"&gt;        {&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre&gt;            [Measures].[Internet Sales Amount]&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre class="alt"&gt;        }&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre&gt;    )&lt;span class="kwrd"&gt;ON&lt;/span&gt; COLUMNS,&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre class="alt"&gt;     [Delivery &lt;span class="kwrd"&gt;Date&lt;/span&gt;].[Calendar].[&lt;span class="kwrd"&gt;Month&lt;/span&gt;].&amp;amp;[2006]&amp;amp;[1]:[Delivery &lt;span class="kwrd"&gt;Date&lt;/span&gt;].[Calendar].[&lt;span class="kwrd"&gt;Month&lt;/span&gt;].&amp;amp;[2006]&amp;amp;[12]&lt;span class="kwrd"&gt;ON&lt;/span&gt; &lt;span class="kwrd"&gt;ROWS&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre&gt;&lt;span class="kwrd"&gt;FROM&lt;/span&gt; [Adventure Works]&lt;/pre&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;style type="text/css"&gt;&lt;br /&gt;&lt;br /&gt;.csharpcode, .csharpcode pre&lt;br /&gt;{&lt;br /&gt;	font-size: small;&lt;br /&gt;	color: black;&lt;br /&gt;	font-family: consolas, "Courier New", courier, monospace;&lt;br /&gt;	background-color: #ffffff;&lt;br /&gt;	/*white-space: pre;*/&lt;br /&gt;}&lt;br /&gt;.csharpcode pre { margin: 0em; }&lt;br /&gt;.csharpcode .rem { color: #008000; }&lt;br /&gt;.csharpcode .kwrd { color: #0000ff; }&lt;br /&gt;.csharpcode .str { color: #006080; }&lt;br /&gt;.csharpcode .op { color: #0000c0; }&lt;br /&gt;.csharpcode .preproc { color: #cc6633; }&lt;br /&gt;.csharpcode .asp { background-color: #ffff00; }&lt;br /&gt;.csharpcode .html { color: #800000; }&lt;br /&gt;.csharpcode .attr { color: #ff0000; }&lt;br /&gt;.csharpcode .alt &lt;br /&gt;{&lt;br /&gt;	background-color: #f4f4f4;&lt;br /&gt;	width: 100%;&lt;br /&gt;	margin: 0em;&lt;br /&gt;}&lt;br /&gt;.csharpcode .lnum { color: #606060; }&lt;/style&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Next I created a calculated member whose purpose is to return the YTD or Running Total.&amp;#160; To accomplish this I coupled the SUM and YTD functions.&amp;#160; See below:&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="csharpcode"&gt;&lt;br /&gt;  &lt;pre class="alt"&gt;&lt;span class="kwrd"&gt;WITH&lt;/span&gt; MEMBER Measures.[YTD Internet Sales]&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre&gt;&lt;span class="kwrd"&gt;AS&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre class="alt"&gt;&lt;span class="kwrd"&gt;SUM&lt;/span&gt; (YTD([Delivery &lt;span class="kwrd"&gt;Date&lt;/span&gt;].[Calendar].CurrentMember),[Measures].[Internet Sales Amount])&lt;/pre&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;style type="text/css"&gt;&lt;br /&gt;&lt;br /&gt;.csharpcode, .csharpcode pre&lt;br /&gt;{&lt;br /&gt;	font-size: small;&lt;br /&gt;	color: black;&lt;br /&gt;	font-family: consolas, "Courier New", courier, monospace;&lt;br /&gt;	background-color: #ffffff;&lt;br /&gt;	/*white-space: pre;*/&lt;br /&gt;}&lt;br /&gt;.csharpcode pre { margin: 0em; }&lt;br /&gt;.csharpcode .rem { color: #008000; }&lt;br /&gt;.csharpcode .kwrd { color: #0000ff; }&lt;br /&gt;.csharpcode .str { color: #006080; }&lt;br /&gt;.csharpcode .op { color: #0000c0; }&lt;br /&gt;.csharpcode .preproc { color: #cc6633; }&lt;br /&gt;.csharpcode .asp { background-color: #ffff00; }&lt;br /&gt;.csharpcode .html { color: #800000; }&lt;br /&gt;.csharpcode .attr { color: #ff0000; }&lt;br /&gt;.csharpcode .alt &lt;br /&gt;{&lt;br /&gt;	background-color: #f4f4f4;&lt;br /&gt;	width: 100%;&lt;br /&gt;	margin: 0em;&lt;br /&gt;}&lt;br /&gt;.csharpcode .lnum { color: #606060; }&lt;/style&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Using the YTD function I was able to obtain a set of members from the same level as the given member, which in this case was the [Delivery Date].[Calendar].CurrentMember.&amp;#160; I then used the SUM function to accurately calculate the YTD aggregations for the [Internet Sales Amount] measure.&amp;#160; The solution to the puzzle should resemble this:&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="csharpcode"&gt;&lt;br /&gt;  &lt;pre class="alt"&gt;&lt;span class="kwrd"&gt;WITH&lt;/span&gt; MEMBER Measures.[YTD Internet Sales]&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre&gt;&lt;span class="kwrd"&gt;AS&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre class="alt"&gt;&lt;span class="kwrd"&gt;SUM&lt;/span&gt; (YTD([Delivery &lt;span class="kwrd"&gt;Date&lt;/span&gt;].[Calendar].CurrentMember),[Measures].[Internet Sales Amount])&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre&gt;&lt;span class="kwrd"&gt;SELECT&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre class="alt"&gt;    NON EMPTY(&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre&gt;        {&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre class="alt"&gt;            [Measures].[Internet Sales Amount],&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre&gt;            Measures.[YTD Internet Sales]&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre class="alt"&gt;        }&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre&gt;    )&lt;span class="kwrd"&gt;ON&lt;/span&gt; COLUMNS,&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre class="alt"&gt;    [Delivery &lt;span class="kwrd"&gt;Date&lt;/span&gt;].[Calendar].[&lt;span class="kwrd"&gt;Month&lt;/span&gt;].&amp;amp;[2006]&amp;amp;[1]:[Delivery &lt;span class="kwrd"&gt;Date&lt;/span&gt;].[Calendar].[&lt;span class="kwrd"&gt;Month&lt;/span&gt;].&amp;amp;[2006]&amp;amp;[12]&lt;span class="kwrd"&gt;ON&lt;/span&gt; &lt;span class="kwrd"&gt;ROWS&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre&gt;&lt;span class="kwrd"&gt;FROM&lt;/span&gt; [Adventure Works]&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre class="alt"&gt;&amp;#160;&lt;/pre&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;style type="text/css"&gt;&lt;br /&gt;&lt;br /&gt;.csharpcode, .csharpcode pre&lt;br /&gt;{&lt;br /&gt;	font-size: small;&lt;br /&gt;	color: black;&lt;br /&gt;	font-family: consolas, "Courier New", courier, monospace;&lt;br /&gt;	background-color: #ffffff;&lt;br /&gt;	/*white-space: pre;*/&lt;br /&gt;}&lt;br /&gt;.csharpcode pre { margin: 0em; }&lt;br /&gt;.csharpcode .rem { color: #008000; }&lt;br /&gt;.csharpcode .kwrd { color: #0000ff; }&lt;br /&gt;.csharpcode .str { color: #006080; }&lt;br /&gt;.csharpcode .op { color: #0000c0; }&lt;br /&gt;.csharpcode .preproc { color: #cc6633; }&lt;br /&gt;.csharpcode .asp { background-color: #ffff00; }&lt;br /&gt;.csharpcode .html { color: #800000; }&lt;br /&gt;.csharpcode .attr { color: #ff0000; }&lt;br /&gt;.csharpcode .alt &lt;br /&gt;{&lt;br /&gt;	background-color: #f4f4f4;&lt;br /&gt;	width: 100%;&lt;br /&gt;	margin: 0em;&lt;br /&gt;}&lt;br /&gt;.csharpcode .lnum { color: #606060; }&lt;/style&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;There are several ways to accomplish this, but this solutions does work.&amp;#160; Stay tuned for Puzzle #6.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Talk to you soon,&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Patrick LeBlanc, SQL Server MVP, MCTS&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Founder &lt;a href="http://www.TSQLScripts.com"&gt;www.TSQLScripts.com&lt;/a&gt; and &lt;a href="http://www.SQLLunch.com"&gt;www.SQLLunch.com&lt;/a&gt;.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Visit &lt;a href="http://www.BIDN.com"&gt;www.BIDN.com&lt;/a&gt;, Bring Business Intelligence to your company.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2046028067618905204-3524245326149499065?l=sqldownsouth.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sqldownsouth.blogspot.com/feeds/3524245326149499065/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sqldownsouth.blogspot.com/2010/08/mdx-puzzle-5-solution.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2046028067618905204/posts/default/3524245326149499065'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2046028067618905204/posts/default/3524245326149499065'/><link rel='alternate' type='text/html' href='http://sqldownsouth.blogspot.com/2010/08/mdx-puzzle-5-solution.html' title='MDX Puzzle #5 - Solution'/><author><name>Patrick LeBlanc</name><uri>http://www.blogger.com/profile/01738972122068246140</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_barBiSO8ITc/TGG9UkphClI/AAAAAAAAAPY/dGyatbRnf0Y/S220/PatrickHeadShotFull.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2046028067618905204.post-7875605445392032980</id><published>2010-08-08T14:20:00.001-07:00</published><updated>2010-08-08T14:20:56.792-07:00</updated><title type='text'>SQL lunch #28-SSIS Design Patterns 1a: Introduction to SSIS Design Patterns</title><content type='html'>In this three part series SQL Server MVP Andy Leonard will discuss &lt;a href="http://sqllunch.com/Meeting.aspx?lunchid=28"&gt;SSIS Design Patterns&lt;/a&gt;.   &lt;h5&gt;&lt;img alt="Lunch Image" src="http://sqllunch.com/images/Lunch%20Images/AndyLeonard.jpg" width="115" height="130" /&gt;&lt;/h5&gt;  &lt;p&gt;&lt;b&gt;Speaker:&lt;/b&gt; Andy Leonard&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Add To Outlook: &lt;/b&gt;&lt;a href="http://sqllunch.com/AddtoOutlook/lunch28.ics"&gt;Add To Calendar&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Meeting URL:&amp;#160; &lt;a title="https://www.livemeeting.com/cc/usergroups/join?id=J8NSMR&amp;amp;role=attend" href="https://www.livemeeting.com/cc/usergroups/join?id=J8NSMR&amp;amp;role=attend"&gt;https://www.livemeeting.com/cc/usergroups/join?id=J8NSMR&amp;amp;role=attend&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Date and Time:&lt;/b&gt; 8/9/2010 11:30:00 AM CST &lt;/p&gt; &lt;b&gt;Topic: &lt;/b&gt;#28-SSIS Design Patterns 1a: Introduction to SSIS Design Patterns   &lt;br /&gt;&lt;b&gt;This is part one of a three part series.&lt;/b&gt;   &lt;br /&gt;A brief introduction to the concept and usage of design patterns and a demonstration of the Counts Acquisition in ETL Instrumentation pattern.   &lt;p&gt;&lt;b&gt;BIO: &lt;/b&gt;Andy Leonard is an Architect with Molina Medicaid Solutions, SQL Server database and Integration Services developer, SQL Server MVP, PASS Regional Mentor, and engineer. He is a co-author of Professional SQL Server 2005 Integration Services and SQL Server MVP Deep Dives. Andy blogs for SQLBlog.com. His background includes web application architecture and development, VB, and ASP; SQL Server Integration Services (SSIS); data warehouse development using SQL Server 2000, 2005 and 2008. &lt;/p&gt;  &lt;p&gt;Talk to you soon,&lt;/p&gt;  &lt;p&gt;Patrick LeBlanc, SQL Server MVP, MCTS&lt;/p&gt;  &lt;p&gt;Founder &lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.TSQLScripts.com"&gt;www.TSQLScripts.com&lt;/a&gt; and &lt;a href="http://www.SQLLunch.com"&gt;www.SQLLunch.com&lt;/a&gt;. &lt;/p&gt;  &lt;p&gt;Visit &lt;a href="http://www.BIDN.com"&gt;www.BIDN.com&lt;/a&gt;, Bring Business Intelligence to your company.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2046028067618905204-7875605445392032980?l=sqldownsouth.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sqldownsouth.blogspot.com/feeds/7875605445392032980/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sqldownsouth.blogspot.com/2010/08/sql-lunch-28-ssis-design-patterns-1a.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2046028067618905204/posts/default/7875605445392032980'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2046028067618905204/posts/default/7875605445392032980'/><link rel='alternate' type='text/html' href='http://sqldownsouth.blogspot.com/2010/08/sql-lunch-28-ssis-design-patterns-1a.html' title='SQL lunch #28-SSIS Design Patterns 1a: Introduction to SSIS Design Patterns'/><author><name>Patrick LeBlanc</name><uri>http://www.blogger.com/profile/01738972122068246140</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_barBiSO8ITc/TGG9UkphClI/AAAAAAAAAPY/dGyatbRnf0Y/S220/PatrickHeadShotFull.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2046028067618905204.post-425703569464711900</id><published>2010-08-06T09:46:00.001-07:00</published><updated>2010-08-06T09:46:29.817-07:00</updated><title type='text'>SQL Saturday #28 Baton Rouge Update</title><content type='html'>&lt;p&gt;We are just about a week away from probably the biggest FREE training event to ever take place in Baton Rouge, LA.&amp;#160; Heck this is probably the biggest FREE technology event in Louisiana.&amp;#160; I really don't know.&amp;#160; Nevertheless, since it is almost here I wanted to encourage any one that has not already signed up to do so now.&amp;#160; We are well over 500 registered attendees and that number is increasing daily.&amp;#160; If you are not sure whether to attend or not here are a few highlights:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;53 sessions, including 4 early morning beginner sessions and an all day .Net track &lt;/li&gt;    &lt;li&gt;&lt;a href="http://bidn.com/blogs/PatrickLeBlanc/ssis/922/sql-saturday-28-announces-asks-the-experts"&gt;Ask the Experts&lt;/a&gt;, where you can chat with some of the top SQL Server and .Net professionals in the country &lt;/li&gt;    &lt;li&gt;Win an MSDN subscription &lt;/li&gt;    &lt;li&gt;Win a Netbook &lt;/li&gt;    &lt;li&gt;Free Breakfast and Lunch &lt;/li&gt;    &lt;li&gt;Networking, Networking, Networking &lt;/li&gt;    &lt;li&gt;Did I forget to to mention all the FREE training &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;If you still are not convinced take a look at our &lt;a href="http://sqlsaturday.com/28/schedule.aspx"&gt;schedule&lt;/a&gt;.&amp;#160; I hope to see you all there and if you are already registered please continue to spread the word.&amp;#160; &lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Talk to you soon,&lt;/p&gt;  &lt;p&gt;Patrick LeBlanc, SQL Server MVP, MCTS&lt;/p&gt;  &lt;p&gt;Founder &lt;/p&gt; &lt;a href="http://www.TSQLScripts.com"&gt;www.TSQLScripts.com&lt;/a&gt; and &lt;a href="http://www.SQLLunch.com"&gt;www.SQLLunch.com&lt;/a&gt;.  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;Visit &lt;a href="http://www.BIDN.com"&gt;www.BIDN.com&lt;/a&gt;, Bring Business Intelligence to your company.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2046028067618905204-425703569464711900?l=sqldownsouth.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sqldownsouth.blogspot.com/feeds/425703569464711900/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sqldownsouth.blogspot.com/2010/08/sql-saturday-28-baton-rouge-update.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2046028067618905204/posts/default/425703569464711900'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2046028067618905204/posts/default/425703569464711900'/><link rel='alternate' type='text/html' href='http://sqldownsouth.blogspot.com/2010/08/sql-saturday-28-baton-rouge-update.html' title='SQL Saturday #28 Baton Rouge Update'/><author><name>Patrick LeBlanc</name><uri>http://www.blogger.com/profile/01738972122068246140</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_barBiSO8ITc/TGG9UkphClI/AAAAAAAAAPY/dGyatbRnf0Y/S220/PatrickHeadShotFull.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2046028067618905204.post-1695270768700235353</id><published>2010-08-02T20:17:00.001-07:00</published><updated>2010-08-02T20:17:13.843-07:00</updated><title type='text'>SQL Saturday #28 Announces: Ask the Expert</title><content type='html'>&lt;p&gt;Do you have a challenging SQL Server or .Net issue that is causing you to have sleepless nights? Well, we have convinced 12 of our speakers (Experts) to allocate an additional hour of their day strictly for answering questions. These are some of the top SQL Server and .NET guys in the industry. So, if you have any questions bring them to SQL Saturday #28 Baton Rouge. Here is the schedule.&lt;/p&gt;  &lt;p&gt;   &lt;table border="1" cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;       &lt;tr&gt;         &lt;td valign="top" width="157"&gt;           &lt;p&gt;&lt;b&gt;Time Slot&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="268"&gt;           &lt;p&gt;&lt;b&gt;Speakers&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="213"&gt;           &lt;p&gt;&lt;b&gt;Topics&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top" width="157"&gt;           &lt;p&gt;&lt;b&gt;9:00 am – 10:00 am&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="268"&gt;           &lt;p&gt;Chris Eargle and Chander Shekhar Dhall&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="213"&gt;           &lt;p&gt;Software Development, Application, Performance Tuning, Software Development Architecture&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top" width="157"&gt;           &lt;p&gt;&lt;b&gt;10:15 am – 11:15 am&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="268"&gt;           &lt;p&gt;Kevin Boles and Sean McCowen&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="213"&gt;           &lt;p&gt;Power Shell, Storage, Performance Tuning, SQL Server&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top" width="157"&gt;           &lt;p&gt;&lt;b&gt;11:30 am – 12:30 pm&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="268"&gt;           &lt;p&gt;Barry Ralston and Bryan Smith&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="213"&gt;           &lt;p&gt;SQL Server Analysis Services, MDX, Data Warehousing&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top" width="157"&gt;           &lt;p&gt;&lt;b&gt;1:30 pm – 2:30 pm&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="268"&gt;           &lt;p&gt;Denny Cherry and Steve Jones&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="213"&gt;           &lt;p&gt;SQL Server Storage, Performance Tuning&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top" width="157"&gt;           &lt;p&gt;&lt;b&gt;2:45 pm – 3:45 pm&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="268"&gt;           &lt;p&gt;Tim Mitchell and Steve Simon&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="213"&gt;           &lt;p&gt;SSIS, ETL, Data Warehousing&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top" width="157"&gt;           &lt;p&gt;&lt;b&gt;4:00 pm – 5:00 pm&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="268"&gt;           &lt;p&gt;Eli Weinstock-Herman and Drew Minkin&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="213"&gt;           &lt;p&gt;Data Modeling, Data Mining&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;     &lt;/tbody&gt;&lt;/table&gt; &lt;/p&gt;  &lt;p&gt;These sessions will run concurrent with all of the other sessions. So plan accordingly. See you all at SQL Saturday #28 Baton Rouge.&lt;/p&gt;  &lt;p&gt;Talk to you soon,&lt;/p&gt;  &lt;p&gt;Patrick LeBlanc, SQL Server MVP, MCTS&lt;/p&gt;  &lt;p&gt;Founder &lt;a href="http://www.TSQLScripts.com"&gt;www.TSQLScripts.com&lt;/a&gt; and &lt;a href="http://www.SQLLunch.com"&gt;www.SQLLunch.com&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;Visit &lt;a href="http://www.BIDN.com"&gt;www.BIDN.com&lt;/a&gt;, Bring Business Intelligence to your company.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2046028067618905204-1695270768700235353?l=sqldownsouth.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sqldownsouth.blogspot.com/feeds/1695270768700235353/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sqldownsouth.blogspot.com/2010/08/sql-saturday-28-announces-ask-expert.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2046028067618905204/posts/default/1695270768700235353'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2046028067618905204/posts/default/1695270768700235353'/><link rel='alternate' type='text/html' href='http://sqldownsouth.blogspot.com/2010/08/sql-saturday-28-announces-ask-expert.html' title='SQL Saturday #28 Announces: Ask the Expert'/><author><name>Patrick LeBlanc</name><uri>http://www.blogger.com/profile/01738972122068246140</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_barBiSO8ITc/TGG9UkphClI/AAAAAAAAAPY/dGyatbRnf0Y/S220/PatrickHeadShotFull.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2046028067618905204.post-4041909525045092429</id><published>2010-08-01T15:13:00.001-07:00</published><updated>2010-08-01T15:13:44.038-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MDX'/><category scheme='http://www.blogger.com/atom/ns#' term='SSAS'/><title type='text'>MDX Puzzle #5</title><content type='html'>&lt;p&gt;Writing YTD totals and Running totals using T-SQL can take a little effort.&amp;#160; However, with MDX it's not too difficult.&amp;#160; In this puzzle I will write an MDX statement that produces a monthly YTD or Running total.&amp;#160; Here are the requirements:&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Columns&lt;/strong&gt;:&amp;#160; Monthly Running Total (Calculation), Internet Sales Amount&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Rows&lt;/strong&gt;:&amp;#160; Delivery Date Calendar Month&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Filters&lt;/strong&gt;:&amp;#160; Delivery Date from January 2006 to December 2006&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Hints&lt;/strong&gt;:&amp;#160; You may need to create a scope calculation (WITH MEMBER), use the YTD and SUM functions&lt;/p&gt;  &lt;p&gt;Remember, don't post your solution here.&amp;#160; Save them for my solution post.&amp;#160; I will post it along with the steps that was taken to solve this puzzle in a couple of days.&amp;#160; Here is a screen shot of what the results should look like:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/_barBiSO8ITc/TFXxlTF1SWI/AAAAAAAAAOw/yQRhSxatCTM/s1600-h/image3.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://lh5.ggpht.com/_barBiSO8ITc/TFXxl-d0KFI/AAAAAAAAAO0/IhMdm9_HYT4/image_thumb1.png?imgmax=800" width="414" height="296" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Don’t forget to check back in a couple days for the solution.&lt;/p&gt;  &lt;p&gt;Talk to you soon,&lt;/p&gt;  &lt;p&gt;Patrick LeBlanc, SQL Server MVP, MCTS&lt;/p&gt;  &lt;p&gt;Founder &lt;a href="http://www.TSQLScripts.com"&gt;www.TSQLScripts.com&lt;/a&gt; and &lt;a href="http://www.SQLLunch.com"&gt;www.SQLLunch.com&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;Visit &lt;a href="http://www.BIDN.com"&gt;www.BIDN.com&lt;/a&gt;, Bring Business Intelligence to your company.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2046028067618905204-4041909525045092429?l=sqldownsouth.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sqldownsouth.blogspot.com/feeds/4041909525045092429/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sqldownsouth.blogspot.com/2010/08/mdx-puzzle-5.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2046028067618905204/posts/default/4041909525045092429'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2046028067618905204/posts/default/4041909525045092429'/><link rel='alternate' type='text/html' href='http://sqldownsouth.blogspot.com/2010/08/mdx-puzzle-5.html' title='MDX Puzzle #5'/><author><name>Patrick LeBlanc</name><uri>http://www.blogger.com/profile/01738972122068246140</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_barBiSO8ITc/TGG9UkphClI/AAAAAAAAAPY/dGyatbRnf0Y/S220/PatrickHeadShotFull.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh5.ggpht.com/_barBiSO8ITc/TFXxl-d0KFI/AAAAAAAAAO0/IhMdm9_HYT4/s72-c/image_thumb1.png?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2046028067618905204.post-3266753572659369885</id><published>2010-07-30T07:43:00.001-07:00</published><updated>2010-07-30T07:43:08.348-07:00</updated><title type='text'>MDX Puzzle #4 - Solution</title><content type='html'>&lt;p&gt;This puzzle may not have been much of a challenge, but it introduced two new MDX concepts.&amp;#160; I have to admit, one of my colleagues and I chatted about this puzzle, and I realized that my requirements were a little unrealistic.&amp;#160; As a result, I changed the requirements a little.&amp;#160; Instead of returning data between the Calendar Years of 2006 and 2008, the data should be filtered by Ship Date Calendar Year.&lt;/p&gt;  &lt;p&gt;So, here is what I started with:&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;div class="csharpcode"&gt;   &lt;pre class="alt"&gt;&lt;span class="kwrd"&gt;SELECT&lt;/span&gt; &lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre&gt;    NON EMPTY&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre class="alt"&gt;    (&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre&gt;        [Ship &lt;span class="kwrd"&gt;Date&lt;/span&gt;].[Calendar &lt;span class="kwrd"&gt;Year&lt;/span&gt;].Children,&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre class="alt"&gt;        [Measures].[Internet Sales Amount] &lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre&gt;    )&lt;span class="kwrd"&gt;ON&lt;/span&gt; COLUMNS,&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre class="alt"&gt;        [Product].[SubCategory].Members &lt;span class="kwrd"&gt;ON&lt;/span&gt; &lt;span class="kwrd"&gt;ROWS&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre&gt;&lt;span class="kwrd"&gt;FROM&lt;/span&gt; [Adventure Works]&lt;/pre&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;style type="text/css"&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;.csharpcode, .csharpcode pre&lt;br /&gt;{&lt;br /&gt;	font-size: small;&lt;br /&gt;	color: black;&lt;br /&gt;	font-family: consolas, "Courier New", courier, monospace;&lt;br /&gt;	background-color: #ffffff;&lt;br /&gt;	/*white-space: pre;*/&lt;br /&gt;}&lt;br /&gt;.csharpcode pre { margin: 0em; }&lt;br /&gt;.csharpcode .rem { color: #008000; }&lt;br /&gt;.csharpcode .kwrd { color: #0000ff; }&lt;br /&gt;.csharpcode .str { color: #006080; }&lt;br /&gt;.csharpcode .op { color: #0000c0; }&lt;br /&gt;.csharpcode .preproc { color: #cc6633; }&lt;br /&gt;.csharpcode .asp { background-color: #ffff00; }&lt;br /&gt;.csharpcode .html { color: #800000; }&lt;br /&gt;.csharpcode .attr { color: #ff0000; }&lt;br /&gt;.csharpcode .alt &lt;br /&gt;{&lt;br /&gt;	background-color: #f4f4f4;&lt;br /&gt;	width: 100%;&lt;br /&gt;	margin: 0em;&lt;br /&gt;}&lt;br /&gt;.csharpcode .lnum { color: #606060; }&lt;/style&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;This satisfied all of the requirements except the filters, which are the reason for the post.&amp;#160; My first try at limiting the result set to date between Ship Date Calendar Year 2006 and 2008 resembled this query:&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;a href="http://lh5.ggpht.com/_barBiSO8ITc/TFLk7XaxGUI/AAAAAAAAAOQ/L3auz2Vfp3w/s1600-h/image%5B18%5D.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://lh5.ggpht.com/_barBiSO8ITc/TFLk7rlQzFI/AAAAAAAAAOU/osxo2m0k0n4/image_thumb%5B8%5D.png?imgmax=800" width="775" height="267" /&gt;&lt;/a&gt; &lt;/p&gt;&lt;br /&gt;&lt;style type="text/css"&gt;&lt;br /&gt;.csharpcode, .csharpcode pre&lt;br /&gt;{&lt;br /&gt;	font-size: small;&lt;br /&gt;	color: black;&lt;br /&gt;	font-family: consolas, "Courier New", courier, monospace;&lt;br /&gt;	background-color: #ffffff;&lt;br /&gt;	/*white-space: pre;*/&lt;br /&gt;}&lt;br /&gt;.csharpcode pre { margin: 0em; }&lt;br /&gt;.csharpcode .rem { color: #008000; }&lt;br /&gt;.csharpcode .kwrd { color: #0000ff; }&lt;br /&gt;.csharpcode .str { color: #006080; }&lt;br /&gt;.csharpcode .op { color: #0000c0; }&lt;br /&gt;.csharpcode .preproc { color: #cc6633; }&lt;br /&gt;.csharpcode .asp { background-color: #ffff00; }&lt;br /&gt;.csharpcode .html { color: #800000; }&lt;br /&gt;.csharpcode .attr { color: #ff0000; }&lt;br /&gt;.csharpcode .alt &lt;br /&gt;{&lt;br /&gt;	background-color: #f4f4f4;&lt;br /&gt;	width: 100%;&lt;br /&gt;	margin: 0em;&lt;br /&gt;}&lt;br /&gt;.csharpcode .lnum { color: #606060; }&lt;/style&gt;&lt;style type="text/css"&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;.csharpcode, .csharpcode pre&lt;br /&gt;{&lt;br /&gt;	font-size: small;&lt;br /&gt;	color: black;&lt;br /&gt;	font-family: consolas, "Courier New", courier, monospace;&lt;br /&gt;	background-color: #ffffff;&lt;br /&gt;	/*white-space: pre;*/&lt;br /&gt;}&lt;br /&gt;.csharpcode pre { margin: 0em; }&lt;br /&gt;.csharpcode .rem { color: #008000; }&lt;br /&gt;.csharpcode .kwrd { color: #0000ff; }&lt;br /&gt;.csharpcode .str { color: #006080; }&lt;br /&gt;.csharpcode .op { color: #0000c0; }&lt;br /&gt;.csharpcode .preproc { color: #cc6633; }&lt;br /&gt;.csharpcode .asp { background-color: #ffff00; }&lt;br /&gt;.csharpcode .html { color: #800000; }&lt;br /&gt;.csharpcode .attr { color: #ff0000; }&lt;br /&gt;.csharpcode .alt &lt;br /&gt;{&lt;br /&gt;	background-color: #f4f4f4;&lt;br /&gt;	width: 100%;&lt;br /&gt;	margin: 0em;&lt;br /&gt;}&lt;br /&gt;.csharpcode .lnum { color: #606060; }&lt;/style&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;This query did work.&amp;#160; It only returned the years from my requirements, but I was sure there was a better way to accomplish this.&amp;#160; Notice that I included a set that implicitly limited the query for years 2006, 2007, and 2008.&amp;#160; What if I needed a larger range, say between 2000 and 2010?&amp;#160; No way am I typing all of that.&amp;#160; After a little digging I figured out how to perform the range operations (BETWEEN) in MDX.&amp;#160; Here is the query:&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;a href="http://lh4.ggpht.com/_barBiSO8ITc/TFLk7_ZGU3I/AAAAAAAAAOY/arPiv4BzmhQ/s1600-h/image%5B14%5D.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://lh3.ggpht.com/_barBiSO8ITc/TFLk8oxi1rI/AAAAAAAAAOc/BB9Q_x5CnLg/image_thumb%5B6%5D.png?imgmax=800" width="770" height="237" /&gt;&lt;/a&gt; &lt;/p&gt;&lt;br /&gt;&lt;style type="text/css"&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;.csharpcode, .csharpcode pre&lt;br /&gt;{&lt;br /&gt;	font-size: small;&lt;br /&gt;	color: black;&lt;br /&gt;	font-family: consolas, "Courier New", courier, monospace;&lt;br /&gt;	background-color: #ffffff;&lt;br /&gt;	/*white-space: pre;*/&lt;br /&gt;}&lt;br /&gt;.csharpcode pre { margin: 0em; }&lt;br /&gt;.csharpcode .rem { color: #008000; }&lt;br /&gt;.csharpcode .kwrd { color: #0000ff; }&lt;br /&gt;.csharpcode .str { color: #006080; }&lt;br /&gt;.csharpcode .op { color: #0000c0; }&lt;br /&gt;.csharpcode .preproc { color: #cc6633; }&lt;br /&gt;.csharpcode .asp { background-color: #ffff00; }&lt;br /&gt;.csharpcode .html { color: #800000; }&lt;br /&gt;.csharpcode .attr { color: #ff0000; }&lt;br /&gt;.csharpcode .alt &lt;br /&gt;{&lt;br /&gt;	background-color: #f4f4f4;&lt;br /&gt;	width: 100%;&lt;br /&gt;	margin: 0em;&lt;br /&gt;}&lt;br /&gt;.csharpcode .lnum { color: #606060; }&lt;/style&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Using the ranger operator (:), which returns an ordered set based on the two specified member endpoints, I was able to return all members from the Ship Date Calendar Year between 2006 and 2008.&amp;#160; Next I needed to limit the result to only Product Categories that had sales greater than $1,000,000.&amp;#160; Thinking like a T-SQL programmer I went directly to a where clause using a greater than operator (&amp;gt;).&amp;#160; See the query below:&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="csharpcode"&gt;&lt;br /&gt;  &lt;pre class="alt"&gt;&lt;a href="http://lh5.ggpht.com/_barBiSO8ITc/TFLk9AY2G2I/AAAAAAAAAOg/oVl_soMe6W8/s1600-h/image%5B7%5D.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://lh4.ggpht.com/_barBiSO8ITc/TFLk9Wv8qwI/AAAAAAAAAOk/7wIcbU4y2MI/image_thumb%5B3%5D.png?imgmax=800" width="773" height="280" /&gt;&lt;/a&gt; &lt;/pre&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;style type="text/css"&gt;&lt;br /&gt;&lt;br /&gt;.csharpcode, .csharpcode pre&lt;br /&gt;{&lt;br /&gt;	font-size: small;&lt;br /&gt;	color: black;&lt;br /&gt;	font-family: consolas, "Courier New", courier, monospace;&lt;br /&gt;	background-color: #ffffff;&lt;br /&gt;	/*white-space: pre;*/&lt;br /&gt;}&lt;br /&gt;.csharpcode pre { margin: 0em; }&lt;br /&gt;.csharpcode .rem { color: #008000; }&lt;br /&gt;.csharpcode .kwrd { color: #0000ff; }&lt;br /&gt;.csharpcode .str { color: #006080; }&lt;br /&gt;.csharpcode .op { color: #0000c0; }&lt;br /&gt;.csharpcode .preproc { color: #cc6633; }&lt;br /&gt;.csharpcode .asp { background-color: #ffff00; }&lt;br /&gt;.csharpcode .html { color: #800000; }&lt;br /&gt;.csharpcode .attr { color: #ff0000; }&lt;br /&gt;.csharpcode .alt &lt;br /&gt;{&lt;br /&gt;	background-color: #f4f4f4;&lt;br /&gt;	width: 100%;&lt;br /&gt;	margin: 0em;&lt;br /&gt;}&lt;br /&gt;.csharpcode .lnum { color: #606060; }&lt;/style&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;That did not quite work out for reasons that will be explained in later postings.&amp;#160; So, how did I get it to work.&amp;#160; I had to use the FILTER function to limit the result set.&amp;#160; The FILTER function returns a filtered set based on a search condition.&amp;#160; It accepts two arguments.&amp;#160; The first is a Set_Expression, which is an MDX expression that returns a set.&amp;#160; The second i a Logical_Expression that evaluates to true or false, which could be considered the WHERE clause.&amp;#160; Here is the final query:&lt;a href="http://lh4.ggpht.com/_barBiSO8ITc/TFLk9yoyU6I/AAAAAAAAAOo/BeuIj4PLRzc/s1600-h/image%5B3%5D.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://lh4.ggpht.com/_barBiSO8ITc/TFLk-vEHLdI/AAAAAAAAAOs/JWnKkgj00uw/image_thumb%5B1%5D.png?imgmax=800" width="774" height="328" /&gt;&lt;/a&gt; &lt;/p&gt;&lt;br /&gt;&lt;style type="text/css"&gt;&lt;br /&gt;&lt;br /&gt;.csharpcode, .csharpcode pre&lt;br /&gt;{&lt;br /&gt;	font-size: small;&lt;br /&gt;	color: black;&lt;br /&gt;	font-family: consolas, "Courier New", courier, monospace;&lt;br /&gt;	background-color: #ffffff;&lt;br /&gt;	/*white-space: pre;*/&lt;br /&gt;}&lt;br /&gt;.csharpcode pre { margin: 0em; }&lt;br /&gt;.csharpcode .rem { color: #008000; }&lt;br /&gt;.csharpcode .kwrd { color: #0000ff; }&lt;br /&gt;.csharpcode .str { color: #006080; }&lt;br /&gt;.csharpcode .op { color: #0000c0; }&lt;br /&gt;.csharpcode .preproc { color: #cc6633; }&lt;br /&gt;.csharpcode .asp { background-color: #ffff00; }&lt;br /&gt;.csharpcode .html { color: #800000; }&lt;br /&gt;.csharpcode .attr { color: #ff0000; }&lt;br /&gt;.csharpcode .alt &lt;br /&gt;{&lt;br /&gt;	background-color: #f4f4f4;&lt;br /&gt;	width: 100%;&lt;br /&gt;	margin: 0em;&lt;br /&gt;}&lt;br /&gt;.csharpcode .lnum { color: #606060; }&lt;/style&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;The FILTER function is used on the Rows axis in the query to return on the Product Subcategories where Internet Sales Amount is greater than $1,000,000.&amp;#160; As I mentioned earlier, I modified the requirements a little because my initial set did not make logical sense.&amp;#160; Stay tuned for Puzzle #5.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Talk to you soon,&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Patrick LeBlanc, SQL Server MVP, MCTS&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Founder &lt;a href="http://www.TSQLScripts.com"&gt;www.TSQLScripts.com&lt;/a&gt; and &lt;a href="http://www.SQLLunch.com"&gt;www.SQLLunch.com&lt;/a&gt;.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Visit &lt;a href="http://www.BIDN.com"&gt;www.BIDN.com&lt;/a&gt;, Bring Business Intelligence to your company.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2046028067618905204-3266753572659369885?l=sqldownsouth.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sqldownsouth.blogspot.com/feeds/3266753572659369885/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sqldownsouth.blogspot.com/2010/07/mdx-puzzle-4-solution.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2046028067618905204/posts/default/3266753572659369885'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2046028067618905204/posts/default/3266753572659369885'/><link rel='alternate' type='text/html' href='http://sqldownsouth.blogspot.com/2010/07/mdx-puzzle-4-solution.html' title='MDX Puzzle #4 - Solution'/><author><name>Patrick LeBlanc</name><uri>http://www.blogger.com/profile/01738972122068246140</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_barBiSO8ITc/TGG9UkphClI/AAAAAAAAAPY/dGyatbRnf0Y/S220/PatrickHeadShotFull.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh5.ggpht.com/_barBiSO8ITc/TFLk7rlQzFI/AAAAAAAAAOU/osxo2m0k0n4/s72-c/image_thumb%5B8%5D.png?imgmax=800' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2046028067618905204.post-4882029127185281392</id><published>2010-07-28T07:21:00.001-07:00</published><updated>2010-07-28T07:21:02.292-07:00</updated><title type='text'>2010 3rd Quarter Goals</title><content type='html'>&lt;p&gt;Now that we are into the third quarter of 2010 I decided to post an update of my 2nd quarter goals and post goals for the 3rd quarter.&amp;#160; If you all have been following my blog or me on twitter (patrickdba) you know that I was selected as a SQL Server MVP for the first time this year and that the SQL Lunch is doing great.&amp;#160; I am really excited about both and I can't wait for you all to see the great Lunches that are coming up in the next few months.&amp;#160; So now onto my goals.&amp;#160; &lt;/p&gt;  &lt;p&gt;In the &lt;a href="http://www.sqlservercentral.com/blogs/sqldownsouth/archive/2010/05/07/2010-1st-quarter-goals-review.aspx"&gt;second quarter&lt;/a&gt; I met all of my goals with the exception of Submitting 2 videos to &lt;a href="http://sqlshare.com/"&gt;SQL Share&lt;/a&gt;.&amp;#160; I have decided to push that to the top of my list of priorities and I have also increased the number of videos to 6.&amp;#160; This is to make up for my lack luster performance regarding this goal in the first two quarters.&amp;#160; So goal number 1 is:&lt;/p&gt;  &lt;p&gt;1.&amp;#160; Submit 6 videos to SQL Share.&amp;#160; This may seem like a big commitment, but I already have the topics ready to go.&amp;#160; I think I can do it.&lt;/p&gt;  &lt;p&gt;Since I have been working for Pragmatic Works a goal of mine is to learn everything I can about SSAS.&amp;#160; A big part of SSAS is MDX.&amp;#160; Again if you have been following my blog you will know that I have a series of MDX puzzles.&amp;#160; So goal number 2 is:&lt;/p&gt;  &lt;p&gt;2.&amp;#160; Learn MDX, Learn MDX, Learn MDX.&lt;/p&gt;  &lt;p&gt;The first two will take up a large part of this quarter.&amp;#160; In the last quarter a lot of my time was spent writing a book(&lt;a href="http://www.amazon.com/Knights-Microsoft-Business-Intelligence-24-Hour/dp/0470889632"&gt;Knight's Microsoft Business Intelligence 24 Hour Trainer&lt;/a&gt;) and speaking.&amp;#160; I always set a goal to speak at least three times a quarter. Well in the second quarter of this year I spoke 13 times.&amp;#160; When I went through the list I could not believe it, but I did.&amp;#160; This quarter I have given five presentations.&amp;#160; I have about 3 more scheduled, and I will be speaking on the SQL Lunch in August.&amp;#160; Not quite sure I should make this a goal since I have already met it, but I will add it anyway:&lt;/p&gt;  &lt;p&gt;3.&amp;#160; Speak at least three times.&lt;/p&gt;  &lt;p&gt;Now, back to the book.&amp;#160; The book was a challenge, not really a goal, but definitely an accomplishment.&amp;#160; I hope to write another one real soon.&amp;#160; I am a co-author along with Brian Knight, Devin, Knight, Mike Davis and Adam Jorgensen.&amp;#160; If you are getting started with Business Intelligence check it out.&amp;#160; Again, back to the goals.&amp;#160; It was a challenge to write a couple of articles while writing the book at the same time, but I did get it completed.&amp;#160; I wrote exactly two articles, which was the goal for the 2nd quarter.&amp;#160; I have removed the article writing as a goal.&amp;#160; I am working on a few other things that will take up some time and I felt this could take a break for now.&lt;/p&gt;  &lt;p&gt;The final three goals are as follows:&lt;/p&gt;  &lt;p&gt;4.&amp;#160; Schedule SQL Lunches for the remainder of the quarter, which I have done.&amp;#160; I will be posting them within the next couple of days.&lt;/p&gt;  &lt;p&gt;5.&amp;#160; Blog at least twice a week, which thanks to Steven Jones, I have been doing.&amp;#160; Every we talk he talks about consistency.&amp;#160; I have actually given a short presentation on speaking and blogging.&amp;#160; I am working on making it a full hour presentation.&lt;/p&gt;  &lt;p&gt;6.&amp;#160; Submit three abstracts to the PASS conference.&amp;#160; I did submit three and two were declined and one was selected as an alternate.&lt;/p&gt;  &lt;p&gt;All three of these were goals for quarter number two and I succeeded.&amp;#160; This was a really good quarter for me.&amp;#160; For the third quarter I have added a few new goals:&lt;/p&gt;  &lt;p&gt;7.&amp;#160; Network and meet as many people as a I can.&amp;#160; So, if you plan on attending PASS or any of the SQL Saturdays in my region you may just happen to run into me shaking hands like a politician.&amp;#160; :)&lt;/p&gt;  &lt;p&gt;8.&amp;#160; Add more functionality to the SQL Lunch website. (Searching, Speaker Pages, etc...)&lt;/p&gt;  &lt;p&gt;8.&amp;#160; Become a more active PASS member by volunteering more.&lt;/p&gt;  &lt;p&gt;The second half of this year is going to be busy with SQL Saturday #28 in Baton Rouge, PASS and a couple of more surprises that I will announce later in the month.&amp;#160; Stay tuned.&lt;/p&gt;  &lt;p&gt;Talk to you soon,&lt;/p&gt;  &lt;p&gt;Patrick LeBlanc, SQL Server MVP, MCTS&lt;/p&gt;  &lt;p&gt;Founder &lt;a href="http://www.TSQLScripts.com"&gt;www.TSQLScripts.com&lt;/a&gt; and &lt;a href="http://www.SQLLunch.com"&gt;www.SQLLunch.com&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;Visit &lt;a href="http://www.BIDN.com"&gt;www.BIDN.com&lt;/a&gt;, Bring Business Intelligence to your company.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2046028067618905204-4882029127185281392?l=sqldownsouth.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sqldownsouth.blogspot.com/feeds/4882029127185281392/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sqldownsouth.blogspot.com/2010/07/2010-3rd-quarter-goals.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2046028067618905204/posts/default/4882029127185281392'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2046028067618905204/posts/default/4882029127185281392'/><link rel='alternate' type='text/html' href='http://sqldownsouth.blogspot.com/2010/07/2010-3rd-quarter-goals.html' title='2010 3rd Quarter Goals'/><author><name>Patrick LeBlanc</name><uri>http://www.blogger.com/profile/01738972122068246140</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_barBiSO8ITc/TGG9UkphClI/AAAAAAAAAPY/dGyatbRnf0Y/S220/PatrickHeadShotFull.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2046028067618905204.post-7226538225957352304</id><published>2010-07-28T05:50:00.001-07:00</published><updated>2010-07-29T05:15:04.927-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MDX'/><category scheme='http://www.blogger.com/atom/ns#' term='SSAS'/><title type='text'>MDX Puzzle #4</title><content type='html'>&lt;p&gt;This puzzle is rather simple, but it does introduce a few new things. Using T-SQL you typically filter queries with a WHERE clause.&amp;#160; You can also do the same with MDX, but just like T-SQL there are a few ways to accomplish this.&amp;#160; In this puzzle you will see an example.&amp;#160; Here are the requirements:&lt;/p&gt;  &lt;table border="3" cellspacing="0" cellpadding="2" width="400"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign="top" width="400"&gt;         &lt;p&gt;&lt;strong&gt;Show:&lt;/strong&gt; Internet Sales Amount&lt;/p&gt;          &lt;p&gt;&lt;strong&gt;Columns:&lt;/strong&gt;&amp;#160; Ship Date Calendar Year&lt;/p&gt;          &lt;p&gt;&lt;strong&gt;Rows:&lt;/strong&gt;&amp;#160; Product SubCategory&lt;/p&gt;          &lt;p&gt;&lt;strong&gt;Filter:&lt;/strong&gt;&amp;#160; Only return Product SubCategories that have sales greater than 1,000,000 and only return data between Calendar Year 2006 and 2008.&lt;/p&gt;          &lt;p&gt;&lt;strong&gt;Hint:&amp;#160; &lt;/strong&gt;Use the FILTER function to limit the rows by Sales Amount.&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;Remember, don't post your solution here.&amp;#160; Save them for my solution post.&amp;#160; I will post it along with the steps that was taken to solve this puzzle in a couple of days.&amp;#160; Here is a screen shot of what the results should look like:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/_barBiSO8ITc/TFAnlh5sWPI/AAAAAAAAAOI/dTcxfogC4UI/s1600-h/image%5B3%5D.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://lh6.ggpht.com/_barBiSO8ITc/TFAnmN0NEcI/AAAAAAAAAOM/B5I9pGYXkcc/image_thumb%5B1%5D.png?imgmax=800" width="446" height="135" /&gt;&lt;/a&gt; \&lt;/p&gt;  &lt;p&gt;Don’t forget to check back in a couple days for the solution.&lt;/p&gt;  &lt;p&gt;Talk to you soon,&lt;/p&gt;  &lt;p&gt;Patrick LeBlanc, SQL Server MVP, MCTS&lt;/p&gt;  &lt;p&gt;Founder &lt;a href="http://www.TSQLScripts.com"&gt;www.TSQLScripts.com&lt;/a&gt; and &lt;a href="http://www.SQLLunch.com"&gt;www.SQLLunch.com&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;Visit &lt;a href="http://www.BIDN.com"&gt;www.BIDN.com&lt;/a&gt;, Bring Business Intelligence to your company.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2046028067618905204-7226538225957352304?l=sqldownsouth.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sqldownsouth.blogspot.com/feeds/7226538225957352304/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sqldownsouth.blogspot.com/2010/07/mdx-puzzle-4.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2046028067618905204/posts/default/7226538225957352304'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2046028067618905204/posts/default/7226538225957352304'/><link rel='alternate' type='text/html' href='http://sqldownsouth.blogspot.com/2010/07/mdx-puzzle-4.html' title='MDX Puzzle #4'/><author><name>Patrick LeBlanc</name><uri>http://www.blogger.com/profile/01738972122068246140</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_barBiSO8ITc/TGG9UkphClI/AAAAAAAAAPY/dGyatbRnf0Y/S220/PatrickHeadShotFull.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh6.ggpht.com/_barBiSO8ITc/TFAnmN0NEcI/AAAAAAAAAOM/B5I9pGYXkcc/s72-c/image_thumb%5B1%5D.png?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2046028067618905204.post-7734744714831050546</id><published>2010-07-25T14:34:00.001-07:00</published><updated>2010-07-25T14:34:08.217-07:00</updated><title type='text'>SQL Saturday Wiki</title><content type='html'>&lt;p&gt;This past weekend I had the opportunity to hangout with some of the brightest upcoming SQL Server Professionals and a couple of old-timers.&amp;#160; We were gathered in Orlando, FL by Andy Warren to work on the &lt;a href="http://wiki.sqlsaturday.com/"&gt;SQL Saturday Wiki&lt;/a&gt;.&amp;#160; Essentially, the plans were to improve on the information that he had collected about organizing and running successful SQL Saturday events.&amp;#160; We were locked in a room all day Saturday and our brains were drained of any information we had obtained from running our own events.&amp;#160; &lt;/p&gt;  &lt;p&gt;Overall I thought this was an excellent idea, not only because I had the opportunity to travel to Orlando, but anytime you place smart people together good things are bound to happen.&amp;#160; We arrived at Andy's office around 8:30 am and we started working around 8:32 am, no kidding.&amp;#160; We discussed almost every aspect of coordinating a SQL Saturday.&amp;#160; At times we veered off the path, but these were very short excursions because Andy and Jessica Moss would get us quickly back on track.&amp;#160; Including Jessica and myself, the team also consisted of Scott Gleason, Jack Corbett, Greg Larsen, Jorge Segarra, and Sri Sridharan.&amp;#160; We spent most of the day discussing and documenting our events and sharing any ideas, thoughts, best practices, and challenges that were faced during the event planning process.&amp;#160; All of this information is available at &lt;a title="http://wiki.sqlsaturday.com/" href="http://wiki.sqlsaturday.com/"&gt;http://wiki.sqlsaturday.com/&lt;/a&gt;.&amp;#160; &lt;/p&gt;  &lt;p&gt;So, if you are planning on coordinating a SQL Saturday event in the near future check out the &lt;a href="http://wiki.sqlsaturday.com/"&gt;wiki&lt;/a&gt;.&amp;#160; We will be updating it on a regular basis.&amp;#160; If you find any problems with the content or have any thoughts to add&amp;#160; please feel free to email me at &lt;a href="mailto:pleblanc@pragmaticworks.com"&gt;pleblanc@pragmaticworks.com&lt;/a&gt;.&amp;#160; Remember, this is a work in progress so be patient as we improve and expand upon the site.&amp;#160; &lt;/p&gt;  &lt;p&gt;Patrick LeBlanc, SQL Server MVP, MCTS &lt;/p&gt;  &lt;p&gt;Founder &lt;a href="http://www.TSQLScripts.com"&gt;www.TSQLScripts.com&lt;/a&gt; and &lt;a href="http://www.SQLLunch.com"&gt;www.SQLLunch.com&lt;/a&gt;. &lt;/p&gt;  &lt;p&gt;Visit &lt;a href="http://www.BIDN.com"&gt;www.BIDN.com&lt;/a&gt;, Bring Business Intelligence to your company.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2046028067618905204-7734744714831050546?l=sqldownsouth.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sqldownsouth.blogspot.com/feeds/7734744714831050546/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sqldownsouth.blogspot.com/2010/07/sql-saturday-wiki.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2046028067618905204/posts/default/7734744714831050546'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2046028067618905204/posts/default/7734744714831050546'/><link rel='alternate' type='text/html' href='http://sqldownsouth.blogspot.com/2010/07/sql-saturday-wiki.html' title='SQL Saturday Wiki'/><author><name>Patrick LeBlanc</name><uri>http://www.blogger.com/profile/01738972122068246140</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_barBiSO8ITc/TGG9UkphClI/AAAAAAAAAPY/dGyatbRnf0Y/S220/PatrickHeadShotFull.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2046028067618905204.post-6296377619104953898</id><published>2010-07-23T06:15:00.001-07:00</published><updated>2010-07-23T06:15:02.004-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Patrick LeBlanc'/><category scheme='http://www.blogger.com/atom/ns#' term='Speaking'/><category scheme='http://www.blogger.com/atom/ns#' term='SQL Server'/><title type='text'>SQL Server 2008 R2 for the DBA Recording and PowerPoint</title><content type='html'>&lt;p&gt;I recently had the opportunity to do two presentation on SQL Server R2 for the DBA.&amp;#160; In the first session there were approximately 150 attendees and at the second there were approximately 400 attendees.&amp;#160; The recording is available &lt;a href="http://cms.pragmaticworks.com/Videos/Default.aspx?VidID=49701cce4a1a4d449a20b391982cb47a"&gt;here&lt;/a&gt; and you can download the slide deck &lt;a href="http://sqllunch.com/presentations/R2%20for%20the%20DBA.pptx"&gt;here&lt;/a&gt;.&amp;#160; I would like to correct something I said about the Utility Control Point and Data-Tier applications.&amp;#160; They are only available in SQL Server 2008 with Service Pack 2, SQL Azure and SQL Server 2008 R2. Service Pack 2 for SQL Server 2008 CTP is available.&amp;#160; There are some limited capabilities in SQL Server 2005 and SQL Server 2008 pre service pack 2.&lt;/p&gt;  &lt;p&gt;Thanks to all that attended the sessions and if you have any questions regarding the presentation please feel free to email me at &lt;a href="mailto:pleblanc@pragmaticworks.com"&gt;pleblanc@pragmaticworks.com&lt;/a&gt;.&amp;#160; You can also follow me on twitter, @patrickdba.&lt;/p&gt;  &lt;p&gt;Here are a few good references:&lt;/p&gt;  &lt;p&gt;&lt;a title="http://msdn.microsoft.com/en-us/library/aa833292.aspx" href="http://msdn.microsoft.com/en-us/library/aa833292.aspx"&gt;http://msdn.microsoft.com/en-us/library/aa833292.aspx&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a title="http://msdn.microsoft.com/en-us/library/ee210548.aspx" href="http://msdn.microsoft.com/en-us/library/ee210548.aspx"&gt;http://msdn.microsoft.com/en-us/library/ee210548.aspx&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ee240739.aspx"&gt;http://msdn.microsoft.com/en-us/library/ee240739.aspx&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Patrick LeBlanc, SQL Server MVP, MCTS &lt;/p&gt;  &lt;p&gt;Founder &lt;a href="http://www.TSQLScripts.com"&gt;www.TSQLScripts.com&lt;/a&gt; and &lt;a href="http://www.SQLLunch.com"&gt;www.SQLLunch.com&lt;/a&gt;. &lt;/p&gt;  &lt;p&gt;Visit &lt;a href="http://www.BIDN.com"&gt;www.BIDN.com&lt;/a&gt;, Bring Business Intelligence to your company.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2046028067618905204-6296377619104953898?l=sqldownsouth.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sqldownsouth.blogspot.com/feeds/6296377619104953898/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sqldownsouth.blogspot.com/2010/07/sql-server-2008-r2-for-dba-recording.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2046028067618905204/posts/default/6296377619104953898'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2046028067618905204/posts/default/6296377619104953898'/><link rel='alternate' type='text/html' href='http://sqldownsouth.blogspot.com/2010/07/sql-server-2008-r2-for-dba-recording.html' title='SQL Server 2008 R2 for the DBA Recording and PowerPoint'/><author><name>Patrick LeBlanc</name><uri>http://www.blogger.com/profile/01738972122068246140</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_barBiSO8ITc/TGG9UkphClI/AAAAAAAAAPY/dGyatbRnf0Y/S220/PatrickHeadShotFull.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2046028067618905204.post-2351550219778598673</id><published>2010-07-21T19:56:00.001-07:00</published><updated>2010-07-21T19:56:00.876-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Patrick LeBlanc'/><category scheme='http://www.blogger.com/atom/ns#' term='.NET'/><category scheme='http://www.blogger.com/atom/ns#' term='Speaking'/><category scheme='http://www.blogger.com/atom/ns#' term='SQL Server'/><title type='text'>.NET Speaker Idol, Guess who won?</title><content type='html'>&lt;p&gt;Last night (July 21, 2010) I had the honor of being a speaker at the &lt;a href="http://www.brdnug.org/"&gt;Baton Rouge .Net User Group&lt;/a&gt;.&amp;#160; This wasn't their normal meeting.&amp;#160; It was their &lt;a href="http://www.brdnug.org/Events_view.aspx?Eventid=45"&gt;3rd Annual Speaker Idol&lt;/a&gt;.&amp;#160; The rules are as follows:&lt;/p&gt;  &lt;p&gt;1.&amp;#160; There are three judges that get to ask questions and settle tie breakers.&lt;/p&gt;  &lt;p&gt;2.&amp;#160; Each speaker has 15 minutes to speak.&lt;/p&gt;  &lt;p&gt;3.&amp;#160; The audience is not allowed to ask questions.&lt;/p&gt;  &lt;p&gt;4.&amp;#160; At the end of all the presentations the audience votes for the winner.&lt;/p&gt;  &lt;p&gt;The prizes were an MSDN subscription and a $75 gift card.&amp;#160; When I arrived I found out that I was the last speaker of the night.&amp;#160; I really wanted to be first so I tried to convince them to change the order, but they would not.&amp;#160; Maybe they were saving the best for last.&amp;#160; There were over 40 people at the meeting and only two from our local SQL user group.&amp;#160; So the card were stacked against me.&lt;/p&gt;  &lt;p&gt;After listening to the first four presentations,&lt;/p&gt;  &lt;li&gt;&lt;b&gt;Al Manint:&lt;/b&gt; &lt;i&gt;End of the Free Lunch - Parallelism options in 4.0&lt;/i&gt; &lt;/li&gt;  &lt;li&gt;&lt;b&gt;Neil Martin:&lt;/b&gt; &lt;i&gt;Resharper the TAO of the Code Ninja&lt;/i&gt; &lt;/li&gt;  &lt;li&gt;&lt;b&gt;Cody Gros:&lt;/b&gt; &lt;i&gt;Powershell for Total Morons&lt;/i&gt; &lt;/li&gt;  &lt;li&gt;&lt;b&gt;Wayne Losavio:&lt;/b&gt; &lt;i&gt;Getting Started with Sketchflow&lt;/i&gt;     &lt;p&gt;I thought, there was no way I had a chance at winning this thing.&amp;#160; Nevertheless, I was game.&amp;#160; My presentation was titled, Speaking and Blogging.&amp;#160; I decided to break the monotony a little by delivering a non-technical presentation.&amp;#160; I almost changed it to a short technical presentation on Data-tier applications, but I decided against it and rolled on. &lt;/p&gt;    &lt;p&gt;At the end of my presentation I still didn't think I had a chance, because the other 4 presenters gave really good technical sessions that delivered some good &amp;quot;food for thought&amp;quot;&amp;#160; in the time allotted.&amp;#160; We were all called to the front after I completed my session, then two people were asked to sit down.&amp;#160; To my surprise, I was still standing.&amp;#160; Then we were told that there was a tie for second place.&amp;#160; I thought, cool I came in second place, but I was wrong.&amp;#160; There was tie between the two remaining .Net presenters and I had WON!&lt;/p&gt;    &lt;p&gt;While I was a excited by the fact that my presentation beat out the more technical ones, I found out that I won because I delivered my presentation in a way that was more engaging.&amp;#160; So it really wasn't about was I was saying, but more about how I said it.&amp;#160; Regardless of how I won, I won.&amp;#160; In the end, I graciously rescinded my victory and I gave my prize back to the community.&amp;#160; I have decided to expand this presentation and make it into an hour presentation.&amp;#160; I submitted a session to &lt;a href="http://www.sqlsaturday.com/49/eventhome.aspx"&gt;SQL Saturday #49&lt;/a&gt; in Orlando, FL.&amp;#160; Hopefully it will get accepted. &lt;/p&gt;    &lt;p&gt;Talk to you soon, &lt;/p&gt;    &lt;p&gt;Patrick LeBlanc, SQL Server MVP, MCTS &lt;/p&gt;    &lt;p&gt;Founder &lt;a href="http://www.TSQLScripts.com"&gt;www.TSQLScripts.com&lt;/a&gt; and &lt;a href="http://www.SQLLunch.com"&gt;www.SQLLunch.com&lt;/a&gt;. &lt;/p&gt;    &lt;p&gt;Visit &lt;a href="http://www.BIDN.com"&gt;www.BIDN.com&lt;/a&gt;, Bring Business Intelligence to your company.&lt;/p&gt; &lt;/li&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2046028067618905204-2351550219778598673?l=sqldownsouth.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sqldownsouth.blogspot.com/feeds/2351550219778598673/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sqldownsouth.blogspot.com/2010/07/net-speaker-idol-guess-who-won.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2046028067618905204/posts/default/2351550219778598673'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2046028067618905204/posts/default/2351550219778598673'/><link rel='alternate' type='text/html' href='http://sqldownsouth.blogspot.com/2010/07/net-speaker-idol-guess-who-won.html' title='.NET Speaker Idol, Guess who won?'/><author><name>Patrick LeBlanc</name><uri>http://www.blogger.com/profile/01738972122068246140</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_barBiSO8ITc/TGG9UkphClI/AAAAAAAAAPY/dGyatbRnf0Y/S220/PatrickHeadShotFull.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2046028067618905204.post-3187839144053863820</id><published>2010-07-21T11:41:00.001-07:00</published><updated>2010-07-21T11:41:37.776-07:00</updated><title type='text'>SQL Server 2008 R2 for the DBA Live Meeting</title><content type='html'>&lt;p&gt;Tomorrow at 11:00 AM EST I will be giving a talk on SQL Server 2008 R2 for the DBA.&amp;#160; Here is the description:&lt;/p&gt;  &lt;p&gt;Microsoft SQL Server 2008 provides a number of enhancements and new functionality, building on previous versions. Administration, database maintenance, manageability, availability, security, and performance, among others, all fall into the roles and responsibilities of the database administrator.&amp;#160; Patrick Leblanc will go over the new features and functionality that will impact the DBA.&amp;#160; If you have some time drop by the session, you can register here:&lt;/p&gt;  &lt;p&gt;&lt;a title="https://www1.gotomeeting.com/register/347832137" href="https://www1.gotomeeting.com/register/347832137"&gt;https://www1.gotomeeting.com/register/347832137&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Talk to you soon, &lt;/p&gt;  &lt;p&gt;Patrick LeBlanc, SQL Server MVP, MCTS &lt;/p&gt;  &lt;p&gt;Founder &lt;a href="http://www.TSQLScripts.com"&gt;www.TSQLScripts.com&lt;/a&gt; and &lt;a href="http://www.SQLLunch.com"&gt;www.SQLLunch.com&lt;/a&gt;. &lt;/p&gt;  &lt;p&gt;Visit &lt;a href="http://www.BIDN.com"&gt;www.BIDN.com&lt;/a&gt;, Bring Business Intelligence to your company.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2046028067618905204-3187839144053863820?l=sqldownsouth.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sqldownsouth.blogspot.com/feeds/3187839144053863820/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sqldownsouth.blogspot.com/2010/07/sql-server-2008-r2-for-dba-live-meeting.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2046028067618905204/posts/default/3187839144053863820'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2046028067618905204/posts/default/3187839144053863820'/><link rel='alternate' type='text/html' href='http://sqldownsouth.blogspot.com/2010/07/sql-server-2008-r2-for-dba-live-meeting.html' title='SQL Server 2008 R2 for the DBA Live Meeting'/><author><name>Patrick LeBlanc</name><uri>http://www.blogger.com/profile/01738972122068246140</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_barBiSO8ITc/TGG9UkphClI/AAAAAAAAAPY/dGyatbRnf0Y/S220/PatrickHeadShotFull.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2046028067618905204.post-4079919229026045455</id><published>2010-07-18T16:57:00.001-07:00</published><updated>2010-07-18T16:57:19.382-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SQLLunch'/><category scheme='http://www.blogger.com/atom/ns#' term='Speaking'/><category scheme='http://www.blogger.com/atom/ns#' term='PASS'/><category scheme='http://www.blogger.com/atom/ns#' term='Presenting'/><title type='text'>Practice Your PASS Session on the SQL Lunch</title><content type='html'>&lt;p&gt;We at the &lt;a href="http://www.sqllunch.com/" target="_blank"&gt;SQL Lunch&lt;/a&gt; would like to extend an invitation to all of the &lt;a href="http://www.sqlpass.org/" target="_blank"&gt;PASS&lt;/a&gt; speakers.&amp;#160; If you are looking for a place to practice your &lt;a href="http://www.sqlpass.org/" target="_blank"&gt;PASS&lt;/a&gt; session please email us at &lt;a href="mailto:webmaster@sqllunch.com"&gt;webmaster@sqllunch.com&lt;/a&gt;.&amp;#160; Don’t worry, you can have up to 90 minutes or you can break your session into small 30 minute sessions.&amp;#160; It’s completely up to you.&amp;#160; This is our way of saying thanks to all of you for giving your time and knowledge to all of us in the SQL Community.&lt;/p&gt;  &lt;p&gt;Also, it is completely up to you if the sessions are recorded and if any materials are shared.&amp;#160; Thanks again.&lt;/p&gt;  &lt;p&gt;Talk to you soon, &lt;/p&gt;  &lt;p&gt;Patrick LeBlanc, SQL Server MVP, MCTS &lt;/p&gt;  &lt;p&gt;Founder &lt;a href="http://www.TSQLScripts.com"&gt;www.TSQLScripts.com&lt;/a&gt; and &lt;a href="http://www.SQLLunch.com"&gt;www.SQLLunch.com&lt;/a&gt;. &lt;/p&gt;  &lt;p&gt;Visit &lt;a href="http://www.BIDN.com"&gt;www.BIDN.com&lt;/a&gt;, Bring Business Intelligence to your company.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2046028067618905204-4079919229026045455?l=sqldownsouth.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sqldownsouth.blogspot.com/feeds/4079919229026045455/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sqldownsouth.blogspot.com/2010/07/practice-your-pass-session-on-sql-lunch.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2046028067618905204/posts/default/4079919229026045455'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2046028067618905204/posts/default/4079919229026045455'/><link rel='alternate' type='text/html' href='http://sqldownsouth.blogspot.com/2010/07/practice-your-pass-session-on-sql-lunch.html' title='Practice Your PASS Session on the SQL Lunch'/><author><name>Patrick LeBlanc</name><uri>http://www.blogger.com/profile/01738972122068246140</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_barBiSO8ITc/TGG9UkphClI/AAAAAAAAAPY/dGyatbRnf0Y/S220/PatrickHeadShotFull.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2046028067618905204.post-3709921659893628494</id><published>2010-07-15T08:58:00.001-07:00</published><updated>2010-07-15T08:58:46.447-07:00</updated><title type='text'>MDX Puzzle #3 Solution</title><content type='html'>&lt;p&gt;Sorry that it’s taken me so long to write this post, but I have been a little busy with the &lt;a href="http://www.sqllunch.com/"&gt;SQL Lunch&lt;/a&gt;.&amp;#160; I am back now, so let’s solve this puzzle.&amp;#160; This puzzle introduced a new keyword, WITH, that can be used to create a calculated member that is only available for a single MDX query.&amp;#160; Note that, after the query is finished executing the calculated member no longer exists.&amp;#160; Also, introduced are three functions ROOT, AGGREGATE, and TOPCOUNT, which will all be explain later in this posting.&amp;#160; &lt;/p&gt;  &lt;p&gt;So, here is what I started with.&amp;#160; This query satisfies these requirements:&lt;/p&gt;  &lt;p&gt;1.&amp;#160; Internet Order Quantity&lt;/p&gt;  &lt;p&gt;2.&amp;#160; Product&lt;/p&gt;  &lt;p&gt;3.&amp;#160; Return only the TOP 10 Products based on the Internet Order Quantity&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/_barBiSO8ITc/TD8wK4Fi92I/AAAAAAAAANw/IZQeTAKWZ4M/s1600-h/image11.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://lh3.ggpht.com/_barBiSO8ITc/TD8wLFczdiI/AAAAAAAAAN0/00FMf8jFFtE/image_thumb7.png?imgmax=800" width="478" height="219" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;One thing that is new is the use of TOPCOUNT in the Rows section of the query.&amp;#160; TOPCOUNT behaves similar to TSQLs TOP(), but it requires three arguments instead of one.&amp;#160; It requires a &lt;strong&gt;Set Expression&lt;/strong&gt;, which is a valid MDX expression that returns a set.&amp;#160; In this example, the set is all the Children of the product dimension.&amp;#160; The next argument is the &lt;strong&gt;Count&lt;/strong&gt;, which is the number that specifies how many tuples will be returned.&amp;#160; Finally, it expects a&lt;strong&gt; Numeric Expression&lt;/strong&gt;, which is the value that will be used to determine which set is returned.&amp;#160; This value is typically an MDX expression that returns a value.&amp;#160; The TOPCOUNT sorts the set in descending order and returns the specified number of elements (the Count argument) with the highest values (the Numeric Expression).&lt;/p&gt;  &lt;p&gt;Now let’s create the calculated member.&amp;#160; Here is the query that was used:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/_barBiSO8ITc/TD8wLt9qSTI/AAAAAAAAAN4/qxSj8OBhxzI/s1600-h/image3.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://lh4.ggpht.com/_barBiSO8ITc/TD8wMIN0M1I/AAAAAAAAAN8/QsjbzUnuRCc/image_thumb1.png?imgmax=800" width="506" height="274" /&gt;&lt;/a&gt; &lt;/p&gt; &lt;style type="text/css"&gt;&lt;br /&gt;&lt;br /&gt;.csharpcode, .csharpcode pre&lt;br /&gt;{&lt;br /&gt;	font-size: small;&lt;br /&gt;	color: black;&lt;br /&gt;	font-family: consolas, "Courier New", courier, monospace;&lt;br /&gt;	background-color: #ffffff;&lt;br /&gt;	/*white-space: pre;*/&lt;br /&gt;}&lt;br /&gt;.csharpcode pre { margin: 0em; }&lt;br /&gt;.csharpcode .rem { color: #008000; }&lt;br /&gt;.csharpcode .kwrd { color: #0000ff; }&lt;br /&gt;.csharpcode .str { color: #006080; }&lt;br /&gt;.csharpcode .op { color: #0000c0; }&lt;br /&gt;.csharpcode .preproc { color: #cc6633; }&lt;br /&gt;.csharpcode .asp { background-color: #ffff00; }&lt;br /&gt;.csharpcode .html { color: #800000; }&lt;br /&gt;.csharpcode .attr { color: #ff0000; }&lt;br /&gt;.csharpcode .alt &lt;br /&gt;{&lt;br /&gt;	background-color: #f4f4f4;&lt;br /&gt;	width: 100%;&lt;br /&gt;	margin: 0em;&lt;br /&gt;}&lt;br /&gt;.csharpcode .lnum { color: #606060; }&lt;/style&gt;  &lt;p&gt;You will notice the use of the WITH keyword that was explained earlier and the MEMBER clause.&amp;#160; Two calculated members are created in the above query.&amp;#160; The first uses the AGGREGATE() and ROOT() functions to calculate the total of all Internet Orders.&amp;#160; The second performs simple division, dividing Internet Order Quantity by the calculated total from the first member to obtain the Percentage of Total Orders.&lt;/p&gt;  &lt;p&gt;The AGGREGATE and ROOT() are two new functions in this series.&amp;#160; The AGGREGATE function accepts two arguments.&amp;#160; The first is a Set_Expression, which in this example is ROOT().&amp;#160; The second argument, which is optional, is a Numeric_Expression.&amp;#160; The Numeric_Expression is typically an MDX expression that returns a numbers.&amp;#160; For this example, the Internet Order Quantity measure was used.&amp;#160; the ROOT() function was for the Set_Expression because it returns ALL member from each attribute hierarchy in the cube.&amp;#160; As a result, the total Order Quantity for the entire cube will be returned.&amp;#160; One thing to note about the ROOT() function is that you can limit its results by passing either a Dimension or Tuple Expression as an argument.&amp;#160; &lt;/p&gt;  &lt;p&gt;Now to complete the puzzle, take the calculated members MDX query and paste it directly above the SELECT statement.&amp;#160; Then add the Percentage of Total calculation to the ON COLUMNS section of the SELECT statement.&amp;#160; Finally, you will have the solution.&amp;#160; See the query below:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/_barBiSO8ITc/TD8wMyglmII/AAAAAAAAAOA/Du1ZZmDTh3c/s1600-h/image10.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://lh3.ggpht.com/_barBiSO8ITc/TD8wNXyaFxI/AAAAAAAAAOE/yNm7yhzxjQ0/image_thumb6.png?imgmax=800" width="695" height="389" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;One thing that I have realized is that, just like T-SQL, there are several ways to solve a query with MDX.&amp;#160; Once I have finished the journey of mastering the art of writing MDX, I will begin down the path of performance tuning and writing efficient MDX queries.&lt;/p&gt; &lt;style type="text/css"&gt;&lt;br /&gt;&lt;br /&gt;.csharpcode, .csharpcode pre&lt;br /&gt;{&lt;br /&gt;	font-size: small;&lt;br /&gt;	color: black;&lt;br /&gt;	font-family: consolas, "Courier New", courier, monospace;&lt;br /&gt;	background-color: #ffffff;&lt;br /&gt;	/*white-space: pre;*/&lt;br /&gt;}&lt;br /&gt;.csharpcode pre { margin: 0em; }&lt;br /&gt;.csharpcode .rem { color: #008000; }&lt;br /&gt;.csharpcode .kwrd { color: #0000ff; }&lt;br /&gt;.csharpcode .str { color: #006080; }&lt;br /&gt;.csharpcode .op { color: #0000c0; }&lt;br /&gt;.csharpcode .preproc { color: #cc6633; }&lt;br /&gt;.csharpcode .asp { background-color: #ffff00; }&lt;br /&gt;.csharpcode .html { color: #800000; }&lt;br /&gt;.csharpcode .attr { color: #ff0000; }&lt;br /&gt;.csharpcode .alt &lt;br /&gt;{&lt;br /&gt;	background-color: #f4f4f4;&lt;br /&gt;	width: 100%;&lt;br /&gt;	margin: 0em;&lt;br /&gt;}&lt;br /&gt;.csharpcode .lnum { color: #606060; }&lt;/style&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;Talk to you soon, &lt;/p&gt;  &lt;p&gt;Patrick LeBlanc, SQL Server MVP, MCTS &lt;/p&gt;  &lt;p&gt;Founder &lt;a href="http://www.TSQLScripts.com"&gt;www.TSQLScripts.com&lt;/a&gt; and &lt;a href="http://www.SQLLunch.com"&gt;www.SQLLunch.com&lt;/a&gt;. &lt;/p&gt;  &lt;p&gt;Visit &lt;a href="http://www.BIDN.com"&gt;www.BIDN.com&lt;/a&gt;, Bring Business Intelligence to your company&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2046028067618905204-3709921659893628494?l=sqldownsouth.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sqldownsouth.blogspot.com/feeds/3709921659893628494/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sqldownsouth.blogspot.com/2010/07/mdx-puzzle-3-solution.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2046028067618905204/posts/default/3709921659893628494'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2046028067618905204/posts/default/3709921659893628494'/><link rel='alternate' type='text/html' href='http://sqldownsouth.blogspot.com/2010/07/mdx-puzzle-3-solution.html' title='MDX Puzzle #3 Solution'/><author><name>Patrick LeBlanc</name><uri>http://www.blogger.com/profile/01738972122068246140</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_barBiSO8ITc/TGG9UkphClI/AAAAAAAAAPY/dGyatbRnf0Y/S220/PatrickHeadShotFull.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh3.ggpht.com/_barBiSO8ITc/TD8wLFczdiI/AAAAAAAAAN0/00FMf8jFFtE/s72-c/image_thumb7.png?imgmax=800' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2046028067618905204.post-1236683661485398293</id><published>2010-07-12T07:01:00.001-07:00</published><updated>2010-07-12T07:01:50.597-07:00</updated><title type='text'>Speaking at Greater New Orleans .Net User Group (GNO.NET)</title><content type='html'>&lt;p&gt;This week I will speaking at the Greater New Orleans .Net User Group.&amp;#160; My topic is Introduction to the SQL Server Profiler.&amp;#160; If you want to learn some tips and tricks that you can use when trying to identify performance problems with your SQL Server stop by the meeting.&amp;#160; Also, I will be giving away an MSDN subscription at the end of my presentation.&amp;#160; Here are the meeting details.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Meeting URL&lt;/strong&gt;:&amp;#160; &lt;a title="http://tinyurl.com/0710-gno-net" href="http://tinyurl.com/0710-gno-net"&gt;http://tinyurl.com/0710-gno-net&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Time&lt;/strong&gt;:&amp;#160; 6:30 PM CST&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Location&lt;/strong&gt;:&amp;#160; New Horizons, 2800 Veterans Memorial, BLVD, Metairie, LA 7002&lt;/p&gt;  &lt;p&gt;Hope to see you all there.&amp;#160; &lt;/p&gt;  &lt;p&gt;P.S.&amp;#160; I will be giving away a free MSDN subscription to one lucky participant.&lt;/p&gt;  &lt;p&gt;Talk to you soon,&lt;/p&gt;  &lt;p&gt;Patrick LeBlanc, SQL Server MVP, MCTS&lt;/p&gt;  &lt;p&gt;Founder &lt;a href="http://www.TSQLScripts.com"&gt;www.TSQLScripts.com&lt;/a&gt; and &lt;a href="http://www.SQLLunch.com"&gt;www.SQLLunch.com&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;Visit &lt;a href="http://www.BIDN.com"&gt;www.BIDN.com&lt;/a&gt;, Bring Business Intelligence to your company.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2046028067618905204-1236683661485398293?l=sqldownsouth.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sqldownsouth.blogspot.com/feeds/1236683661485398293/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sqldownsouth.blogspot.com/2010/07/speaking-at-greater-new-orleans-net.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2046028067618905204/posts/default/1236683661485398293'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2046028067618905204/posts/default/1236683661485398293'/><link rel='alternate' type='text/html' href='http://sqldownsouth.blogspot.com/2010/07/speaking-at-greater-new-orleans-net.html' title='Speaking at Greater New Orleans .Net User Group (GNO.NET)'/><author><name>Patrick LeBlanc</name><uri>http://www.blogger.com/profile/01738972122068246140</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_barBiSO8ITc/TGG9UkphClI/AAAAAAAAAPY/dGyatbRnf0Y/S220/PatrickHeadShotFull.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2046028067618905204.post-5720211916395727853</id><published>2010-07-08T20:15:00.001-07:00</published><updated>2010-07-21T12:01:22.526-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SQLLunch'/><category scheme='http://www.blogger.com/atom/ns#' term='Speaking'/><title type='text'>Free Data Warehouse Training – Let's Get Dimensional</title><content type='html'>&lt;p&gt;Join Adam Jorgensen, tomorrow on the &lt;a href="http://www.sqllunch.com/"&gt;SQL Lunch&lt;/a&gt; to learn about &lt;a href="http://sqllunch.com/Meeting.aspx?lunchid=27"&gt;Dimensional Modeling&lt;/a&gt;.&amp;#160; Go to &lt;a href="http://www.sqllunch.com/"&gt;SQL Lunch&lt;/a&gt; and add this event to your calendar or use the link in this posting.&amp;#160; To receive notifications about upcoming SQL Lunches please go &lt;a href="http://sqllunch.com/Register.aspx"&gt;here&lt;/a&gt;.&amp;#160; Every week this month we will be hosting a lunch time meeting.&amp;#160; &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Title:&amp;#160; &lt;a href="http://sqllunch.com/Meeting.aspx?lunchid=27"&gt;#27 - Let's Get Dimensional&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Add to Outlook&lt;/strong&gt;:&amp;#160; &lt;a href="http://sqllunch.com/addtooutlook/lunch27.ics"&gt;Add to Calendar&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Date&lt;/strong&gt;:&amp;#160; 7/22/2010&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Speaker&lt;/strong&gt;:&amp;#160; &lt;a href="http://bidn.com/blogs/AdamJorgensen"&gt;Adam Jorgensen&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Join Meeting&lt;/strong&gt;:&amp;#160; &lt;a title=" https://www.livemeeting.com/cc/usergroups/join?id=Z9N87J&amp;amp;role=attend" href="https://www.livemeeting.com/cc/usergroups/join?id=Z9N87J&amp;amp;role=attend"&gt;https://www.livemeeting.com/cc/usergroups/join?id=Z9N87J&amp;amp;role=attend      &lt;br /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a title="https://www.livemeeting.com/cc/usergroups/join?id=TR5QJM&amp;amp;role=attend" href="https://www.livemeeting.com/cc/usergroups/join?id=TR5QJM&amp;amp;role=attend"&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Description&lt;/strong&gt;: Learn the basics or dimensional modeling, the foundation for any good data warehouse, with Adam Jorgensen on SQLLunch. Adam will take us through why how dimensional modeling is different from your typical applications database, why it’s different, and some mistakes to avoid. We will review some existing models and take your questions on you modeling challenges. We’ll review common scenarios and discuss why they are the best approach.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;BIO:&amp;#160; &lt;/strong&gt;Adam Jorgensen , MBA, MCDBA, MCITP: BI has over a decade of experience leading organizations around the world in developing and implementing enterprise solutions. His passion is finding new and innovative avenues for clients and the community to embrace business intelligence and lower barriers to implementation. Adam is also very involved in the community as a featured author on SQLServerCentral, SQLShare, as well as a regular contributor to the SQLPASS Virtual User Groups for Business Intelligence and other organizations. He regularly speaks at industry group events, major conferences, Code Camps, and SQLSaturday events on strategic and technical topics. &lt;/p&gt;  &lt;p&gt;Talk to you soon, &lt;/p&gt;  &lt;p&gt;Patrick LeBlanc, SQL Server MVP, MCTS &lt;/p&gt;  &lt;p&gt;Founder &lt;a href="http://www.TSQLScripts.com"&gt;www.TSQLScripts.com&lt;/a&gt; and &lt;a href="http://www.SQLLunch.com"&gt;www.SQLLunch.com&lt;/a&gt;. &lt;/p&gt;  &lt;p&gt;Visit &lt;a href="http://www.BIDN.com"&gt;www.BIDN.com&lt;/a&gt;, Bring Business Intelligence to your company.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2046028067618905204-5720211916395727853?l=sqldownsouth.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sqldownsouth.blogspot.com/feeds/5720211916395727853/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sqldownsouth.blogspot.com/2010/07/free-ssrs-training-sql-lunch-23-ssrs-r2.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2046028067618905204/posts/default/5720211916395727853'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2046028067618905204/posts/default/5720211916395727853'/><link rel='alternate' type='text/html' href='http://sqldownsouth.blogspot.com/2010/07/free-ssrs-training-sql-lunch-23-ssrs-r2.html' title='Free Data Warehouse Training – Let&amp;#39;s Get Dimensional'/><author><name>Patrick LeBlanc</name><uri>http://www.blogger.com/profile/01738972122068246140</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_barBiSO8ITc/TGG9UkphClI/AAAAAAAAAPY/dGyatbRnf0Y/S220/PatrickHeadShotFull.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2046028067618905204.post-1693777332868172714</id><published>2010-07-06T17:12:00.001-07:00</published><updated>2010-07-06T17:12:12.598-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SSIS'/><category scheme='http://www.blogger.com/atom/ns#' term='SQLLunch'/><category scheme='http://www.blogger.com/atom/ns#' term='Presenting'/><title type='text'>Free SSIS Training – SQL Lunch #24 (Looping in SSIS)</title><content type='html'>&lt;p&gt;Join &lt;a href="http://bidn.com/people/BradSchacht"&gt;Brad Schacht&lt;/a&gt; this week on the SQL Lunch to learn about &lt;a href="http://sqllunch.com/Meeting.aspx?lunchid=24"&gt;Looping in SSIS&lt;/a&gt;.&amp;#160; Go to &lt;a href="http://www.sqllunch.com/"&gt;SQL Lunch&lt;/a&gt; and add this event to your calendar or use the link in this posting.&amp;#160; To receive notifications about upcoming SQL Lunches please go &lt;a href="http://sqllunch.com/Register.aspx"&gt;here&lt;/a&gt;.&amp;#160; Every week this month we will be hosting a lunch time meeting.&amp;#160; &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Title:&amp;#160; &lt;a href="http://sqllunch.com/Meeting.aspx?lunchid=24"&gt;#24 Looping in SSIS&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Add to Outlook&lt;/strong&gt;:&amp;#160; &lt;a href="http://sqllunch.com/addtooutlook/lunch24.ics"&gt;Add to Calendar&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Speaker&lt;/strong&gt;:&amp;#160; &lt;a href="http://bidn.com/people/BradSchacht"&gt;Brad Schacht&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Join Meeting:&amp;#160; &lt;a title="https://www.livemeeting.com/cc/usergroups/join?id=SBMB3K&amp;amp;role=attend" href="https://www.livemeeting.com/cc/usergroups/join?id=SBMB3K&amp;amp;role=attend"&gt;https://www.livemeeting.com/cc/usergroups/join?id=SBMB3K&amp;amp;role=attend&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Description&lt;/strong&gt;:&amp;#160; In this session Brad will walk you through the loops available in SQL Server Integration Services. Topics to be covered include the ForLoop and the value it provides, as well as the most common uses for the ForEach Loop; such as looping over files. Setup and configuration will be discussed along with when a loop should be used. We will also discuss how to use these loops to dynamically name a file for archiving after it is done being used inside the package.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;BIO:&amp;#160; &lt;/strong&gt;Brad is a BI Consultant and Trainer for Pragmatic Works. His experience on the Microsoft BI platform includes DTS, SSIS, Reporting, and migrations and conversions. His background in creating custom solutions for clients and partners provides great experience for delivering real-world value through his courses. Brad uses this experience to make the topics real for those he’s working with and teaching. Brad also participates as a speaker at events such as SQL Saturday and is an active member of the Jacksonville SQL Server User’s.. &lt;/p&gt;  &lt;p&gt;Talk to you soon,&lt;/p&gt;  &lt;p&gt;Patrick LeBlanc, SQL Server MVP, MCTS&lt;/p&gt;  &lt;p&gt;Founder &lt;a href="http://www.TSQLScripts.com"&gt;www.TSQLScripts.com&lt;/a&gt; and &lt;a href="http://www.SQLLunch.com"&gt;www.SQLLunch.com&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;Visit &lt;a href="http://www.BIDN.com"&gt;www.BIDN.com&lt;/a&gt;, Bring Business Intelligence to your company.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2046028067618905204-1693777332868172714?l=sqldownsouth.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sqldownsouth.blogspot.com/feeds/1693777332868172714/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sqldownsouth.blogspot.com/2010/07/free-ssis-training-sql-lunch-24-looping.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2046028067618905204/posts/default/1693777332868172714'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2046028067618905204/posts/default/1693777332868172714'/><link rel='alternate' type='text/html' href='http://sqldownsouth.blogspot.com/2010/07/free-ssis-training-sql-lunch-24-looping.html' title='Free SSIS Training – SQL Lunch #24 (Looping in SSIS)'/><author><name>Patrick LeBlanc</name><uri>http://www.blogger.com/profile/01738972122068246140</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_barBiSO8ITc/TGG9UkphClI/AAAAAAAAAPY/dGyatbRnf0Y/S220/PatrickHeadShotFull.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2046028067618905204.post-4020093770035439463</id><published>2010-07-06T05:32:00.001-07:00</published><updated>2010-07-06T05:32:34.878-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MDX'/><category scheme='http://www.blogger.com/atom/ns#' term='SSAS'/><title type='text'>MDX Puzzle #3</title><content type='html'>&lt;p&gt;The next puzzle comes from a &lt;a href="www.bidn.com"&gt;BIDN.com&lt;/a&gt; forum post.&amp;#160; Here are the requirements:&lt;/p&gt;  &lt;p&gt;Columns:&amp;#160; Internet Order Quantity and Percentage Of Total (Calculation)&lt;/p&gt;  &lt;p&gt;Rows: Product&lt;/p&gt;  &lt;p&gt;Filter:&amp;#160; Return only the TOP 10 Products based on Internet Order Quantity.&lt;/p&gt;  &lt;p&gt;Hint:&amp;#160; Use the WITH MEMBER statement to perform the calculation.&amp;#160; In addition, you will need to you the ROOT function or [ALL Products] to get the Total Quantity Ordered for the calculation.&amp;#160; Your result set should resemble the following:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/_barBiSO8ITc/TDMiX2rKOsI/AAAAAAAAANo/iyLLDnI75HY/s1600-h/image3.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://lh5.ggpht.com/_barBiSO8ITc/TDMiYSEgh3I/AAAAAAAAANs/IZJtKeQToUc/image_thumb1.png?imgmax=800" width="346" height="189" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Remember, don’t post you solutions here.&amp;#160; Save them for my solution post.&amp;#160; I will post it along with the steps that was taken to solve the puzzle in a couple of days.&amp;#160;&amp;#160; &lt;/p&gt;  &lt;p&gt;Don’t forget to check back in a couple days for the solution.&lt;/p&gt;  &lt;p&gt;Talk to you soon,&lt;/p&gt;  &lt;p&gt;Patrick LeBlanc, SQL Server MVP, MCTS&lt;/p&gt;  &lt;p&gt;Founder &lt;a href="http://www.TSQLScripts.com"&gt;www.TSQLScripts.com&lt;/a&gt; and &lt;a href="http://www.SQLLunch.com"&gt;www.SQLLunch.com&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;Visit &lt;a href="http://www.BIDN.com"&gt;www.BIDN.com&lt;/a&gt;, Bring Business Intelligence to your company.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2046028067618905204-4020093770035439463?l=sqldownsouth.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sqldownsouth.blogspot.com/feeds/4020093770035439463/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sqldownsouth.blogspot.com/2010/07/mdx-puzzle-3.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2046028067618905204/posts/default/4020093770035439463'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2046028067618905204/posts/default/4020093770035439463'/><link rel='alternate' type='text/html' href='http://sqldownsouth.blogspot.com/2010/07/mdx-puzzle-3.html' title='MDX Puzzle #3'/><author><name>Patrick LeBlanc</name><uri>http://www.blogger.com/profile/01738972122068246140</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_barBiSO8ITc/TGG9UkphClI/AAAAAAAAAPY/dGyatbRnf0Y/S220/PatrickHeadShotFull.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh5.ggpht.com/_barBiSO8ITc/TDMiYSEgh3I/AAAAAAAAANs/IZJtKeQToUc/s72-c/image_thumb1.png?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2046028067618905204.post-221237950176982893</id><published>2010-07-05T18:21:00.001-07:00</published><updated>2010-07-05T18:21:08.579-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MDX'/><category scheme='http://www.blogger.com/atom/ns#' term='SSAS'/><title type='text'>MDX Puzzle #2 Solution</title><content type='html'>&lt;p&gt;This puzzle was a little more challenging than the first, but it was definitely fun and a good learning experience.&amp;#160; It introduced a new method that allows you to create session scoped calculation that can be used in your MDX query.&amp;#160; You can actually take the code used in the CREATE MEMBER statement (that will be explained in later puzzles) and add it to your cube as a CALCULATED MEMBER.&lt;/p&gt;  &lt;p&gt;First, let’s address the simple parts of the requirements.&amp;#160; The following query satisfies the following:&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;Columns:&amp;#160; Internet Sales &lt;/li&gt;    &lt;li&gt;Rows:&amp;#160; Calendar Years &lt;/li&gt;    &lt;li&gt;Filter:&amp;#160; Only Show United States Bike Sales &lt;/li&gt; &lt;/ol&gt; &lt;style type="text/css"&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;.csharpcode, .csharpcode pre&lt;br /&gt;{&lt;br /&gt;	font-size: small;&lt;br /&gt;	color: black;&lt;br /&gt;	font-family: consolas, "Courier New", courier, monospace;&lt;br /&gt;	background-color: #ffffff;&lt;br /&gt;	/*white-space: pre;*/&lt;br /&gt;}&lt;br /&gt;.csharpcode pre { margin: 0em; }&lt;br /&gt;.csharpcode .rem { color: #008000; }&lt;br /&gt;.csharpcode .kwrd { color: #0000ff; }&lt;br /&gt;.csharpcode .str { color: #006080; }&lt;br /&gt;.csharpcode .op { color: #0000c0; }&lt;br /&gt;.csharpcode .preproc { color: #cc6633; }&lt;br /&gt;.csharpcode .asp { background-color: #ffff00; }&lt;br /&gt;.csharpcode .html { color: #800000; }&lt;br /&gt;.csharpcode .attr { color: #ff0000; }&lt;br /&gt;.csharpcode .alt &lt;br /&gt;{&lt;br /&gt;	background-color: #f4f4f4;&lt;br /&gt;	width: 100%;&lt;br /&gt;	margin: 0em;&lt;br /&gt;}&lt;br /&gt;.csharpcode .lnum { color: #606060; }&lt;/style&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/_barBiSO8ITc/TDKE_PQzSxI/AAAAAAAAANY/_OY_FvgHfaY/s1600-h/image5.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://lh5.ggpht.com/_barBiSO8ITc/TDKE_r8Ad7I/AAAAAAAAANc/YeL8E1D5me0/image_thumb3.png?imgmax=800" width="759" height="364" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Now, above this statement in your query window you can use the CREATE MEMBER or WITH MEMBER statement to create a calculated member to be used in the query.&amp;#160; In this puzzle I will be using the CREATE MEMBER statement.&amp;#160; I will use the WITH MEMBER statement in later puzzles.&amp;#160; The CREATE MEMBER statement defines a calculated member that is available throughout the session and can be used by multiple queries within the session.&amp;#160; This statement will be used to create the YearlyGrowth calculated member, which will be added to the above query.&amp;#160; Here is the statement:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/_barBiSO8ITc/TDKFAFgOolI/AAAAAAAAANg/RPOxPLdgm-g/s1600-h/image16.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://lh3.ggpht.com/_barBiSO8ITc/TDKFA5NZFbI/AAAAAAAAANk/f6zfOxgo6wY/image_thumb10.png?imgmax=800" width="712" height="526" /&gt;&lt;/a&gt; &lt;/p&gt; &lt;style type="text/css"&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;.csharpcode, .csharpcode pre&lt;br /&gt;{&lt;br /&gt;	font-size: small;&lt;br /&gt;	color: black;&lt;br /&gt;	font-family: consolas, "Courier New", courier, monospace;&lt;br /&gt;	background-color: #ffffff;&lt;br /&gt;	/*white-space: pre;*/&lt;br /&gt;}&lt;br /&gt;.csharpcode pre { margin: 0em; }&lt;br /&gt;.csharpcode .rem { color: #008000; }&lt;br /&gt;.csharpcode .kwrd { color: #0000ff; }&lt;br /&gt;.csharpcode .str { color: #006080; }&lt;br /&gt;.csharpcode .op { color: #0000c0; }&lt;br /&gt;.csharpcode .preproc { color: #cc6633; }&lt;br /&gt;.csharpcode .asp { background-color: #ffff00; }&lt;br /&gt;.csharpcode .html { color: #800000; }&lt;br /&gt;.csharpcode .attr { color: #ff0000; }&lt;br /&gt;.csharpcode .alt &lt;br /&gt;{&lt;br /&gt;	background-color: #f4f4f4;&lt;br /&gt;	width: 100%;&lt;br /&gt;	margin: 0em;&lt;br /&gt;}&lt;br /&gt;.csharpcode .lnum { color: #606060; }&lt;/style&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;You should note that a CASE statement is used in the calculation.&amp;#160; There are three conditions in the case.&amp;#160; The first condition will ensure that the query avoids a divide-by-zero error by checking the previous years sales.&amp;#160; If the previous years sales is empty then the calculation is not performed and the value retuned is NULL.&amp;#160; The second condition checks to see if the sales for the current year is empty.&amp;#160; As with the previous year, if the current year is empty a NULL value is returned.&amp;#160; Finally, if neither condition is met the calculation is performed.&amp;#160; &lt;/p&gt;  &lt;p&gt;There are also a few new functions that must be explained.&amp;#160; The first is IsEmpty.&amp;#160; The IsEmpty function evaluates whether or not a cell value is empty.&amp;#160; The next function is PrevMember.&amp;#160; The PrevMember function returns the previous member in the level that contains the specified member.&amp;#160; In the example, I use it to return the previous years sales.&amp;#160; Finally, FORMAT_STRING, which not a function, but an option for the CREATE MEMBER statement, is used to specify how the returned value should be formatted.&lt;/p&gt;  &lt;p&gt;If you couple these two statements in the same query window, running the create member statement first then the query, you will completely satisfy the requirements of the query.&amp;#160; Here is the solution:&lt;/p&gt;  &lt;div class="csharpcode"&gt;   &lt;pre class="alt"&gt;&lt;span class="kwrd"&gt;CREATE&lt;/span&gt; MEMBER [Adventure Works].Measures.YearlyGrowth &lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre&gt;&lt;span class="kwrd"&gt;AS&lt;/span&gt; &lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre class="alt"&gt;&amp;#160;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre&gt;&lt;span class="str"&gt;'&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre class="alt"&gt;CASE &lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre&gt;When IsEmpty&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre class="alt"&gt;(&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre&gt;    ([Internet Sales Amount], [Date].[Calendar Year].PrevMember)&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre class="alt"&gt;)&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre&gt;Then Null&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre class="alt"&gt;&amp;#160;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre&gt;When IsEmpty&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre class="alt"&gt;(&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre&gt;    [Internet Sales Amount]&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre class="alt"&gt;)&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre&gt;Then Null&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre class="alt"&gt;&amp;#160;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre&gt; ELSE&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre class="alt"&gt;(&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre&gt;    &lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre class="alt"&gt;    (&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre&gt;        ([Internet Sales Amount])-([Internet Sales Amount], [Date].[Calendar Year].PrevMember)&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre class="alt"&gt;    )&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre&gt;    /([Internet Sales Amount], [Date].[Calendar Year].PrevMember)&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre class="alt"&gt;)&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre&gt;END'&lt;/span&gt;,&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre class="alt"&gt;FORMAT_STRING=&lt;span class="str"&gt;'Percent'&lt;/span&gt;;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre&gt;&amp;#160;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre class="alt"&gt;&lt;span class="kwrd"&gt;SELECT&lt;/span&gt; &lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre&gt;    NON EMPTY{[Measures].[Internet Sales Amount], &lt;strong&gt;&lt;u&gt;&lt;font color="#ff0000"&gt;YearlyGrowth&lt;/font&gt;&lt;/u&gt;&lt;/strong&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre class="alt"&gt;&amp;#160;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre&gt;    } &lt;span class="kwrd"&gt;ON&lt;/span&gt; COLUMNS,&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre class="alt"&gt;    &lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre&gt;    NON EMPTY(&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre class="alt"&gt;         [&lt;span class="kwrd"&gt;Date&lt;/span&gt;].[Calendar].[Calendar &lt;span class="kwrd"&gt;Year&lt;/span&gt;].Members) &lt;span class="kwrd"&gt;ON&lt;/span&gt; &lt;span class="kwrd"&gt;ROWS&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre&gt;&lt;span class="kwrd"&gt;FROM&lt;/span&gt; [Adventure Works]&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre class="alt"&gt;&lt;span class="kwrd"&gt;WHERE&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre&gt;    (&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre class="alt"&gt;        [Sales Territory].[Sales Territory].[Country].&amp;amp;[United States],&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre&gt;        [Product].[Category].[Bikes]&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre class="alt"&gt;    );&lt;/pre&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;style type="text/css"&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;.csharpcode, .csharpcode pre&lt;br /&gt;{&lt;br /&gt;	font-size: small;&lt;br /&gt;	color: black;&lt;br /&gt;	font-family: consolas, "Courier New", courier, monospace;&lt;br /&gt;	background-color: #ffffff;&lt;br /&gt;	/*white-space: pre;*/&lt;br /&gt;}&lt;br /&gt;.csharpcode pre { margin: 0em; }&lt;br /&gt;.csharpcode .rem { color: #008000; }&lt;br /&gt;.csharpcode .kwrd { color: #0000ff; }&lt;br /&gt;.csharpcode .str { color: #006080; }&lt;br /&gt;.csharpcode .op { color: #0000c0; }&lt;br /&gt;.csharpcode .preproc { color: #cc6633; }&lt;br /&gt;.csharpcode .asp { background-color: #ffff00; }&lt;br /&gt;.csharpcode .html { color: #800000; }&lt;br /&gt;.csharpcode .attr { color: #ff0000; }&lt;br /&gt;.csharpcode .alt &lt;br /&gt;{&lt;br /&gt;	background-color: #f4f4f4;&lt;br /&gt;	width: 100%;&lt;br /&gt;	margin: 0em;&lt;br /&gt;}&lt;br /&gt;.csharpcode .lnum { color: #606060; }&lt;/style&gt;&lt;style type="text/css"&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;.csharpcode, .csharpcode pre&lt;br /&gt;{&lt;br /&gt;	font-size: small;&lt;br /&gt;	color: black;&lt;br /&gt;	font-family: consolas, "Courier New", courier, monospace;&lt;br /&gt;	background-color: #ffffff;&lt;br /&gt;	/*white-space: pre;*/&lt;br /&gt;}&lt;br /&gt;.csharpcode pre { margin: 0em; }&lt;br /&gt;.csharpcode .rem { color: #008000; }&lt;br /&gt;.csharpcode .kwrd { color: #0000ff; }&lt;br /&gt;.csharpcode .str { color: #006080; }&lt;br /&gt;.csharpcode .op { color: #0000c0; }&lt;br /&gt;.csharpcode .preproc { color: #cc6633; }&lt;br /&gt;.csharpcode .asp { background-color: #ffff00; }&lt;br /&gt;.csharpcode .html { color: #800000; }&lt;br /&gt;.csharpcode .attr { color: #ff0000; }&lt;br /&gt;.csharpcode .alt &lt;br /&gt;{&lt;br /&gt;	background-color: #f4f4f4;&lt;br /&gt;	width: 100%;&lt;br /&gt;	margin: 0em;&lt;br /&gt;}&lt;br /&gt;.csharpcode .lnum { color: #606060; }&lt;/style&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;br /&gt;In the above query I added the calculated member, Yearly Growth, to the list of columns.&amp;#160; If you need to update the calculated member, simply change the CREATE to an UPDATE.&amp;#160; Then run the statement and finally rerun your query.&amp;#160; Unlike T-SQL, the two MDX statements must be run separately.&amp;#160; Stay tuned for Puzzle #3.&amp;#160; &lt;p&gt;Talk to you soon,&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Patrick LeBlanc, SQL Server MVP, MCTS&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Founder &lt;a href="http://www.TSQLScripts.com"&gt;www.TSQLScripts.com&lt;/a&gt; and &lt;a href="http://www.SQLLunch.com"&gt;www.SQLLunch.com&lt;/a&gt;.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Visit &lt;a href="http://www.BIDN.com"&gt;www.BIDN.com&lt;/a&gt;, Bring Business Intelligence to your company.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2046028067618905204-221237950176982893?l=sqldownsouth.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sqldownsouth.blogspot.com/feeds/221237950176982893/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sqldownsouth.blogspot.com/2010/07/mdx-puzzle-2-solution.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2046028067618905204/posts/default/221237950176982893'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2046028067618905204/posts/default/221237950176982893'/><link rel='alternate' type='text/html' href='http://sqldownsouth.blogspot.com/2010/07/mdx-puzzle-2-solution.html' title='MDX Puzzle #2 Solution'/><author><name>Patrick LeBlanc</name><uri>http://www.blogger.com/profile/01738972122068246140</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_barBiSO8ITc/TGG9UkphClI/AAAAAAAAAPY/dGyatbRnf0Y/S220/PatrickHeadShotFull.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh5.ggpht.com/_barBiSO8ITc/TDKE_r8Ad7I/AAAAAAAAANc/YeL8E1D5me0/s72-c/image_thumb3.png?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2046028067618905204.post-8510472537122629817</id><published>2010-07-01T09:11:00.001-07:00</published><updated>2010-07-01T09:11:33.539-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Patrick LeBlanc'/><category scheme='http://www.blogger.com/atom/ns#' term='MVP'/><category scheme='http://www.blogger.com/atom/ns#' term='SQL Server'/><category scheme='http://www.blogger.com/atom/ns#' term='Community'/><title type='text'>SQL Server MVP - Are you kidding me?</title><content type='html'>&lt;p&gt;I received an email today stating that I had been selected as a Microsoft SQL Server MVP for 2010.&amp;#160; This is my first MVP award and I am elated to become part of such a distinguished group.&amp;#160; What a great community!!!!&lt;/p&gt;  &lt;p&gt;Thanks to all those that nominated me and thanks to the MVP team!&lt;/p&gt;  &lt;p&gt;Talk to you soon,&lt;/p&gt;  &lt;p&gt;Patrick LeBlanc, SQL Server MVP&lt;/p&gt;  &lt;p&gt;Founder &lt;a href="http://www.TSQLScripts.com"&gt;www.TSQLScripts.com&lt;/a&gt; and &lt;a href="http://www.SQLLunch.com"&gt;www.SQLLunch.com&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;Visit &lt;a href="http://www.BIDN.com"&gt;www.BIDN.com&lt;/a&gt;, Bring Business Intelligence to your company.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2046028067618905204-8510472537122629817?l=sqldownsouth.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sqldownsouth.blogspot.com/feeds/8510472537122629817/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sqldownsouth.blogspot.com/2010/07/sql-server-mvp-are-you-kidding-me.html#comment-form' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2046028067618905204/posts/default/8510472537122629817'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2046028067618905204/posts/default/8510472537122629817'/><link rel='alternate' type='text/html' href='http://sqldownsouth.blogspot.com/2010/07/sql-server-mvp-are-you-kidding-me.html' title='SQL Server MVP - Are you kidding me?'/><author><name>Patrick LeBlanc</name><uri>http://www.blogger.com/profile/01738972122068246140</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_barBiSO8ITc/TGG9UkphClI/AAAAAAAAAPY/dGyatbRnf0Y/S220/PatrickHeadShotFull.jpg'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2046028067618905204.post-1114618699735782723</id><published>2010-06-30T08:56:00.001-07:00</published><updated>2010-06-30T08:56:25.375-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MDX'/><category scheme='http://www.blogger.com/atom/ns#' term='SSAS'/><title type='text'>MDX Puzzle #2</title><content type='html'>&lt;p&gt;Now that we have our feet wet, let’s get started with the next puzzle.&amp;#160; In this puzzle we will be writing a query that returns Percentage Growth Year over Year.&amp;#160; For example, if sales were $258,056 in 2006 and $389,456 in 2007, then the percentage growth would be (2007 sales – 2006 sales)/2006 sales.&amp;#160; Here are the requirements:&lt;/p&gt;  &lt;table border="1" bordercolor="#000000" bordercolorlight="#ffffff" bordercolordark="#ffffff" width="100%" bgcolor="#ffffff"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td&gt;         &lt;p&gt;&lt;strong&gt;Columns&lt;/strong&gt;:&amp;#160; Internet Sales Amount and Percentage Growth (calculated measure)&lt;/p&gt;          &lt;p&gt;&lt;strong&gt;Rows&lt;/strong&gt;:&amp;#160; Calendar Years&lt;/p&gt;          &lt;p&gt;&lt;strong&gt;Filter&lt;/strong&gt;:&amp;#160; Only Show United States Bike Sales&lt;/p&gt;          &lt;p&gt;&lt;strong&gt;Hint&lt;/strong&gt;:&amp;#160; You can use the CREATE MEMBER statement to perform the calculation and use it in your query.&amp;#160;&amp;#160; You may also need to use a CASE Statement to address a Divide By Zero error.&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;Remember, don’t post you solutions here.&amp;#160; Save them for my solution post.&amp;#160; I will post it along with the steps that was taken to solve the puzzle in a couple of days.&amp;#160;&amp;#160; Here is a screen shot of what the results should look like:&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;a href="http://lh5.ggpht.com/_barBiSO8ITc/TCtpJuEDgYI/AAAAAAAAANQ/g0nwqCk02Tg/s1600-h/image%5B3%5D.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://lh3.ggpht.com/_barBiSO8ITc/TCtpKABn1dI/AAAAAAAAANU/GYRfWp7vLcs/image_thumb%5B1%5D.png?imgmax=800" width="472" height="162" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Don’t forget to check back in a couple days for the solution.&lt;/p&gt;  &lt;p&gt;Talk to you soon,&lt;/p&gt;  &lt;p&gt;Patrick LeBlanc&lt;/p&gt;  &lt;p&gt;Founder &lt;a href="http://www.TSQLScripts.com"&gt;www.TSQLScripts.com&lt;/a&gt; and &lt;a href="http://www.SQLLunch.com"&gt;www.SQLLunch.com&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;Visit &lt;a href="http://www.BIDN.com"&gt;www.BIDN.com&lt;/a&gt;, Bring Business Intelligence to your company.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2046028067618905204-1114618699735782723?l=sqldownsouth.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sqldownsouth.blogspot.com/feeds/1114618699735782723/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sqldownsouth.blogspot.com/2010/06/mdx-puzzle-2.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2046028067618905204/posts/default/1114618699735782723'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2046028067618905204/posts/default/1114618699735782723'/><link rel='alternate' type='text/html' href='http://sqldownsouth.blogspot.com/2010/06/mdx-puzzle-2.html' title='MDX Puzzle #2'/><author><name>Patrick LeBlanc</name><uri>http://www.blogger.com/profile/01738972122068246140</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_barBiSO8ITc/TGG9UkphClI/AAAAAAAAAPY/dGyatbRnf0Y/S220/PatrickHeadShotFull.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh3.ggpht.com/_barBiSO8ITc/TCtpKABn1dI/AAAAAAAAANU/GYRfWp7vLcs/s72-c/image_thumb%5B1%5D.png?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2046028067618905204.post-2044837711066569306</id><published>2010-06-29T03:58:00.001-07:00</published><updated>2010-06-29T03:58:23.958-07:00</updated><title type='text'>SQL Saturday #28 (Baton Rouge) – All about User Groups</title><content type='html'>&lt;p&gt;This year at &lt;a href="http://www.sqlsaturday.com/28/eventhome.aspx"&gt;SQL Saturday #28&lt;/a&gt; we will be featuring a User Group Booth alongside the Sponsor booths. The User Group booth will provide information about various User Groups that host meetings. If you are attending SQL Saturday and are a part of a group that would like to be involved you can either provide a handout that can be left at the booth for other attendees or contact Stacy Vicknair at &lt;a href="mailto:stacy.vicknair@sparkhound.com"&gt;stacy.vicknair@sparkhound.com&lt;/a&gt; with your group information including the group name, website, description and a primary contact.&amp;#160; &lt;/p&gt;  &lt;p&gt;No matter the size of your User Group, how often you all meet or whether your group virtual, we will be happy to have you as part of this event.&amp;#160; Also, if you are interested in starting a new User Group we suggest that you send your information and we definitely place it in the booth.&amp;#160; This is our community so let’s grow it together.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.sqlsaturday.com/28/register.aspx"&gt;Register Here&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.sqlsaturday.com/28/schedule.aspx"&gt;View Schedule&lt;/a&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;The SQL Saturday #28 Team&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2046028067618905204-2044837711066569306?l=sqldownsouth.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sqldownsouth.blogspot.com/feeds/2044837711066569306/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sqldownsouth.blogspot.com/2010/06/sql-saturday-28-baton-rouge-all-about.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2046028067618905204/posts/default/2044837711066569306'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2046028067618905204/posts/default/2044837711066569306'/><link rel='alternate' type='text/html' href='http://sqldownsouth.blogspot.com/2010/06/sql-saturday-28-baton-rouge-all-about.html' title='SQL Saturday #28 (Baton Rouge) – All about User Groups'/><author><name>Patrick LeBlanc</name><uri>http://www.blogger.com/profile/01738972122068246140</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_barBiSO8ITc/TGG9UkphClI/AAAAAAAAAPY/dGyatbRnf0Y/S220/PatrickHeadShotFull.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2046028067618905204.post-5938639962575712478</id><published>2010-06-27T17:35:00.001-07:00</published><updated>2010-06-27T17:35:25.512-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MDX'/><category scheme='http://www.blogger.com/atom/ns#' term='SSAS'/><title type='text'>MDX Puzzle #1 Solution</title><content type='html'>&lt;p&gt;OK, are you ready to start the MDX journey.&amp;#160; In &lt;a href="http://bidn.com/blogs/PatrickLeBlanc/ssis/765/mdx-puzzle-1"&gt;MDX Puzzle #1&lt;/a&gt; posting I presented you with the challenge of writing an MDX query based on the requirements that I outlined in that posting.&amp;#160; In this solution and all subsequent solutions I will walk you through the process of writing the MDX restating each requirement along the way.&amp;#160; Also, as I write the query I will define and explain any new concepts and functions that are introduced.&amp;#160; Enough with the formalities let’s go.&lt;/p&gt;  &lt;p&gt;The first thing that you will need to do is get connected to a SQL Server Analysis Server (SSAS).&amp;#160; If you are like me, a long-time DBA, you are probably thinking, how in the heck do I connect to SSAS.&amp;#160; I have been connecting to SQL Servers for more than ten years, now they want me to connect to an Analysis Server.&amp;#160; Well don’t worry it’s just like connecting to a SQL Server.&amp;#160; First, open SQL Server Management Studio (SSMS), yes I said SSMS.&amp;#160; Select Analysis Services from the Server Type drop down list, type your server name and click Connect.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/_barBiSO8ITc/TCfuGxVH3zI/AAAAAAAAAMQ/ByN2phfs59g/s1600-h/image3.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://lh5.ggpht.com/_barBiSO8ITc/TCfuHTpc-4I/AAAAAAAAAMU/AqCpA8IWBKg/image_thumb1%5B1%5D.png?imgmax=800" width="380" height="284" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Now that you are connected, you will need to ensure that you are querying the correct database.&amp;#160; In the menu bar there is a drop down list that contains a list of all the available databases.&amp;#160; Choose the Adventure Works DW 2008R2 database from the drop down list then click the New Query button.&amp;#160; I was getting a little excited, because these steps are very similar to connecting to and writing a query against a SQL Server Database.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/_barBiSO8ITc/TCfuHm3G5XI/AAAAAAAAAMY/6hCcD0yztUk/s1600-h/image7.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://lh3.ggpht.com/_barBiSO8ITc/TCfuINOzaVI/AAAAAAAAAMc/z050O8W3Frw/image_thumb3.png?imgmax=800" width="534" height="134" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;When you click the New Query button a new tab becomes available.&amp;#160; On this tab you will select the cube (Adventure Works) and the Measure Group (Internet Sales), which you will by querying.&amp;#160; Finally, I am ready to start writing this MDX query.&amp;#160; Here is the first query that I wrote against the cube:&lt;/p&gt;  &lt;div class="csharpcode"&gt;   &lt;pre class="alt"&gt;&lt;span class="kwrd"&gt;SELECT&lt;/span&gt; *&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre&gt;&lt;span class="kwrd"&gt;FROM&lt;/span&gt; [Adventure Works]&lt;/pre&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;style type="text/css"&gt;&lt;br /&gt;&lt;br /&gt;.csharpcode, .csharpcode pre&lt;br /&gt;{&lt;br /&gt;	font-size: small;&lt;br /&gt;	color: black;&lt;br /&gt;	font-family: consolas, "Courier New", courier, monospace;&lt;br /&gt;	background-color: #ffffff;&lt;br /&gt;	/*white-space: pre;*/&lt;br /&gt;}&lt;br /&gt;.csharpcode pre { margin: 0em; }&lt;br /&gt;.csharpcode .rem { color: #008000; }&lt;br /&gt;.csharpcode .kwrd { color: #0000ff; }&lt;br /&gt;.csharpcode .str { color: #006080; }&lt;br /&gt;.csharpcode .op { color: #0000c0; }&lt;br /&gt;.csharpcode .preproc { color: #cc6633; }&lt;br /&gt;.csharpcode .asp { background-color: #ffff00; }&lt;br /&gt;.csharpcode .html { color: #800000; }&lt;br /&gt;.csharpcode .attr { color: #ff0000; }&lt;br /&gt;.csharpcode .alt &lt;br /&gt;{&lt;br /&gt;	background-color: #f4f4f4;&lt;br /&gt;	width: 100%;&lt;br /&gt;	margin: 0em;&lt;br /&gt;}&lt;br /&gt;.csharpcode .lnum { color: #606060; }&lt;/style&gt;&lt;style type="text/css"&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;.csharpcode, .csharpcode pre&lt;br /&gt;{&lt;br /&gt;	font-size: small;&lt;br /&gt;	color: black;&lt;br /&gt;	font-family: consolas, "Courier New", courier, monospace;&lt;br /&gt;	background-color: #ffffff;&lt;br /&gt;	/*white-space: pre;*/&lt;br /&gt;}&lt;br /&gt;.csharpcode pre { margin: 0em; }&lt;br /&gt;.csharpcode .rem { color: #008000; }&lt;br /&gt;.csharpcode .kwrd { color: #0000ff; }&lt;br /&gt;.csharpcode .str { color: #006080; }&lt;br /&gt;.csharpcode .op { color: #0000c0; }&lt;br /&gt;.csharpcode .preproc { color: #cc6633; }&lt;br /&gt;.csharpcode .asp { background-color: #ffff00; }&lt;br /&gt;.csharpcode .html { color: #800000; }&lt;br /&gt;.csharpcode .attr { color: #ff0000; }&lt;br /&gt;.csharpcode .alt &lt;br /&gt;{&lt;br /&gt;	background-color: #f4f4f4;&lt;br /&gt;	width: 100%;&lt;br /&gt;	margin: 0em;&lt;br /&gt;}&lt;br /&gt;.csharpcode .lnum { color: #606060; }&lt;/style&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;I wanted to see all the columns (hahahahahaha) in the cube.&amp;#160; Was I wrong.&amp;#160; This is a cube (Multi-Dimensions) not a single table.&amp;#160; When selecting from the cube you select Measures and Attributes.&amp;#160; What do I do?&amp;#160; Well looking at the new tab in SSMS I expanded Measures then expanded the Internet Sales folder.&amp;#160; The first requirement from the puzzle was to return Internet Sales Amount and Internet Order Quantity.&amp;#160; I performed a drag and drop on the Internet Sales Amount measure, replacing the asterisk.&amp;#160; I repeated the steps for the Internet Order Quantity Measure.&amp;#160; Separating the two with a comma and arrived at the next query that I ran:&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;a href="http://lh3.ggpht.com/_barBiSO8ITc/TCfuIdqeBOI/AAAAAAAAAMg/FowgJmjgvQE/s1600-h/image4.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://lh4.ggpht.com/_barBiSO8ITc/TCfuIrjqccI/AAAAAAAAAMk/eBYSWSAn2lU/image_thumb1.png?imgmax=800" width="742" height="109" /&gt;&lt;/a&gt; &lt;/p&gt;&lt;br /&gt;&lt;style type="text/css"&gt;&lt;br /&gt;&lt;br /&gt;.csharpcode, .csharpcode pre&lt;br /&gt;{&lt;br /&gt;	font-size: small;&lt;br /&gt;	color: black;&lt;br /&gt;	font-family: consolas, "Courier New", courier, monospace;&lt;br /&gt;	background-color: #ffffff;&lt;br /&gt;	/*white-space: pre;*/&lt;br /&gt;}&lt;br /&gt;.csharpcode pre { margin: 0em; }&lt;br /&gt;.csharpcode .rem { color: #008000; }&lt;br /&gt;.csharpcode .kwrd { color: #0000ff; }&lt;br /&gt;.csharpcode .str { color: #006080; }&lt;br /&gt;.csharpcode .op { color: #0000c0; }&lt;br /&gt;.csharpcode .preproc { color: #cc6633; }&lt;br /&gt;.csharpcode .asp { background-color: #ffff00; }&lt;br /&gt;.csharpcode .html { color: #800000; }&lt;br /&gt;.csharpcode .attr { color: #ff0000; }&lt;br /&gt;.csharpcode .alt &lt;br /&gt;{&lt;br /&gt;	background-color: #f4f4f4;&lt;br /&gt;	width: 100%;&lt;br /&gt;	margin: 0em;&lt;br /&gt;}&lt;br /&gt;.csharpcode .lnum { color: #606060; }&lt;/style&gt;&lt;style type="text/css"&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;.csharpcode, .csharpcode pre&lt;br /&gt;{&lt;br /&gt;	font-size: small;&lt;br /&gt;	color: black;&lt;br /&gt;	font-family: consolas, "Courier New", courier, monospace;&lt;br /&gt;	background-color: #ffffff;&lt;br /&gt;	/*white-space: pre;*/&lt;br /&gt;}&lt;br /&gt;.csharpcode pre { margin: 0em; }&lt;br /&gt;.csharpcode .rem { color: #008000; }&lt;br /&gt;.csharpcode .kwrd { color: #0000ff; }&lt;br /&gt;.csharpcode .str { color: #006080; }&lt;br /&gt;.csharpcode .op { color: #0000c0; }&lt;br /&gt;.csharpcode .preproc { color: #cc6633; }&lt;br /&gt;.csharpcode .asp { background-color: #ffff00; }&lt;br /&gt;.csharpcode .html { color: #800000; }&lt;br /&gt;.csharpcode .attr { color: #ff0000; }&lt;br /&gt;.csharpcode .alt &lt;br /&gt;{&lt;br /&gt;	background-color: #f4f4f4;&lt;br /&gt;	width: 100%;&lt;br /&gt;	margin: 0em;&lt;br /&gt;}&lt;br /&gt;.csharpcode .lnum { color: #606060; }&lt;/style&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;This one did not run either.&amp;#160; I was already beginning to not like this MDX stuff.&amp;#160; Not only was it very specific, but I noticed that everything has to be fully qualified.&amp;#160; To get it to run I had to add two things to my query.&amp;#160; First, curly braces ({ }) were place around both measures.&amp;#160; Then the ON COLUMNS keywords were added immediately after the second brace.&amp;#160; The braces creates the set of measures and the ON COLUMNS keywords specifies which axis to place the result set.&amp;#160; There are several variations to this, as time goes on we will discuss them all.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;a href="http://lh3.ggpht.com/_barBiSO8ITc/TCfuJKMbiOI/AAAAAAAAAMo/-Gy7e6vnp2A/s1600-h/image11.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://lh3.ggpht.com/_barBiSO8ITc/TCfuJmlpkCI/AAAAAAAAAMs/OYyPjU6ICH4/image_thumb4.png?imgmax=800" width="753" height="151" /&gt;&lt;/a&gt; &lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Finally, my first executable MDX query.&amp;#160; The next requirement was to show Product Categories and SubCategories as ROWS in the result set.&amp;#160; In my earlier research, I found the solution for this.&amp;#160; You will need to add a Tuple to your query.&amp;#160; A tuple is a combination of dimension members or attributes.&amp;#160; In this puzzle we are required to return two members from the same dimension, note that a tuple can contain members from different dimensions.&amp;#160; My second working MDX query:&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;a href="http://lh3.ggpht.com/_barBiSO8ITc/TCfuKU2KxgI/AAAAAAAAAMw/NCccP7DNCUs/s1600-h/image16.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://lh5.ggpht.com/_barBiSO8ITc/TCfuKt6H3uI/AAAAAAAAAM0/UwEdC1KEjIs/image_thumb7.png?imgmax=800" width="754" height="248" /&gt;&lt;/a&gt; &lt;/p&gt;&lt;br /&gt;&lt;style type="text/css"&gt;&lt;br /&gt;&lt;br /&gt;.csharpcode, .csharpcode pre&lt;br /&gt;{&lt;br /&gt;	font-size: small;&lt;br /&gt;	color: black;&lt;br /&gt;	font-family: consolas, "Courier New", courier, monospace;&lt;br /&gt;	background-color: #ffffff;&lt;br /&gt;	/*white-space: pre;*/&lt;br /&gt;}&lt;br /&gt;.csharpcode pre { margin: 0em; }&lt;br /&gt;.csharpcode .rem { color: #008000; }&lt;br /&gt;.csharpcode .kwrd { color: #0000ff; }&lt;br /&gt;.csharpcode .str { color: #006080; }&lt;br /&gt;.csharpcode .op { color: #0000c0; }&lt;br /&gt;.csharpcode .preproc { color: #cc6633; }&lt;br /&gt;.csharpcode .asp { background-color: #ffff00; }&lt;br /&gt;.csharpcode .html { color: #800000; }&lt;br /&gt;.csharpcode .attr { color: #ff0000; }&lt;br /&gt;.csharpcode .alt &lt;br /&gt;{&lt;br /&gt;	background-color: #f4f4f4;&lt;br /&gt;	width: 100%;&lt;br /&gt;	margin: 0em;&lt;br /&gt;}&lt;br /&gt;.csharpcode .lnum { color: #606060; }&lt;/style&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;In addition to the tuple, the ON ROWS keywords were included in the query.&amp;#160; As with the ON COLUMNS, ON ROWS specify which axis to place the data in the result set.&amp;#160; Maybe this MDX stuff isn’t too bad after all.&amp;#160; Let’s move on.&amp;#160; I did get a little stuck on the next requirement, which was to add Ship Years to the Columns axis.&amp;#160; After a little searching I came up with the solution.&amp;#160; I had to create two tuples within the set of measures.&amp;#160; The tuples contained the Ship Year coupled with each measure.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;a href="http://lh5.ggpht.com/_barBiSO8ITc/TCfuLO11-zI/AAAAAAAAAM4/HqHimdBryC4/s1600-h/image25.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://lh3.ggpht.com/_barBiSO8ITc/TCfuMdliV0I/AAAAAAAAAM8/S3M15G7ZdBw/image_thumb12.png?imgmax=800" width="755" height="254" /&gt;&lt;/a&gt; &lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;I also suffixed each Ship Year and both the Category and Subcategory with the Children function.&amp;#160; This function returns a set of children for a specified member.&amp;#160; You may notice several null values in your result set.&amp;#160; How do you get rid of them?&amp;#160; You can’t just add WHERE &amp;lt;some column&amp;gt; IS NOT NULL to your query.&amp;#160; This brings me to our last requirement, which was to filter the result set to Exclude NULL values and only show Men from the Customer Dimension.&amp;#160; This to me was kind of simple.&amp;#160; A quick search and I found the NON EMPTY keyword, which returns the set of tuples that are not empty (does not contain NULL values).&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;a href="http://lh6.ggpht.com/_barBiSO8ITc/TCfuNbXpzoI/AAAAAAAAANA/64SuXqRbAQA/s1600-h/image30.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://lh6.ggpht.com/_barBiSO8ITc/TCfuOwejt7I/AAAAAAAAANE/qgsF7V1VJ_w/image_thumb15.png?imgmax=800" width="785" height="258" /&gt;&lt;/a&gt; &lt;/p&gt;&lt;br /&gt;&lt;style type="text/css"&gt;&lt;br /&gt;&lt;br /&gt;.csharpcode, .csharpcode pre&lt;br /&gt;{&lt;br /&gt;	font-size: small;&lt;br /&gt;	color: black;&lt;br /&gt;	font-family: consolas, "Courier New", courier, monospace;&lt;br /&gt;	background-color: #ffffff;&lt;br /&gt;	/*white-space: pre;*/&lt;br /&gt;}&lt;br /&gt;.csharpcode pre { margin: 0em; }&lt;br /&gt;.csharpcode .rem { color: #008000; }&lt;br /&gt;.csharpcode .kwrd { color: #0000ff; }&lt;br /&gt;.csharpcode .str { color: #006080; }&lt;br /&gt;.csharpcode .op { color: #0000c0; }&lt;br /&gt;.csharpcode .preproc { color: #cc6633; }&lt;br /&gt;.csharpcode .asp { background-color: #ffff00; }&lt;br /&gt;.csharpcode .html { color: #800000; }&lt;br /&gt;.csharpcode .attr { color: #ff0000; }&lt;br /&gt;.csharpcode .alt &lt;br /&gt;{&lt;br /&gt;	background-color: #f4f4f4;&lt;br /&gt;	width: 100%;&lt;br /&gt;	margin: 0em;&lt;br /&gt;}&lt;br /&gt;.csharpcode .lnum { color: #606060; }&lt;/style&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Wow, a lot of work, but this is finally starting to make a little sense to me.&amp;#160; Finally, we need to filter the result set so that it only returns men from the Customer Dimension.&amp;#160; In MDX you will use a WHERE clause to filter the data, but instead of filtering it is considered Slicing.&amp;#160; To Slice our result set to meet our requirements add one final line of syntax to our query, which is our SOLUTION!&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;a href="http://lh5.ggpht.com/_barBiSO8ITc/TCfuSU60YVI/AAAAAAAAANI/4p9Dq3vcgIE/s1600-h/image35.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://lh4.ggpht.com/_barBiSO8ITc/TCfuTOjQEoI/AAAAAAAAANM/Cnc0wf5obb0/image_thumb18.png?imgmax=800" width="800" height="289" /&gt;&lt;/a&gt; &lt;/p&gt;&lt;br /&gt;&lt;style type="text/css"&gt;&lt;br /&gt;&lt;br /&gt;.csharpcode, .csharpcode pre&lt;br /&gt;{&lt;br /&gt;	font-size: small;&lt;br /&gt;	color: black;&lt;br /&gt;	font-family: consolas, "Courier New", courier, monospace;&lt;br /&gt;	background-color: #ffffff;&lt;br /&gt;	/*white-space: pre;*/&lt;br /&gt;}&lt;br /&gt;.csharpcode pre { margin: 0em; }&lt;br /&gt;.csharpcode .rem { color: #008000; }&lt;br /&gt;.csharpcode .kwrd { color: #0000ff; }&lt;br /&gt;.csharpcode .str { color: #006080; }&lt;br /&gt;.csharpcode .op { color: #0000c0; }&lt;br /&gt;.csharpcode .preproc { color: #cc6633; }&lt;br /&gt;.csharpcode .asp { background-color: #ffff00; }&lt;br /&gt;.csharpcode .html { color: #800000; }&lt;br /&gt;.csharpcode .attr { color: #ff0000; }&lt;br /&gt;.csharpcode .alt &lt;br /&gt;{&lt;br /&gt;	background-color: #f4f4f4;&lt;br /&gt;	width: 100%;&lt;br /&gt;	margin: 0em;&lt;br /&gt;}&lt;br /&gt;.csharpcode .lnum { color: #606060; }&lt;/style&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Download Script&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Done.&amp;#160; What a task, but I learned so many things from this.&amp;#160; I can’t wait for the next challenge.&amp;#160; Please post your comments and solutions here.&amp;#160; As always, if you have any questions please feel free to email me at &lt;a href="mailto:pleblanc@pragmaticworks.com"&gt;pleblanc@pragmaticworks.com&lt;/a&gt;.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2046028067618905204-5938639962575712478?l=sqldownsouth.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sqldownsouth.blogspot.com/feeds/5938639962575712478/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sqldownsouth.blogspot.com/2010/06/mdx-puzzle-1-solution.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2046028067618905204/posts/default/5938639962575712478'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2046028067618905204/posts/default/5938639962575712478'/><link rel='alternate' type='text/html' href='http://sqldownsouth.blogspot.com/2010/06/mdx-puzzle-1-solution.html' title='MDX Puzzle #1 Solution'/><author><name>Patrick LeBlanc</name><uri>http://www.blogger.com/profile/01738972122068246140</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_barBiSO8ITc/TGG9UkphClI/AAAAAAAAAPY/dGyatbRnf0Y/S220/PatrickHeadShotFull.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh5.ggpht.com/_barBiSO8ITc/TCfuHTpc-4I/AAAAAAAAAMU/AqCpA8IWBKg/s72-c/image_thumb1%5B1%5D.png?imgmax=800' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2046028067618905204.post-9958656565959055</id><published>2010-06-22T06:51:00.001-07:00</published><updated>2010-06-22T06:51:41.543-07:00</updated><title type='text'>MDX Puzzle #1</title><content type='html'>&lt;p&gt;Recently, I embarked on a mission to become proficient at writing MDX queries.&amp;#160; This is a challenge, as many of you may already know.&amp;#160; MDX, though a query language, is very different from T-SQL as I quickly found out.&amp;#160; Each week I will share with you a puzzle and then a couple of days later I will share my solution.&amp;#160;&amp;#160; Please don’t post your solutions on this blog post.&amp;#160; Only post them on the Solution post, which will contain Solution in the title. Each solution post will contain a section on terminology and concepts if any new ones are introduced and the MDX query that is the solution to the puzzle.&amp;#160; In this first posting there will be a few.&amp;#160; The puzzles will start out very basic, but will move to more advanced MDX techniques as time progresses and my skills improve.&amp;#160; I will be using the Adventure Works 2008 R2 cube, which can be downloaded from &lt;a href="http://msftdbprodsamples.codeplex.com/releases/view/45907"&gt;codeplex&lt;/a&gt;.&amp;#160; So, let’s get started.&lt;/p&gt;  &lt;p&gt;My first puzzle was to write what I thought was a very simple query.&amp;#160; Here is the puzzle:&lt;/p&gt;  &lt;table border="1" bordercolor="#000000" bordercolorlight="#ffffff" bordercolordark="#ffffff" width="100%" bgcolor="#ffffff"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td&gt;&lt;strong&gt;Show:&lt;/strong&gt;&amp;#160; Product Internet Sales and Order Quantity Measures           &lt;br /&gt;&lt;strong&gt;Rows:&lt;/strong&gt;&amp;#160; Product Categories and SubCategories           &lt;br /&gt;&lt;strong&gt;Columns:&amp;#160; &lt;/strong&gt;Ship Years           &lt;br /&gt;&lt;strong&gt;Filter:&amp;#160; &lt;/strong&gt;Only Show Men from Customer Dimension and Exclude &lt;strong&gt;NULL&lt;/strong&gt; values           &lt;br /&gt;          &lt;br /&gt;&lt;strong&gt;Hint:&amp;#160; &lt;/strong&gt;You will need a tuple for year and measures and for the rows.&lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;Remember, don’t post you solutions here.&amp;#160; Save them for my solution post.&amp;#160; I will post it along with the steps that was taken to solve the puzzle in a couple of days.&amp;#160;&amp;#160; Here is a screen shot of what the results should look like:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/_barBiSO8ITc/TCC_6pC1YtI/AAAAAAAAAMI/NanK5p1KKqU/s1600-h/image4.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://lh5.ggpht.com/_barBiSO8ITc/TCC_7GJMisI/AAAAAAAAAMM/CI8T8dP4dkI/image_thumb2.png?imgmax=800" width="898" height="373" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Don’t forget to check back in a couple days for the solution.&lt;/p&gt;  &lt;p&gt;Talk to you soon,&lt;/p&gt;  &lt;p&gt;Patrick LeBlanc&lt;/p&gt;  &lt;p&gt;Founder &lt;a href="http://www.TSQLScripts.com"&gt;www.TSQLScripts.com&lt;/a&gt; and &lt;a href="http://www.SQLLunch.com"&gt;www.SQLLunch.com&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;Visit &lt;a href="http://www.BIDN.com"&gt;www.BIDN.com&lt;/a&gt;, Bring Business Intelligence to your company.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2046028067618905204-9958656565959055?l=sqldownsouth.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sqldownsouth.blogspot.com/feeds/9958656565959055/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sqldownsouth.blogspot.com/2010/06/mdx-puzzle-1.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2046028067618905204/posts/default/9958656565959055'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2046028067618905204/posts/default/9958656565959055'/><link rel='alternate' type='text/html' href='http://sqldownsouth.blogspot.com/2010/06/mdx-puzzle-1.html' title='MDX Puzzle #1'/><author><name>Patrick LeBlanc</name><uri>http://www.blogger.com/profile/01738972122068246140</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_barBiSO8ITc/TGG9UkphClI/AAAAAAAAAPY/dGyatbRnf0Y/S220/PatrickHeadShotFull.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh5.ggpht.com/_barBiSO8ITc/TCC_7GJMisI/AAAAAAAAAMM/CI8T8dP4dkI/s72-c/image_thumb2.png?imgmax=800' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2046028067618905204.post-4352491926143107905</id><published>2010-06-22T04:53:00.001-07:00</published><updated>2010-06-22T04:53:24.829-07:00</updated><title type='text'>SQL Saturday #28 (Baton Rouge) Announcements</title><content type='html'>&lt;p&gt;Register:&amp;#160; &lt;a href="http://sqlsaturday.com/28/register.aspx"&gt;Click Here&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Submitted Sessions:&amp;#160; &lt;a href="http://sqlsaturday.com/28/schedule.aspx"&gt;Click Here&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Twitter:&amp;#160; @&lt;a title="SQLSatBR" href="http://twitter.com/SQLSatBR"&gt;SQLSatBR&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;On August 14, 2010 at Louisiana State University &lt;a href="http://www.sqlsaturday.com/28/eventhome.aspx"&gt;SQL Saturday #28&lt;/a&gt; will be held.&amp;#160; If you have yet to attend a SQL Saturday you should try to make this event.&amp;#160; Now I know what you are thinking, Baton Rouge in August?&amp;#160; Well, before you make a quick decision about not attending take a look at everything that will take place.&lt;/p&gt;  &lt;h1&gt;&lt;/h1&gt;  &lt;h2&gt;&lt;/h2&gt;  &lt;h3&gt;&lt;u&gt;Breakfast Tracks - SQL and Beignets (All Novice or Beginning Level)&lt;/u&gt;&lt;/h3&gt;  &lt;p&gt;At 7:30 AM we will have three sessions.&amp;#160; All three sessions will be introduction, novice or 100 level.&amp;#160; If you are new to SQL Server or just getting started or trying to get started then these sessions are for you.&amp;#160; You can learn from the best in the industry two SQL Server MVPs and a Business Intelligence Expert.&amp;#160; Here are the three sessions:&lt;/p&gt;  &lt;table border="1" cellspacing="0" cellpadding="2" width="362"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign="top" width="115"&gt;&lt;strong&gt;Presenter&lt;/strong&gt;&lt;/td&gt;        &lt;td valign="top" width="245"&gt;&lt;strong&gt;Session Title&lt;/strong&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="115"&gt;Steve Jones&lt;/td&gt;        &lt;td valign="top" width="245"&gt;&lt;a href="http://sqlsaturday.com/viewsession.aspx?sat=28&amp;amp;sessionid=2050"&gt;Basic SQL Server&lt;/a&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="115"&gt;Andy Leonard&lt;/td&gt;        &lt;td valign="top" width="245"&gt;&lt;a href="http://sqlsaturday.com/viewsession.aspx?sat=28&amp;amp;sessionid=1611"&gt;Build Your First SSIS Package &lt;/a&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="115"&gt;Barry Ralston&lt;/td&gt;        &lt;td valign="top" width="245"&gt;&lt;a href="http://sqlsaturday.com/viewsession.aspx?sat=28&amp;amp;sessionid=2051"&gt;Breakfast Basics, SSAS Cube Creation&lt;/a&gt;&lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;So if you want to learn about SQL Server, SSIS or SSAS join us for some coffee or juice, beignets and three great presentations.&lt;/p&gt;  &lt;h3&gt;&lt;u&gt;Keynote by Steve Jones&lt;/u&gt;&lt;/h3&gt;  &lt;p&gt;Do you want a chance to meet one of the co-founders of &lt;a href="http://www.sqlservercentral.com/"&gt;SQLServerCentral.com&lt;/a&gt; and &lt;a href="http://www.sqlsaturday.com/"&gt;SQL Saturday&lt;/a&gt;? Then here is your chance.&amp;#160; Join us for a great keynote by Steve Jones, MVP (Steve’s talks are always entertaining and this one shouldn’t be any different).&amp;#160; &lt;/p&gt;  &lt;h3&gt;&lt;u&gt;Four SQL Tracks and Three .Net Tracks&lt;/u&gt;&lt;/h3&gt;  &lt;p&gt;We have worked hard on finding some of the brightest SQL and .Net speakers.&amp;#160; Fortunately for us, it wasn’t very difficult.&amp;#160; We have over 80 sessions submitted.&amp;#160; Now that we have closed the call for speakers we will be spending time putting together a great schedule.&amp;#160; With so many sessions we have decided to have a minimum of seven tracks with six sessions each.&amp;#160; That will give us at least 56 sessions plus the 3 breakfast beginner sessions.&amp;#160; We are considering adding two more tracks, so stay tuned to the SQL Saturday site for updates.&lt;/p&gt;  &lt;h3&gt;&lt;u&gt;Host of Microsoft MVPs&lt;/u&gt;&lt;/h3&gt;  &lt;p&gt;Finally, we have commitments from 13 Microsoft MVPs for this event.&amp;#160; Not taking anything from our non-MVP speakers because all of our speakers are extraordinary, but we are excited to have so many MVPs at this SQL Saturday.&amp;#160; Each track (SQL and .Net) will include MVP speakers.&amp;#160; &lt;/p&gt;  &lt;h3&gt;&lt;u&gt;Microsoft .NET Framework from Scratch&lt;/u&gt;&lt;/h3&gt;  &lt;p&gt;Come see this session that &lt;strong&gt;Keith Elder&lt;/strong&gt; did in a pre-TechEd conference.&amp;#160; The cost of this session was $400-$500. Space is limited so please sign up ASAP.&amp;#160; This session is a part of our 2010 Baton Rouge .NET and SQL Saturday. You will need to register in two places if you want to attend this session, &lt;a href="http://www.sqlsaturday.com/28/register.aspx"&gt;SQL Saturday #28&lt;/a&gt;&amp;#160; and &lt;a href="http://sqlsatbr2010.eventbrite.com/"&gt;Event Brite SQL Saturday Baton Rouge&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;This seminar is for anyone who is starting at ground zero with .NET and wants a deep dive into the platform starting from scratch. It is designed for developers experienced in at least one other language, and starts with the basics of . NET and covers Microsoft Visual Studio, writing code in C#, and how to build applications in various technologies of the platform such as Windows, Web, Microsoft Silverlight, and Windows Mobile. &lt;/p&gt;  &lt;p&gt;So if you have the time, come out and network with some of the smartest SQL Server and .Net professionals in the country.&amp;#160; I have had the opportunity to attend sessions from most of our speakers and I have to say you will definitely learn something if you attend.&amp;#160; &lt;/p&gt;  &lt;p&gt;Talk to you soon,&lt;/p&gt;  &lt;p&gt;Patrick LeBlanc&lt;/p&gt;  &lt;p&gt;Founder &lt;a href="http://www.TSQLScripts.com"&gt;www.TSQLScripts.com&lt;/a&gt; and &lt;a href="http://www.SQLLunch.com"&gt;www.SQLLunch.com&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;Visit &lt;a href="http://www.BIDN.com"&gt;www.BIDN.com&lt;/a&gt;, Bring Business Intelligence to your company.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2046028067618905204-4352491926143107905?l=sqldownsouth.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sqldownsouth.blogspot.com/feeds/4352491926143107905/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sqldownsouth.blogspot.com/2010/06/sql-saturday-28-baton-rouge.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2046028067618905204/posts/default/4352491926143107905'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2046028067618905204/posts/default/4352491926143107905'/><link rel='alternate' type='text/html' href='http://sqldownsouth.blogspot.com/2010/06/sql-saturday-28-baton-rouge.html' title='SQL Saturday #28 (Baton Rouge) Announcements'/><author><name>Patrick LeBlanc</name><uri>http://www.blogger.com/profile/01738972122068246140</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_barBiSO8ITc/TGG9UkphClI/AAAAAAAAAPY/dGyatbRnf0Y/S220/PatrickHeadShotFull.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2046028067618905204.post-5522048734347564905</id><published>2010-06-21T09:03:00.001-07:00</published><updated>2010-06-21T09:03:34.243-07:00</updated><title type='text'>SSRS R2 - Naming Excel Worksheet Tabs</title><content type='html'>&lt;p&gt;I was recently asked if it was possible to name an excel tab based on a page in a reporting service report.&amp;#160; Honestly, I did not know if it was possible.&amp;#160; My initial response was, I don’t think so.&amp;#160; Not being 100% sure, I started searching the web and I stumbled across the &lt;a href="http://msdn.microsoft.com/en-us/library/ms170438.aspx"&gt;What’s New (Reporting Services)&lt;/a&gt; site.&amp;#160; The site provides a great list of all the new features in SQL Server Reporting Services (SSRS) R2.&amp;#160; Not too far down the list I saw the subtitle, Naming Excel Worksheet Tabs.&amp;#160; So, how do you do it?&lt;/p&gt;  &lt;p&gt;In this example (&lt;a href="http://www.bidn.com/Assets/Uploaded-CMS-Files/67c9c534-e49c-4db4-984a-1a16c9068a56Sample Project.zip"&gt;download my example&lt;/a&gt;), I used a report that has a grouping on Countries and Stores.&amp;#160; Each country will represent the title for each tab in the Excel spreadsheet.&amp;#160; &lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/_barBiSO8ITc/TB-NK0jRtpI/AAAAAAAAALY/Z9q1b_Dzbs0/s1600-h/image10.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://lh5.ggpht.com/_barBiSO8ITc/TB-NLoIHTbI/AAAAAAAAALc/wj1C1wOLApg/image_thumb4.png?imgmax=800" width="760" height="105" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;To start, right click on the Country grouping in the Row Groups section of the Report Designer.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/_barBiSO8ITc/TB-NMFH8P0I/AAAAAAAAALg/EC68ts0vZA8/s1600-h/image16.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://lh3.ggpht.com/_barBiSO8ITc/TB-NNp6dahI/AAAAAAAAALk/kPtmWnIbBhA/image_thumb8.png?imgmax=800" width="573" height="402" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Select Group Properties from the dialogue box that appears and the following screen will open.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/_barBiSO8ITc/TB-NPbq_p_I/AAAAAAAAALo/a5t1SRMsm6Q/s1600-h/image20.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://lh4.ggpht.com/_barBiSO8ITc/TB-NQEWkdaI/AAAAAAAAALs/z3-Nd7m3NkM/image_thumb10.png?imgmax=800" width="409" height="336" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;Select Page Breaks from the left navigation section and on the Page Break Options screen check the box labeled Between each instance of a group.&amp;#160; Then on the Business Intelligence Development Studio (BIDS) menu bar choose View –&amp;gt; Properties.&amp;#160; The properties window will open in your development environment.&amp;#160; Back in the Row Group section click Country, then in the properties window expand the Group Property.&amp;#160; &lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/_barBiSO8ITc/TB-NQ2n50II/AAAAAAAAALw/Z7fFbe_LTqA/s1600-h/image26.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://lh6.ggpht.com/_barBiSO8ITc/TB-NSHDqDJI/AAAAAAAAAL0/q-Z5ZFEyFGo/image_thumb14.png?imgmax=800" width="308" height="436" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;In the PageName property you will type the expression of the value that will represents the tab names.&amp;#160; In this example I have decided to use the Country field as the name for each tab.&amp;#160; Click the drop down in the PageName property textbox and choose expression.&amp;#160; In the Expression window select Fields from the Category Section and double click Country in the Values section.&amp;#160; You screen should resemble the following screenshot:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/_barBiSO8ITc/TB-NTGEEa5I/AAAAAAAAAL4/8gz99H5XzZc/s1600-h/image32.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://lh4.ggpht.com/_barBiSO8ITc/TB-NTzlph_I/AAAAAAAAAL8/hRONk1BqqRo/image_thumb18.png?imgmax=800" width="439" height="399" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Now preview your report and export it to excel.&amp;#160; Once you open it you will notice that you have a tab for each country.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/_barBiSO8ITc/TB-NUJBBkBI/AAAAAAAAAMA/EgxtnumnK-I/s1600-h/image36.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://lh4.ggpht.com/_barBiSO8ITc/TB-NVeevcZI/AAAAAAAAAME/xhj2GA0o-qk/image_thumb20.png?imgmax=800" width="620" height="53" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.bidn.com/Assets/Uploaded-CMS-Files/67c9c534-e49c-4db4-984a-1a16c9068a56Sample Project.zip"&gt;Download Sample Project&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;As always if you have any questions or concerns regarding this post please feel free to email me at &lt;a href="mailto:pleblanc@pragmaticworks.com"&gt;pleblanc@pragmaticworks.com&lt;/a&gt;.&amp;#160; &lt;/p&gt;  &lt;p&gt;Talk to you soon,&lt;/p&gt;  &lt;p&gt;Patrick LeBlanc&lt;/p&gt;  &lt;p&gt;Founder &lt;a href="http://www.TSQLScripts.com"&gt;www.TSQLScripts.com&lt;/a&gt; and &lt;a href="http://www.SQLLunch.com"&gt;www.SQLLunch.com&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;Visit &lt;a href="http://www.BIDN.com"&gt;www.BIDN.com&lt;/a&gt;, Bring Business Intelligence to your company.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2046028067618905204-5522048734347564905?l=sqldownsouth.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sqldownsouth.blogspot.com/feeds/5522048734347564905/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sqldownsouth.blogspot.com/2010/06/ssrs-r2-naming-excel-worksheet-tabs.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2046028067618905204/posts/default/5522048734347564905'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2046028067618905204/posts/default/5522048734347564905'/><link rel='alternate' type='text/html' href='http://sqldownsouth.blogspot.com/2010/06/ssrs-r2-naming-excel-worksheet-tabs.html' title='SSRS R2 - Naming Excel Worksheet Tabs'/><author><name>Patrick LeBlanc</name><uri>http://www.blogger.com/profile/01738972122068246140</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_barBiSO8ITc/TGG9UkphClI/AAAAAAAAAPY/dGyatbRnf0Y/S220/PatrickHeadShotFull.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh5.ggpht.com/_barBiSO8ITc/TB-NLoIHTbI/AAAAAAAAALc/wj1C1wOLApg/s72-c/image_thumb4.png?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2046028067618905204.post-1562589817928342734</id><published>2010-06-13T15:47:00.001-07:00</published><updated>2010-06-13T15:56:41.258-07:00</updated><title type='text'>Parameterized Report using a Stored Procedure</title><content type='html'>&lt;p&gt;Download Sample Project: &lt;a href="http://www.bidn.com/Assets/Uploaded-CMS-Files/52e9c6ed-6fe3-46e1-97b7-18b233da78acParamReport.zip"&gt;Parameterized Report&lt;/a&gt;&lt;/p&gt;&lt;p&gt;In a recent forum post on &lt;a href="http://www.blogger.com/www.bidn.com"&gt;BIDN.com&lt;/a&gt; a person asked how to filter the result on the report based on a stored procedure parameter. Since a short blog post without screen shots wouldn’t fully explain how to accomplish this, I decided to write a quick post to assist the person. I did a quick search on the web, and I found a few results but nothing that I thought was a good beginner posting. So here is my version.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;The Stored Procedure&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;First you start with a couple of stored procedures. One stored procedure (Script 1-1) will provide the data set for the report. The second stored procedure (Script 1-2) will the act as the source for the parameter. The second stored procedure is not required, but at think it adds to the usability of the report.&lt;/p&gt;&lt;table border="3" cellspacing="0" cellpadding="2" width="400"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td valign="top" width="400"&gt;&lt;p&gt;USE AdventureWorks2008&lt;br /&gt;GO&lt;br /&gt;IF(OBJECT_ID('dbo.GetStoreSales')) IS NOT NULL&lt;br /&gt;DROP PROC dbo.GetStoreSales&lt;br /&gt;GO&lt;br /&gt;CREATE PROC dbo.GetStoreSales&lt;br /&gt;@StoreID int&lt;br /&gt;AS&lt;br /&gt;SELECT&lt;br /&gt;s.Name StoreName,&lt;br /&gt;soh.OrderDate,&lt;br /&gt;soh.TotalDue,&lt;br /&gt;soh.PurchaseOrderNumber&lt;br /&gt;FROM Sales.SalesOrderHeader soh&lt;br /&gt;INNER JOIN Sales.Customer c&lt;br /&gt;ON soh.CustomerID = c.CustomerID&lt;br /&gt;INNER JOIN Sales.Store s&lt;br /&gt;ON c.StoreID = s.BusinessEntityID&lt;br /&gt;WHERE&lt;br /&gt;c.StoreID = @StoreID&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&lt;strong&gt;Script (1-1)&lt;/strong&gt;&lt;/p&gt;&lt;table border="3" cellspacing="0" cellpadding="2" width="400"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td valign="top" width="400"&gt;&lt;p&gt;USE AdventureWorks2008&lt;br /&gt;GO&lt;br /&gt;IF(OBJECT_ID('dbo.GetStores')) IS NOT NULL&lt;br /&gt;DROP PROC dbo.GetStores&lt;br /&gt;GO&lt;br /&gt;CREATE PROC dbo.GetStores&lt;br /&gt;AS&lt;br /&gt;SELECT&lt;br /&gt;BusinessEntityID,&lt;br /&gt;Name&lt;br /&gt;FROM Sales.Store&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&lt;strong&gt;Script (2-1)&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;The Report&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;Now that the stored procedures are created let’s create the report. Using Business Intelligence Development Studio (BIDS) create new report project. Add a share data source to the project. In this example the data source will connect to the AdventureWorks2008 database. Next add a new report to the project. The solution explorer should look similar to Figure 1-1.&lt;/p&gt;&lt;p&gt;&lt;a href="http://lh6.ggpht.com/_barBiSO8ITc/TBVf4cpHZNI/AAAAAAAAAKo/Sdpcy2AblfY/s1600-h/image2.png"&gt;&lt;img style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" title="image" border="0" alt="image" src="http://lh6.ggpht.com/_barBiSO8ITc/TBVf4wHVcjI/AAAAAAAAAKs/Hb05_PZlBUY/image_thumb.png?imgmax=800" width="244" height="225" /&gt;&lt;/a&gt; &lt;/p&gt;&lt;p&gt;&lt;strong&gt;Figure 1-1&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;Now you must create two data sets. First, on the Report Data tab add a new data source using the Share Data Source that was created earlier. Then right-click on the new data source and select Add Dataset. The Dataset Properties window will appear. Name the data set Stores, select the radio button labeled stored procedure and choose the GetStores stored procedure from the drop down list. Your Dataset Properties screen should resemble Figure 1-2.&lt;/p&gt;&lt;p&gt;&lt;a href="http://lh6.ggpht.com/_barBiSO8ITc/TBVf50qFSyI/AAAAAAAAAKw/-gSJeQMlmH0/s1600-h/image7.png"&gt;&lt;img style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" title="image" border="0" alt="image" src="http://lh4.ggpht.com/_barBiSO8ITc/TBVf6Uy1OsI/AAAAAAAAAK0/L4H4V9HcPgw/image_thumb3.png?imgmax=800" width="389" height="396" /&gt;&lt;/a&gt; &lt;/p&gt;&lt;p&gt;&lt;strong&gt;Figure 1-2&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;Repeat the above steps that were used to create the Stores data set to create the second data set. The only difference is that you will choose GetStoreSales from the stored procedure drop down list and name the dataset GetStoreSales. Since the stored procedure contains a parameter a parameter is automatically added to your report. Expand the Parameters folder and you will notice a StoreID parameter in the listing (Figure 1-3).&lt;/p&gt;&lt;p&gt;&lt;a href="http://lh6.ggpht.com/_barBiSO8ITc/TBVf6jFanlI/AAAAAAAAAK4/rGnwTnjVa6s/s1600-h/image11.png"&gt;&lt;img style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" title="image" border="0" alt="image" src="http://lh4.ggpht.com/_barBiSO8ITc/TBVf7MOCP7I/AAAAAAAAAK8/ygIZUjV2lXw/image_thumb5.png?imgmax=800" width="349" height="92" /&gt;&lt;/a&gt; &lt;/p&gt;&lt;p&gt;&lt;strong&gt;Figure 1-3&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;Double click the parameter and the Report Parameter Properties window will appear (Figure 1-4)&lt;/p&gt;&lt;p&gt;&lt;a href="http://lh6.ggpht.com/_barBiSO8ITc/TBVf7Y_P1XI/AAAAAAAAALA/3cCWoJj5SFk/s1600-h/image16.png"&gt;&lt;img style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" title="image" border="0" alt="image" src="http://lh5.ggpht.com/_barBiSO8ITc/TBVf8LJft1I/AAAAAAAAALE/eDgFalEh8gc/image_thumb8.png?imgmax=800" width="395" height="324" /&gt;&lt;/a&gt; &lt;/p&gt;&lt;p&gt;&lt;strong&gt;Figure 1-4&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;Change the value in the textbox labeled Prompt to Choose Store. Click &lt;strong&gt;Available Values&lt;/strong&gt; in the left navigation pane. Select the radio button labeled &lt;strong&gt;Get values from a query&lt;/strong&gt;. Then select &lt;strong&gt;Stores&lt;/strong&gt; from Dataset drop down list, select &lt;strong&gt;BusinessEntityID&lt;/strong&gt; from the Value field drop down list and select &lt;strong&gt;Name&lt;/strong&gt; from the Label fields drop down list. Click OK. The screen should resemble Figure 1-5.&lt;/p&gt;&lt;p&gt;&lt;a href="http://lh6.ggpht.com/_barBiSO8ITc/TBVf8RFva3I/AAAAAAAAALI/jYzla_R3mvw/s1600-h/image20.png"&gt;&lt;img style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" title="image" border="0" alt="image" src="http://lh5.ggpht.com/_barBiSO8ITc/TBVf9HUXDTI/AAAAAAAAALM/ucg9l6bII8c/image_thumb10.png?imgmax=800" width="408" height="336" /&gt;&lt;/a&gt; &lt;/p&gt;&lt;p&gt;&lt;strong&gt;Figure 1-5&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;Now click the Toolbox tab and drag a table onto the Report design surface. Click back on the Report Data tab drag the columns from the StoreSales dataset onto the table that you want to include in your report. Once you have added all the columns Preview your report. You will notice a drop down list at the top of the report labeled Choose Store. Select the store that you want to filter the report by and click the button labeled View Report. The table will contain only data for stores that match the selected value in the drop down list (Figure 1-6).&lt;/p&gt;&lt;p&gt;&lt;a href="http://lh4.ggpht.com/_barBiSO8ITc/TBVf953TbWI/AAAAAAAAALQ/S7r-nY4OdI0/s1600-h/image25.png"&gt;&lt;img style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" title="image" border="0" alt="image" src="http://lh5.ggpht.com/_barBiSO8ITc/TBVf-WaCjtI/AAAAAAAAALU/GGs-YMJQ7dI/image_thumb13.png?imgmax=800" width="769" height="287" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;strong&gt;Figure 1-6&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;I know that this may be obvious or common place for most of us. However, for those of you just getting started with reporting service I hope this helps you out. As always, if you have any questions or comments about this posting please feel free to email me at &lt;a href="mailto:pleblanc@pragmaticworks.com"&gt;pleblanc@pragmaticworks.com&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;Talk to you soon.&lt;/p&gt;&lt;p&gt;Patrick LeBlanc, MCTS&lt;/p&gt;&lt;p&gt;Founder &lt;a href="http://www.tsqlscripts.com/"&gt;http://www.tsqlscripts.com/&lt;/a&gt; and &lt;a href="http://www.sqllunch.com/"&gt;http://www.sqllunch.com/&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;Visit &lt;a href="http://www.bidn.com/"&gt;http://www.bidn.com/&lt;/a&gt;, Bring Business Intelligence to your company.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2046028067618905204-1562589817928342734?l=sqldownsouth.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sqldownsouth.blogspot.com/feeds/1562589817928342734/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sqldownsouth.blogspot.com/2010/06/parameterized-report-using-stored.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2046028067618905204/posts/default/1562589817928342734'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2046028067618905204/posts/default/1562589817928342734'/><link rel='alternate' type='text/html' href='http://sqldownsouth.blogspot.com/2010/06/parameterized-report-using-stored.html' title='Parameterized Report using a Stored Procedure'/><author><name>Patrick LeBlanc</name><uri>http://www.blogger.com/profile/01738972122068246140</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_barBiSO8ITc/TGG9UkphClI/AAAAAAAAAPY/dGyatbRnf0Y/S220/PatrickHeadShotFull.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh6.ggpht.com/_barBiSO8ITc/TBVf4wHVcjI/AAAAAAAAAKs/Hb05_PZlBUY/s72-c/image_thumb.png?imgmax=800' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2046028067618905204.post-573480191706581616</id><published>2010-06-10T15:19:00.001-07:00</published><updated>2010-06-10T15:19:28.611-07:00</updated><title type='text'>SQL Lunch Events</title><content type='html'>&lt;p&gt;We are scheduling more and more events daily on the &lt;a href="http://www.sqllunch.com/"&gt;SQL Lunch&lt;/a&gt;.&amp;#160; Just as a reminder here are a few of the upcoming events that will be broadcasted soon on the SQL Lunch.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;a href="http://sqllunch.com/Meeting.aspx?lunchid=22"&gt;SQL Lunch #22&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Date and Time: 6/04/2010 11:30 AM CST&lt;/p&gt;  &lt;p&gt;Event URL:&amp;#160; &lt;a title="https://www.livemeeting.com/cc/usergroups/join?id=GR2N9J&amp;amp;role=attend" href="https://www.livemeeting.com/cc/usergroups/join?id=GR2N9J&amp;amp;role=attend"&gt;https://www.livemeeting.com/cc/usergroups/join?id=GR2N9J&amp;amp;role=attend&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Presenter:&amp;#160; Thomas LeBlanc&lt;/p&gt;  &lt;p&gt;Topic:&amp;#160; &lt;a href="http://sqllunch.com/Meeting.aspx?lunchid=22"&gt;Adding Columns to a Large Table with Transactional Replication and Database Mirroring&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Description:&amp;#160; SQL Server 2005 updated replication with the ability to have schema changes replicated to subscriptions. This seemed to be a great solution to custom software releases. You could ALTER a table and the changes would magically appear on the subscriber. Life was great. Also in 2005, database mirroring came along to help with High Availability to a Disaster Recovery site. Life got even better. The problem is with large tables and Tlog heavy changes. This is a step by step process we use to release software to these large tables.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;a href="http://sqllunch.com/Meeting.aspx?lunchid=23"&gt;SQL Lunch #23&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Date and Time: 7/12/2010 11:30 AM CST&lt;/p&gt;  &lt;p&gt;Event URL: &lt;a title="https://www.livemeeting.com/cc/usergroups/join?id=TR5QJM&amp;amp;role=attend" href=" https://www.livemeeting.com/cc/usergroups/join?id=TR5QJM&amp;amp;role=attend"&gt;https://www.livemeeting.com/cc/usergroups/join?id=TR5QJM&amp;amp;role=attend&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Presenter:&amp;#160; Patrick LeBlanc&lt;/p&gt;  &lt;p&gt;Topic:&amp;#160; &lt;a href="http://sqllunch.com/Meeting.aspx?lunchid=23"&gt;SSRS R2 – Shared DataSets and Report Parts&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Description:&amp;#160; SQL Server Reporting Services 2008 R2 introduced two new capabilities. Developers now have the ability to publish Data Sets and Report Parts (tables, charts, etc) as items that can be used by individuals building reports using Report Builder 3.0. In today’s session Patrick LeBlanc will show you how to create Shared Data Sets and Report Parts. He will then explain how to publish these items out to a Report Server. Using Report Builder 3.0, he will also show you how your end-users can use these items when building their own reports.&lt;/p&gt;  &lt;p&gt;If you have time, try to attend these events.&amp;#160; If you are interested in speaking at any of these events please email me at &lt;a href="mailto:pleblanc@sqllunch.com"&gt;pleblanc@sqllunch.com&lt;/a&gt;.&amp;#160; &lt;/p&gt;  &lt;p&gt;Talk to you soon,&lt;/p&gt;  &lt;p&gt;Patrick LeBlanc&lt;/p&gt;  &lt;p&gt;Founder &lt;a href="http://www.TSQLScripts.com"&gt;www.TSQLScripts.com&lt;/a&gt; and &lt;a href="http://www.SQLLunch.com"&gt;www.SQLLunch.com&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;Visit &lt;a href="http://www.BIDN.com"&gt;www.BIDN.com&lt;/a&gt;, Bring Business Intelligence to your company.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2046028067618905204-573480191706581616?l=sqldownsouth.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sqldownsouth.blogspot.com/feeds/573480191706581616/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sqldownsouth.blogspot.com/2010/06/sql-lunch-events.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2046028067618905204/posts/default/573480191706581616'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2046028067618905204/posts/default/573480191706581616'/><link rel='alternate' type='text/html' href='http://sqldownsouth.blogspot.com/2010/06/sql-lunch-events.html' title='SQL Lunch Events'/><author><name>Patrick LeBlanc</name><uri>http://www.blogger.com/profile/01738972122068246140</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_barBiSO8ITc/TGG9UkphClI/AAAAAAAAAPY/dGyatbRnf0Y/S220/PatrickHeadShotFull.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2046028067618905204.post-1246111693555412505</id><published>2010-06-08T12:48:00.001-07:00</published><updated>2010-06-08T12:48:59.854-07:00</updated><title type='text'>SQL Saturday #22 Pensacola Recap</title><content type='html'>&lt;p&gt;Saturday I drove up to Pensacola for SQL Saturday #22.&amp;#160; Me and several others from Baton Rouge, including my two kids left Baton Rouge around 3AM.&amp;#160; &lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/_barBiSO8ITc/TA6eqXFuUTI/AAAAAAAAAKg/1uozx4FT3Uo/s1600-h/IMG_05395.jpg"&gt;&lt;img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="IMG_0539" border="0" alt="IMG_0539" src="http://lh3.ggpht.com/_barBiSO8ITc/TA6eqxFJRKI/AAAAAAAAAKk/zrnPgaqs2Z8/IMG_0539_thumb3.jpg?imgmax=800" width="379" height="266" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;We arrived at SQLSat22 around 7:30AM.&amp;#160; We registered and had a few donuts.&amp;#160; Then Patrick Jr. (9), Kalyn (5) and myself headed to Steve Jones’s 7:30 am Session, Basic SQL Server.&amp;#160; After that, I realized that the image for my 10:15 session,Introduction to SharePoint 2010 BI and PowerPivot, was not working.&amp;#160; As a result, I needed to find Karla Landrum (SQLSat22 fearless leader) to let here know that I needed to change the session.&amp;#160; &lt;/p&gt;  &lt;p&gt;So instead of attending a session I went through a few of my presentations and narrowed the list to two.&amp;#160; I allowed the room of attendees to vote between Introduction to SQL Profiler or SQL Server Compression.&amp;#160; It was unanimous, the Profiler.&amp;#160; I had given the presentation a couple of times so it went off without a hitch.&amp;#160; Well at least until my little girl, Kalyn, decided that she wanted to co-present.&amp;#160; Good times for all, that’s all I can say.&lt;/p&gt;  &lt;p&gt;Next I attended, &lt;a href="http://blogs.msdn.com/b/repltalk/"&gt;Chris Skorlinski&lt;/a&gt;, session &lt;a href="http://sqlsaturday.com/viewsession.aspx?sat=22&amp;amp;sessionid=1702"&gt;Introduction to Change Data Capture&lt;/a&gt;.&amp;#160; This was a great session.&amp;#160; I was able to take information from his session to improve my second session.&amp;#160; I did not have time to make the changes before my session, but the changes will be added before I give it again.&amp;#160; After that it was time for a vendor session and lunch.&amp;#160; I attended the FusionIO session, and it was very interesting.&amp;#160; &lt;/p&gt;  &lt;p&gt;Finally, it was time for the best session of the day, &lt;a href="http://sqlsaturday.com/viewsession.aspx?sat=22&amp;amp;sessionid=1655"&gt;CDC+SSIS=SCD&lt;/a&gt;.&amp;#160; I quote my good friend &lt;a href="http://www.timmitchell.net/"&gt;Tim Mitchell&lt;/a&gt;, “the most entertaining hour of the day”.&amp;#160; To my surprise there were more speakers in the session than attendees.&amp;#160; They waited for me to fail, but to their disappointment it was a complete success.&amp;#160; I have to say thanks to Tim Mitchell for saving the day, when my little girl interrupted again,“Dad my tooth fell out”.&amp;#160; He helped me by helping her rinse it out and wrap it in some tissue for the Tooth Fairy. I am going to make the presentation even better in the weeks to come.&amp;#160; If you did not have a chance to join us, I have submitted it to PASS and hopefully it will be selected.&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;This was my second time Speaking at SQL Saturday in Pensacola and it was a great event.&amp;#160; Karla and her team did a great job.&amp;#160; There were several well known speakers at the event, Brad McGehee, Kevin Kline, Steve Jones, Trevor Barkhouse, Joe Healy, Troy Gallant, Devin Knight, Barry Ralston, Tim Mitchell, Joe Webb and many more.&amp;#160; This was a great event for our Technology Community in Baton Rouge, We had four speakers (William Assaf, Cody Gros, Brian Rigsby, and myself) that made the trip to Pensacola.&amp;#160; Unfortunately, I had to leave when my session was over, but I am sure the remainder of the day was awesome.&amp;#160; &lt;/p&gt;  &lt;p&gt;Talk to you soon,&lt;/p&gt;  &lt;p&gt;Patrick LeBlanc&lt;/p&gt;  &lt;p&gt;Founder &lt;a href="http://www.TSQLScripts.com"&gt;www.TSQLScripts.com&lt;/a&gt; and &lt;a href="http://www.SQLLunch.com"&gt;www.SQLLunch.com&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;Visit &lt;a href="http://www.BIDN.com"&gt;www.BIDN.com&lt;/a&gt;, Bring Business Intelligence to your company.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2046028067618905204-1246111693555412505?l=sqldownsouth.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sqldownsouth.blogspot.com/feeds/1246111693555412505/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sqldownsouth.blogspot.com/2010/06/sql-saturday-22-pensacola-recap.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2046028067618905204/posts/default/1246111693555412505'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2046028067618905204/posts/default/1246111693555412505'/><link rel='alternate' type='text/html' href='http://sqldownsouth.blogspot.com/2010/06/sql-saturday-22-pensacola-recap.html' title='SQL Saturday #22 Pensacola Recap'/><author><name>Patrick LeBlanc</name><uri>http://www.blogger.com/profile/01738972122068246140</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_barBiSO8ITc/TGG9UkphClI/AAAAAAAAAPY/dGyatbRnf0Y/S220/PatrickHeadShotFull.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh3.ggpht.com/_barBiSO8ITc/TA6eqxFJRKI/AAAAAAAAAKk/zrnPgaqs2Z8/s72-c/IMG_0539_thumb3.jpg?imgmax=800' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2046028067618905204.post-3312989792941515373</id><published>2010-06-06T20:37:00.001-07:00</published><updated>2010-06-06T20:37:42.236-07:00</updated><title type='text'>Inventory SQL Servers with CLR Function</title><content type='html'>&lt;p&gt;In an enterprise with several SQL Server instances it is pivotal that you keep track of each instance and its corresponding properties. Properties such as, name, version, service pack level, is it clustered, etc… I have implemented and read about several approaches that will assist in collecting this information. My first implementation involved creating a DTS package, yes DTS Package, in which I created a connection to every instance and imported the information into a centralized repository. Each time a new server was added I would create new connection and import the data from that server&lt;/p&gt;  &lt;p&gt;When SSIS was introduced I converted my DTS package to an SSIS package. The process was exactly the same. The package contained a data flow that connected to every instance and similar to the DTS package the data was imported into a centralized repository. The following image depicts a data flow layout similar to my SSIS package:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/_barBiSO8ITc/TAaCgWCidwI/AAAAAAAAAJ4/UYvUHSRrg_g/s1600-h/clip_image0024.jpg"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="clip_image002" border="0" alt="clip_image002" src="http://lh6.ggpht.com/_barBiSO8ITc/TAaCg_os7UI/AAAAAAAAAJ8/NWrn8orvpCE/clip_image002_thumb1.jpg?imgmax=800" width="521" height="312" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;As the environment grew, it became very cumbersome to add a new connection every time a new server was added. Therefore, I modified the package to utilize a dynamic connection. This removed the need to add a connection each time a new server was added. I created a table that contained a list of instance names. Using a Foreach Loop container, I iterated over the list and imported the data for each instance. Instead of adding a connection I simply inserted the instance name into the table.&lt;/p&gt;  &lt;p&gt;This approach worked well until I decided I wanted to learn how to write a CLR table-valued function. I have to admit, this blog post started out as an article, but after trying to explain the details of the C# code I deferred to writing a short blog post. The function accepts one parameter, which is the SQL Server instance. The instance is used to create a dynamic connection, which can be seen below in the code snippet from the function:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/_barBiSO8ITc/TAaCiJnLfQI/AAAAAAAAAKA/U8bm2d8o3iY/s1600-h/clip_image0044.jpg"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="clip_image004" border="0" alt="clip_image004" src="http://lh4.ggpht.com/_barBiSO8ITc/TAaCikzLoWI/AAAAAAAAAKE/3qEC2tAOTJQ/clip_image004_thumb1.jpg?imgmax=800" width="609" height="34" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Then, using the above-mentioned connection a query is run that will pull the required information from the server. The query uses the SERVERPROPERTY scalar function to retrieve the information. See the following code snippet:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/_barBiSO8ITc/TAaCjXjlpZI/AAAAAAAAAKI/-Bfxx4mGuwY/s1600-h/clip_image0068.jpg"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="clip_image006" border="0" alt="clip_image006" src="http://lh5.ggpht.com/_barBiSO8ITc/TAaCk0mzTeI/AAAAAAAAAKQ/IbrmtxlhUmE/clip_image006_thumb5.jpg?imgmax=800" width="556" height="180" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;If you are interested in viewing the code in its entirety, feel free to &lt;a href="http://www.bidn.com/Assets/Uploaded-CMS-Files/7752d449-7002-4584-b57e-188aada0d054SQLServerInventory.zip"&gt;download&lt;/a&gt; load it. You can deploy the function directly from the project. Before you deploy, ensure that you have enabled the CLR and set the database to trustworthy. Use the following script to enable the settings: &lt;/p&gt;  &lt;table border="1" cellspacing="0" cellpadding="2" width="400"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign="top" width="400"&gt;use master          &lt;br /&gt;go           &lt;br /&gt;exec sp_configure 'clr enabled','1'           &lt;br /&gt;go           &lt;br /&gt;reconfigure           &lt;br /&gt;go           &lt;br /&gt;alter database &amp;lt;databasename&amp;gt;           &lt;br /&gt;set trustworthy on           &lt;br /&gt;go&lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;Finally, before deploying right-click on the project and select Properties. When the Properties tab is activated click on Database and click the browse button next to the Connection String text box. Either select an existing database or create a connection to the database where you want to deploy the function. Then select External from the drop down list labeled Permission Level. See the following for an example:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/_barBiSO8ITc/TAaCmELdmoI/AAAAAAAAAKU/1Y1zHMZXfb0/s1600-h/clip_image0085.jpg"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="clip_image008" border="0" alt="clip_image008" src="http://lh6.ggpht.com/_barBiSO8ITc/TAaCmpaRexI/AAAAAAAAAKY/moLTSHut_rs/clip_image008_thumb2.jpg?imgmax=800" width="590" height="336" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;Now that everything is configured deploy the function and begin using it. To test the function use the following script: &lt;/p&gt;  &lt;table border="1" cellspacing="0" cellpadding="2" width="400"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign="top" width="400"&gt;         &lt;p&gt;SELECT *FROM dbo.SQLServerProperties('SQL INSTANCE NAME')&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;I created a stored procedure that uses a MERGE statement to ensure that the data remains consistent each time the query is run, which is included in the download file. Lastly, I scheduled a job that runs the stored procedure on a nightly basis to capture the information from each server. One thing to note is that the account running the SQL Server where the function is deployed must have permission on the SQL Servers where it is pulling information. &lt;/p&gt;  &lt;p&gt;I am far from a C# coder so after downloading the sample project, if you find ways to improve my code please do so. All I ask is that you send me the updated code. If you have any questions or concerns regarding this document please feel free to email me at &lt;a href="mailto:pleblanc@pragmaticworks.com"&gt;pleblanc@pragmaticworks.com&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;Download: &lt;a href="http://www.bidn.com/Assets/Uploaded-CMS-Files/7752d449-7002-4584-b57e-188aada0d054SQLServerInventory.zip"&gt;ServerInventory&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Talk to you soon,&lt;/p&gt;  &lt;p&gt;Patrick LeBlanc, MCTS&lt;/p&gt;  &lt;p&gt;Founder &lt;a href="http://www.TSQLScripts.com"&gt;www.TSQLScripts.com&lt;/a&gt; and &lt;a href="http://www.SQLLunch.com"&gt;www.SQLLunch.com&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;Visit &lt;a href="http://www.BIDN.com"&gt;www.BIDN.com&lt;/a&gt;, Bring Business Intelligence to your company.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2046028067618905204-3312989792941515373?l=sqldownsouth.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sqldownsouth.blogspot.com/feeds/3312989792941515373/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sqldownsouth.blogspot.com/2010/06/inventory-sql-servers-with-clr-function.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2046028067618905204/posts/default/3312989792941515373'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2046028067618905204/posts/default/3312989792941515373'/><link rel='alternate' type='text/html' href='http://sqldownsouth.blogspot.com/2010/06/inventory-sql-servers-with-clr-function.html' title='Inventory SQL Servers with CLR Function'/><author><name>Patrick LeBlanc</name><uri>http://www.blogger.com/profile/01738972122068246140</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_barBiSO8ITc/TGG9UkphClI/AAAAAAAAAPY/dGyatbRnf0Y/S220/PatrickHeadShotFull.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh6.ggpht.com/_barBiSO8ITc/TAaCg_os7UI/AAAAAAAAAJ8/NWrn8orvpCE/s72-c/clip_image002_thumb1.jpg?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2046028067618905204.post-8283697481847312918</id><published>2010-06-01T04:55:00.001-07:00</published><updated>2010-06-01T04:55:20.340-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SQLLunch'/><category scheme='http://www.blogger.com/atom/ns#' term='Speaking'/><category scheme='http://www.blogger.com/atom/ns#' term='Presenting'/><title type='text'>SQL Lunch Call for Speakers – Quarter 3</title><content type='html'>&lt;p&gt;One of my quarterly goals is to get speakers for the &lt;a href="http://www.sqllunch.com/"&gt;SQL Lunch&lt;/a&gt; webcasts.&amp;#160; Q1 and Q2 of 2010 are in the books, so its time to start working on Q3.&amp;#160; To all of you out there who want to share your knowledge with all of us, please send an email to &lt;a href="mailto:webmaster@sqllunch.com"&gt;webmaster@sqllunch.com&lt;/a&gt; if you are interested in speaking on the &lt;a href="http://www.sqllunch.com/"&gt;SQL Lunch&lt;/a&gt;.&amp;#160; Include a short bio, the topic that you want to discuss and a brief description of the topic.&amp;#160; Please attach a head shot so I can share your picture with the world.&amp;#160; Remember the SQL Lunch webcasts are 30 minutes or less.&amp;#160;&amp;#160; It does not matter if you are&amp;#160; a seasoned speaker or a new speaker, we at the SQL Lunch welcome you with open arms.&amp;#160; &lt;/p&gt;  &lt;p&gt;Talk to you soon,&lt;/p&gt;  &lt;p&gt;Patrick LeBlanc, MCTS&lt;/p&gt;  &lt;p&gt;Founder &lt;a href="http://www.TSQLScripts.com"&gt;www.TSQLScripts.com&lt;/a&gt; and &lt;a href="http://www.SQLLunch.com"&gt;www.SQLLunch.com&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;Visit &lt;a href="http://www.BIDN.com"&gt;www.BIDN.com&lt;/a&gt;, Bring Business Intelligence to your company.&lt;/p&gt;  &lt;p&gt;twitter:&amp;#160; @sqllunch, @patrickdba&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2046028067618905204-8283697481847312918?l=sqldownsouth.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sqldownsouth.blogspot.com/feeds/8283697481847312918/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sqldownsouth.blogspot.com/2010/06/sql-lunch-call-for-speakers-quarter-3.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2046028067618905204/posts/default/8283697481847312918'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2046028067618905204/posts/default/8283697481847312918'/><link rel='alternate' type='text/html' href='http://sqldownsouth.blogspot.com/2010/06/sql-lunch-call-for-speakers-quarter-3.html' title='SQL Lunch Call for Speakers – Quarter 3'/><author><name>Patrick LeBlanc</name><uri>http://www.blogger.com/profile/01738972122068246140</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_barBiSO8ITc/TGG9UkphClI/AAAAAAAAAPY/dGyatbRnf0Y/S220/PatrickHeadShotFull.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2046028067618905204.post-2480469804063403039</id><published>2010-05-26T04:23:00.001-07:00</published><updated>2010-05-26T04:23:07.991-07:00</updated><title type='text'>Connecting to DB2 using SSIS</title><content type='html'>&lt;p&gt;To start, first download and install the Microsoft OLE DB Provider for DB2. Click &lt;a href="http://go.microsoft.com/fwlink/?LinkId=123713&amp;amp;clcid=0x409"&gt;here&lt;/a&gt; to download. After it is installed I suggest rebooting your machine. In some cases a reboot is not required; however I have encountered problems without rebooting.&lt;/p&gt;  &lt;p&gt;Next open an SSIS project and create a new data source. On the Connection Manager screen select Microsoft OLE DB Provider for DB2 from the drop down list labeled Provider. In the text box labeled Server or file name enter the IP address of your server. Then select the radio button labeled Use a specific user name and password. Enter you user name and password and select the checkbox labeled allow saving password if you want to persist those values. Then enter you database name in the drop down list labeled Initial Catalog.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/_barBiSO8ITc/S_0EjP_bxAI/AAAAAAAAAJY/iCg9ahHDruc/s1600-h/clip_image0024.jpg"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="clip_image002" border="0" alt="clip_image002" src="http://lh3.ggpht.com/_barBiSO8ITc/S_0Ejos_6iI/AAAAAAAAAJc/AvvEAp9LNOA/clip_image002_thumb1.jpg?imgmax=800" width="310" height="316" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Now you must click the button labeled Data Links. The Data Source, User Name and Initial Catalog textboxes should be populated. You will only need to enter values for the textboxes labeled Package Collection and Default Schema. Enter your database schema in both textboxes.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/_barBiSO8ITc/S_0EkI4QNDI/AAAAAAAAAJg/mNH1VFZ7V-U/s1600-h/clip_image0045.jpg"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="clip_image004" border="0" alt="clip_image004" src="http://lh4.ggpht.com/_barBiSO8ITc/S_0Ek4m_vWI/AAAAAAAAAJk/gLbUJbvka8Q/clip_image004_thumb2.jpg?imgmax=800" width="306" height="385" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Then click on the Advanced tab and check the box labeled Process binary as character.&amp;#160; To understand why you need to do this please read, &lt;a href="http://bidn.com/blogs/AlbertoMunera/bidn-blog/255/how-to-retrieve-ibm-as400-jd-edwards-%E2%80%9Cfor-bit-data%E2%80%9D-via-ssis"&gt;How to Retrieve IBM AS 400 /JD Edwards “for bit data” via SSIS&lt;/a&gt;, by Alberto Munera.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/_barBiSO8ITc/S_0ElerF8DI/AAAAAAAAAJo/x011A8fC-H0/s1600-h/image3.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://lh5.ggpht.com/_barBiSO8ITc/S_0EmBMnHWI/AAAAAAAAAJs/_ZkAWjZdxFM/image_thumb1.png?imgmax=800" width="324" height="408" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Now click on the ellipses next to the Network drop down list and enter your IP address in the textbox labeled IP Address.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/_barBiSO8ITc/S_0EmWcyt1I/AAAAAAAAAJw/1m0NUz387P8/s1600-h/clip_image0064.jpg"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="clip_image006" border="0" alt="clip_image006" src="http://lh3.ggpht.com/_barBiSO8ITc/S_0EmzeayKI/AAAAAAAAAJ0/uYGDUj8K2Y4/clip_image006_thumb1.jpg?imgmax=800" width="387" height="136" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Click Ok twice and you will be returned to the Connection Manager Screen. Click the button labeled Test Connection to verify that your settings are correct. Now that you have a successful connection to your DB2 database click OK and the data source is ready to use. I have to give credit to my colleagues at TBC for assisting me in putting this document together, thanks Roberto and Chad.&lt;/p&gt;  &lt;p&gt;Talk to you soon,&lt;/p&gt;  &lt;p&gt;Patrick LeBlanc, MCTS&lt;/p&gt;  &lt;p&gt;Founder &lt;a href="http://www.TSQLScripts.com"&gt;www.TSQLScripts.com&lt;/a&gt; and &lt;a href="http://www.SQLLunch.com"&gt;www.SQLLunch.com&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;Visit &lt;a href="http://www.BIDN.com"&gt;www.BIDN.com&lt;/a&gt;, Bring Business Intelligence to your company.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2046028067618905204-2480469804063403039?l=sqldownsouth.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sqldownsouth.blogspot.com/feeds/2480469804063403039/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sqldownsouth.blogspot.com/2010/05/connecting-to-db2-using-ssis.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2046028067618905204/posts/default/2480469804063403039'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2046028067618905204/posts/default/2480469804063403039'/><link rel='alternate' type='text/html' href='http://sqldownsouth.blogspot.com/2010/05/connecting-to-db2-using-ssis.html' title='Connecting to DB2 using SSIS'/><author><name>Patrick LeBlanc</name><uri>http://www.blogger.com/profile/01738972122068246140</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_barBiSO8ITc/TGG9UkphClI/AAAAAAAAAPY/dGyatbRnf0Y/S220/PatrickHeadShotFull.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh3.ggpht.com/_barBiSO8ITc/S_0Ejos_6iI/AAAAAAAAAJc/AvvEAp9LNOA/s72-c/clip_image002_thumb1.jpg?imgmax=800' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2046028067618905204.post-9182668348157430898</id><published>2010-05-23T16:51:00.001-07:00</published><updated>2010-05-23T16:51:05.262-07:00</updated><title type='text'>Upcoming SQL Events</title><content type='html'>&lt;p&gt;I realized this morning that I will be participating in three SQL Events this week and I want to share the event information with everyone.&amp;#160; Two of the events are available online and the other is a local user group meeting.&amp;#160; If you have time logon onto one of the webcasts or join me at the &lt;a href="http://batonrouge.sqlpass.org/"&gt;Baton Rouge SQL Server User Group&lt;/a&gt;.&amp;#160; The events are as follows:&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;a href="http://batonrouge.sqlpass.org/"&gt;&lt;u&gt;Baton Rouge SQL Server User Group&lt;/u&gt;&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Date and Time: 5/25/2010 5:45 PM CST&lt;/p&gt;  &lt;p&gt;Event Location:&amp;#160; Lamar Advertising, 5551 Corporate BLVD, Baton Rouge, LA 70808&lt;/p&gt;  &lt;p&gt;Presenter:&amp;#160; William Assaf&lt;/p&gt;  &lt;p&gt;Description:&amp;#160; What are DMV's in SQL 2005/2008, and how can you use them to improve query performance, discover indexing needs and more?&amp;#160; Dynamic Management Views are essential tools for the SQL 2005/2008 administrator but have a wide range of applications by developers, network engineers and DBAs. &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;a href="http://www.sqlpass.org/Events/ctl/ViewEvent/mid/521.aspx?ID=349"&gt;&lt;u&gt;SQL PASS Appdev Presents&lt;/u&gt;&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Date and Time:&amp;#160; 5/25/2010 8:00 AM EST&lt;/p&gt;  &lt;p&gt;Event URL:&amp;#160; &lt;a href="https://www.livemeeting.com/cc/usergroups/join?id=PRNP75&amp;amp;role=attend"&gt;https://www.livemeeting.com/cc/usergroups/join?id=PRNP75&amp;amp;role=attend &lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Presenter:&amp;#160; Patrick LeBlanc &lt;/p&gt;  &lt;p&gt;Topic:&amp;#160; Introduction to SQL Profiler&lt;/p&gt;  &lt;p&gt;Description: The SQL Server Profiler is a powerful, but underused tool. Often developers and some DBAs don’t realize the potential the tool has to offer. In this session I will show you how to use the tool to identify poor performing queries. I will also detail steps that can be used to identify blocking and deadlocking. Finally, I will provide sample scripts and methods that can be used to proactively monitor your SQL Server for inefficient queries and stored procedures.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;u&gt;&lt;a href="http://www.sqllunch.com/"&gt;SQL Lunch&lt;/a&gt;&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Date and Time:&amp;#160; 5/25/2010 11:30 AM CST&lt;/p&gt;  &lt;p&gt;Event URL:&amp;#160; &lt;a title="https://www.livemeeting.com/cc/usergroups/join?id=Q5CP7H&amp;amp;role=attend" href="https://www.livemeeting.com/cc/usergroups/join?id=Q5CP7H&amp;amp;role=attend"&gt;https://www.livemeeting.com/cc/usergroups/join?id=Q5CP7H&amp;amp;role=attend&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Presenter:&amp;#160; Max Trinidad&lt;/p&gt;  &lt;p&gt;Topic:&amp;#160; SQL Server and PowerShell Working w/Databases&lt;/p&gt;  &lt;p&gt;Description:&amp;#160; Looking into using SQLPS.exe how to work with databases on multiple SQL Servers. See How-To Configure your PowerShell profile to make your scripting environment more productive. This session will have a lot of samples&amp;quot;.&lt;/p&gt;  &lt;p&gt;If you have time, try to attend these events.&amp;#160; If you are interested in speaking at any of these events please email me at &lt;a href="mailto:pleblanc@sqllunch.com"&gt;pleblanc@sqllunch.com&lt;/a&gt;.&amp;#160; &lt;/p&gt;  &lt;p&gt;Talk to you soon,&lt;/p&gt;  &lt;p&gt;Patrick LeBlanc, MCTS&lt;/p&gt;  &lt;p&gt;Founder &lt;a href="http://www.TSQLScripts.com"&gt;www.TSQLScripts.com&lt;/a&gt; and &lt;a href="http://www.SQLLunch.com"&gt;www.SQLLunch.com&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;Visit &lt;a href="http://www.BIDN.com"&gt;www.BIDN.com&lt;/a&gt;, Bring Business Intelligence to your company.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2046028067618905204-9182668348157430898?l=sqldownsouth.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sqldownsouth.blogspot.com/feeds/9182668348157430898/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sqldownsouth.blogspot.com/2010/05/upcoming-sql-events.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2046028067618905204/posts/default/9182668348157430898'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2046028067618905204/posts/default/9182668348157430898'/><link rel='alternate' type='text/html' href='http://sqldownsouth.blogspot.com/2010/05/upcoming-sql-events.html' title='Upcoming SQL Events'/><author><name>Patrick LeBlanc</name><uri>http://www.blogger.com/profile/01738972122068246140</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_barBiSO8ITc/TGG9UkphClI/AAAAAAAAAPY/dGyatbRnf0Y/S220/PatrickHeadShotFull.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2046028067618905204.post-8196630757718628629</id><published>2010-05-18T16:40:00.001-07:00</published><updated>2010-05-18T16:40:57.668-07:00</updated><title type='text'>Report Builder 3.0 – Using Report Parts</title><content type='html'>&lt;p&gt;Report Builder 3.0 offers many new features to its users.&amp;#160; One of the best features, in my opinion, is the ability to search and use Report Parts that have been published to the Report Server.&amp;#160; If you are looking for a tool that will provide Self-Service to your end-users this is a tool that you should consider adding to your arsenal.&amp;#160; &lt;/p&gt;  &lt;p&gt;During many of my client engagements I am asked to create reports.&amp;#160; I will typically spend time reviewing existing reports and then I will recreate a report or two adding additional functionality and formatting.&amp;#160; Once the clients, specifically the business users view the reports there are comments such as:&amp;#160; this is good, but….&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;can you move this table &lt;/li&gt;    &lt;li&gt;can you move this chart &lt;/li&gt;    &lt;li&gt;can you change the format of this column &lt;/li&gt;    &lt;li&gt;can you change the color of the header row &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Then I go back and make the requested changes and present the reports once again.&amp;#160; Kind of a tedious process.&amp;#160; Even worse, in some cases more changes are required.&amp;#160; However, with the release of SQL Server Reporting Services R2, report developers can now publish parts of reports.&amp;#160; These parts include, maps, tables, charts, images, etc…&amp;#160; See my blog post, &lt;a href="http://www.bidn.com/blogs/PatrickLeBlanc/SSIS/671/sql-server-reporting-services-r2-publishing-report-parts"&gt;Publishing Report Parts&lt;/a&gt;, for more details on this topic.&lt;/p&gt;  &lt;p&gt;Now instead of you, the report developer or DBA, spending your time shooting at a moving target recreating or modifying reports.&amp;#160; You can now enable the end-user to leverage all of your hard work without spending a tremendous amount of time teaching them how to use a new tool.&lt;/p&gt;  &lt;p&gt;So to get started, open Report Builder 3.0.&amp;#160; There are a couple of ways to do this.&amp;#160; You can open it from the start menu or you can use the Report Builder button on Report Manager.&amp;#160; &lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/_barBiSO8ITc/S_MlcC6RWHI/AAAAAAAAAI4/LUsNzEyOFvY/s1600-h/image12.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://lh5.ggpht.com/_barBiSO8ITc/S_Mlc4WqVCI/AAAAAAAAAI8/0wlYWnrE4EE/image_thumb6.png?imgmax=800" width="468" height="115" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Once the Report Builder is open you may need to connect to a Report Server.&amp;#160; Once you are connected, locate the tab on the right side of the Report Builder labeled Report Gallery.&amp;#160; &lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/_barBiSO8ITc/S_Mldcp3NAI/AAAAAAAAAJA/CCOCngk0yQ0/s1600-h/image1.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://lh5.ggpht.com/_barBiSO8ITc/S_Mld-1u9VI/AAAAAAAAAJE/Lecp6YEJc2A/image_thumb1.png?imgmax=800" width="255" height="113" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;In the search box enter your search criteria or leave it blank and click the magnifying glass.&amp;#160; The results of the search will appear directly below.&amp;#160; &lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/_barBiSO8ITc/S_Mle9EMkiI/AAAAAAAAAJI/W1FPAlg47tI/s1600-h/image20.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://lh3.ggpht.com/_barBiSO8ITc/S_Mlf_QEMZI/AAAAAAAAAJM/hcSj2CSpzJE/image_thumb10.png?imgmax=800" width="293" height="276" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Either double-click an item in the list or drag into onto the report design surface.&amp;#160; Any datasets are parameters that the report part depends on will automatically be added to the report.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/_barBiSO8ITc/S_MlhDmq5DI/AAAAAAAAAJQ/j8ocf3fvtLY/s1600-h/image24.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://lh4.ggpht.com/_barBiSO8ITc/S_MlhyVNEsI/AAAAAAAAAJU/nneE8Uedggo/image_thumb12.png?imgmax=800" width="245" height="262" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;At the point you can continue to add items to the report and format it to me your needs.&amp;#160; Once you are done you have the ability to publish the report.&amp;#160; Click the save icon and type the Report Server path in the drop down list labeled Look in.&amp;#160; Select the location where you want to publish the report and click save.&amp;#160; The report can now be viewed by any that has permissions.&lt;/p&gt;  &lt;p&gt;Talk to you soon,&lt;/p&gt;  &lt;p&gt;Patrick LeBlanc, MCTS&lt;/p&gt;  &lt;p&gt;Founder &lt;a href="http://www.TSQLScripts.com"&gt;www.TSQLScripts.com&lt;/a&gt; and &lt;a href="http://www.SQLLunch.com"&gt;www.SQLLunch.com&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;Visit &lt;a href="http://www.BIDN.com"&gt;www.BIDN.com&lt;/a&gt;, Bring Business Intelligence to your company.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2046028067618905204-8196630757718628629?l=sqldownsouth.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sqldownsouth.blogspot.com/feeds/8196630757718628629/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sqldownsouth.blogspot.com/2010/05/report-builder-30-using-report-parts.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2046028067618905204/posts/default/8196630757718628629'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2046028067618905204/posts/default/8196630757718628629'/><link rel='alternate' type='text/html' href='http://sqldownsouth.blogspot.com/2010/05/report-builder-30-using-report-parts.html' title='Report Builder 3.0 – Using Report Parts'/><author><name>Patrick LeBlanc</name><uri>http://www.blogger.com/profile/01738972122068246140</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_barBiSO8ITc/TGG9UkphClI/AAAAAAAAAPY/dGyatbRnf0Y/S220/PatrickHeadShotFull.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh5.ggpht.com/_barBiSO8ITc/S_Mlc4WqVCI/AAAAAAAAAI8/0wlYWnrE4EE/s72-c/image_thumb6.png?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2046028067618905204.post-5637605984149888488</id><published>2010-05-16T15:22:00.000-07:00</published><updated>2010-05-16T15:24:06.655-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Reporting Services'/><category scheme='http://www.blogger.com/atom/ns#' term='Patrick LeBlanc'/><category scheme='http://www.blogger.com/atom/ns#' term='Report Builder 3.0'/><category scheme='http://www.blogger.com/atom/ns#' term='SQL Server'/><title type='text'>SQL Server Reporting Services R2 – Publishing Report Parts</title><content type='html'>&lt;p&gt;SQL Server Reporting Services R2 (SSRS) allows report developers to not only publish reports and data sources to the report server, but now they have the ability to publish report parts.&amp;#160; You can publish parts of a report, such as charts, tables, logos, etc…&amp;#160; In addition to the report part, any data set and/or parameter that the part depends on accompanies it as metadata.&amp;#160;&amp;#160; End-users will have the ability, using Report Builder 3.0, to create reports based on the published Report Parts.&amp;#160; So, how do you publish the report parts?&lt;/p&gt;  &lt;p&gt;First, create&amp;#160; a report that contains a few charts, tables and maybe an image.&amp;#160; Similar to the following:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/_barBiSO8ITc/S_Bwcg6TyMI/AAAAAAAAAIg/olvv_8hOgGE/s1600-h/image4.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://lh3.ggpht.com/_barBiSO8ITc/S_BwdYzN0BI/AAAAAAAAAIk/xb-xrOG9WEw/image_thumb2.png?imgmax=800" width="344" height="355" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Each item on the report, the five charts and the logo, can be published to the report server as a report part.&amp;#160; Ensure that you give each part that you plan on publishing a descriptive and meaningful name.&amp;#160; Once that is done, select Report from the menu bar and select Publish Report Parts.&amp;#160; The following screen will appear:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/_barBiSO8ITc/S_BweGO3wrI/AAAAAAAAAIo/hjNmNwotzZ4/s1600-h/image10.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://lh4.ggpht.com/_barBiSO8ITc/S_Bwe1Nod6I/AAAAAAAAAIs/3jDTIJmXnlU/image_thumb6.png?imgmax=800" width="371" height="434" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Then select the checkbox next to each item that you want to publish as a report part and click OK.&amp;#160; The next time you deploy your report project each selected item will be published to the report server.&amp;#160; Finally, prior to deploying the report parts, you can specify the location where these items will be deployed.&amp;#160; Right-click on the project in the solution explorer and select Properties:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/_barBiSO8ITc/S_BwgH1GDNI/AAAAAAAAAIw/-ueWHbcFqWo/s1600-h/image41.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://lh3.ggpht.com/_barBiSO8ITc/S_BwhXaNmRI/AAAAAAAAAI0/DaRoQWU5Qf8/image_thumb1.png?imgmax=800" width="482" height="231" /&gt;&lt;/a&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Under the deployment section in the row labeled TargetReportPartFolder, you can specify the location where you want to deploy the report parts.&amp;#160; Your end-users can now connect to the report server and use these report parts in their reports.&amp;#160; I will explain how they do this in my next blog post.&lt;/p&gt;  &lt;p&gt;Talk to you soon,&lt;/p&gt;  &lt;p&gt;Patrick LeBlanc, MCTS&lt;/p&gt;  &lt;p&gt;Founder &lt;a href="http://www.TSQLScripts.com"&gt;www.TSQLScripts.com&lt;/a&gt; and &lt;a href="http://www.SQLLunch.com"&gt;www.SQLLunch.com&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;Visit &lt;a href="http://www.BIDN.com"&gt;www.BIDN.com&lt;/a&gt;, Bring Business Intelligence to your company.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2046028067618905204-5637605984149888488?l=sqldownsouth.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sqldownsouth.blogspot.com/feeds/5637605984149888488/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sqldownsouth.blogspot.com/2010/05/sql-server-reporting-services-r2.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2046028067618905204/posts/default/5637605984149888488'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2046028067618905204/posts/default/5637605984149888488'/><link rel='alternate' type='text/html' href='http://sqldownsouth.blogspot.com/2010/05/sql-server-reporting-services-r2.html' title='SQL Server Reporting Services R2 – Publishing Report Parts'/><author><name>Patrick LeBlanc</name><uri>http://www.blogger.com/profile/01738972122068246140</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_barBiSO8ITc/TGG9UkphClI/AAAAAAAAAPY/dGyatbRnf0Y/S220/PatrickHeadShotFull.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh3.ggpht.com/_barBiSO8ITc/S_BwdYzN0BI/AAAAAAAAAIk/xb-xrOG9WEw/s72-c/image_thumb2.png?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2046028067618905204.post-5099701852293019573</id><published>2010-05-12T17:16:00.001-07:00</published><updated>2010-05-12T17:16:49.082-07:00</updated><title type='text'>Upcoming SQL Lunch Webcasts</title><content type='html'>&lt;p&gt;First, I would like to thank all that have attended and supported the SQL Lunch during our first year.&amp;#160; We are continuing on and have some great Lunches scheduled for May and June.&amp;#160; In May I will be presenting &lt;a href="http://sqllunch.com/Meeting.aspx?lunchid=21"&gt;Configuring, Deploying and Scheduling SSIS Packages&lt;/a&gt; and Max Trinidad will be presenting &lt;a href="http://sqllunch.com/Meeting.aspx?lunchid=18"&gt;SQL Server and PowerShell Working with Databases&lt;/a&gt;.&amp;#160; In June we will have first time SQL Lunch Speaker, Stefan Bauer, presenting &lt;a href="http://sqllunch.com/Meeting.aspx?lunchid=20"&gt;Warehouse Disk Layout 101&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;The SQL Lunch Team has several upcoming topics on SQL Server 2008 R2, Power Pivot and Report Builder 3.0.&amp;#160; We are always looking for new presenters and new topics.&amp;#160; If you are interested in presenting on the &lt;a href="http://www.sqllunch.com/"&gt;SQL Lunch&lt;/a&gt; please email us at &lt;a href="mailto:webmaster@sqllunch.com"&gt;webmaster@sqllunch.com&lt;/a&gt;.&amp;#160; No matter if you are a seasoned presenter or a first time presenter, we welcome all.&amp;#160; &lt;/p&gt;  &lt;p&gt;Thanks Patrick LeBlanc, MCTS&lt;/p&gt;  &lt;p&gt;Founder &lt;a href="http://www.TSQLScripts.com"&gt;www.TSQLScripts.com&lt;/a&gt; and &lt;a href="http://www.SQLLunch.com"&gt;www.SQLLunch.com&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;Visit &lt;a href="http://www.BIDN.com"&gt;www.BIDN.com&lt;/a&gt;, Bring Business Intelligence to your company.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2046028067618905204-5099701852293019573?l=sqldownsouth.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sqldownsouth.blogspot.com/feeds/5099701852293019573/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sqldownsouth.blogspot.com/2010/05/upcoming-sql-lunch-webcasts.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2046028067618905204/posts/default/5099701852293019573'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2046028067618905204/posts/default/5099701852293019573'/><link rel='alternate' type='text/html' href='http://sqldownsouth.blogspot.com/2010/05/upcoming-sql-lunch-webcasts.html' title='Upcoming SQL Lunch Webcasts'/><author><name>Patrick LeBlanc</name><uri>http://www.blogger.com/profile/01738972122068246140</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_barBiSO8ITc/TGG9UkphClI/AAAAAAAAAPY/dGyatbRnf0Y/S220/PatrickHeadShotFull.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2046028067618905204.post-5214794111796828181</id><published>2010-05-09T08:13:00.001-07:00</published><updated>2010-05-09T08:13:34.242-07:00</updated><title type='text'>Creating Sparklines in PowerPivot</title><content type='html'>&lt;p&gt;Sparklines are new to Microsoft Excel 2010 and Reporting Services 2008 R2.&amp;#160; In this post I will outline the steps required to create sparklines in an existing PowerPivot workbook.&amp;#160; Sparklines provide you with the ability to create a trending graph inline with your data.&amp;#160; So how do create these Sparklines.&lt;/p&gt;  &lt;p&gt;Let’s assume that you already have a PowerPivot workbook that contains data.&amp;#160; In this example I will be using the AdventureWorks2008 database.&amp;#160; I have imported the following tables:&amp;#160; DimDate, DimSalesTerritory and FactInternetSales.&amp;#160;&amp;#160; I am also assuming that you have already created a Pivot Table that resembles the following:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/_barBiSO8ITc/S-bRARaZ3yI/AAAAAAAAAHw/xqOrloDarLc/s1600-h/image3.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://lh6.ggpht.com/_barBiSO8ITc/S-bRBALj1XI/AAAAAAAAAH0/G6mu85ai_30/image_thumb1.png?imgmax=800" width="629" height="264" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;My columns in the Pivot Table are the CalendarYear from the DimDate table, the rows are the SalesTerritoryCountry from the DimSalesTerritoryTable and the SalesAmount from the FactInternetSales table is the value.&amp;#160; &lt;/p&gt;  &lt;p&gt;Now that I have the Pivot Table created, I decided that I would like to see a graphical depiction of the sales for each country over each year inline with the data.&amp;#160; To accomplish this you can use sparklines.&amp;#160; To create the sparkline, click the tab labeled Insert and click the icon labeled Line in the sparkline section of the ribbon.&amp;#160; See the following:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/_barBiSO8ITc/S-bRBRDgfNI/AAAAAAAAAH4/p3abR_xJSBI/s1600-h/image6.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://lh5.ggpht.com/_barBiSO8ITc/S-bRCLtqI2I/AAAAAAAAAH8/7UpfSaQlthc/image_thumb2.png?imgmax=800" width="244" height="123" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;When you click the icon the following dialogue box will appear:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/_barBiSO8ITc/S-bRCr_HnjI/AAAAAAAAAIA/zmEmPklBxyY/s1600-h/image10.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://lh4.ggpht.com/_barBiSO8ITc/S-bRDPstmjI/AAAAAAAAAIE/lTruGFbsJTM/image_thumb4.png?imgmax=800" width="282" height="177" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;In the textbox labeled Date Range you must specify the values that you want to trend.&amp;#160; In my sheet I selected all the data for every country for every year, excluding the column labeled Grand Total.&amp;#160; Similar to the following image:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/_barBiSO8ITc/S-bRDt291pI/AAAAAAAAAII/YQhQKvxSyPo/s1600-h/image14.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://lh4.ggpht.com/_barBiSO8ITc/S-bREdAEK4I/AAAAAAAAAIM/SS7pMwd-_GU/image_thumb6.png?imgmax=800" width="608" height="301" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;In the above diagram note that all the data within the dashed lines are selected as the Data Range for my sparklines.&amp;#160; Next you must specify where you want to place the sparklines or the Location Range.&amp;#160; Select the empty columns to the left of the Grand Total column.&amp;#160; Ensure that you select the same number of rows that selected for the Data Range.&amp;#160; See the following image:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/_barBiSO8ITc/S-bRE8h7knI/AAAAAAAAAIQ/K5IqzAu5WLA/s1600-h/image20.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://lh5.ggpht.com/_barBiSO8ITc/S-bRFtJcziI/AAAAAAAAAIU/IjW5Qah2ACI/image_thumb10.png?imgmax=800" width="610" height="225" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Click on the button labeled OK on the Create Sparklines dialogue box and now you have the sparklines.&amp;#160; Your speadsheet should resemble the following:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/_barBiSO8ITc/S-bRGdXXbpI/AAAAAAAAAIY/dW-PoFRXz10/s1600-h/image26.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://lh5.ggpht.com/_barBiSO8ITc/S-bRHV8BxqI/AAAAAAAAAIc/qWAh7_PnQIs/image_thumb14.png?imgmax=800" width="613" height="193" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;Now you not only have data, but you can quickly see how the data is trending for each country.&amp;#160; As always if you have any questions or comments please feel free to email me at &lt;a href="mailto:pleblanc@pragmaticworks.com"&gt;pleblanc@pragmaticworks.com&lt;/a&gt;. &lt;/p&gt;  &lt;p&gt;Talk to you soon,&lt;/p&gt;  &lt;p&gt;Patrick LeBlanc, MCTS&lt;/p&gt;  &lt;p&gt;Founder &lt;a href="http://www.TSQLScripts.com"&gt;www.TSQLScripts.com&lt;/a&gt; and &lt;a href="http://www.SQLLunch.com"&gt;www.SQLLunch.com&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;Visit &lt;a href="http://www.BIDN.com"&gt;www.BIDN.com&lt;/a&gt;, Bring Business Intelligence to your company.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2046028067618905204-5214794111796828181?l=sqldownsouth.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sqldownsouth.blogspot.com/feeds/5214794111796828181/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sqldownsouth.blogspot.com/2010/05/creating-sparklines-in-powerpivot.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2046028067618905204/posts/default/5214794111796828181'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2046028067618905204/posts/default/5214794111796828181'/><link rel='alternate' type='text/html' href='http://sqldownsouth.blogspot.com/2010/05/creating-sparklines-in-powerpivot.html' title='Creating Sparklines in PowerPivot'/><author><name>Patrick LeBlanc</name><uri>http://www.blogger.com/profile/01738972122068246140</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_barBiSO8ITc/TGG9UkphClI/AAAAAAAAAPY/dGyatbRnf0Y/S220/PatrickHeadShotFull.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh6.ggpht.com/_barBiSO8ITc/S-bRBALj1XI/AAAAAAAAAH0/G6mu85ai_30/s72-c/image_thumb1.png?imgmax=800' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2046028067618905204.post-3578805996358786143</id><published>2010-05-06T18:27:00.001-07:00</published><updated>2010-05-06T18:27:57.107-07:00</updated><title type='text'>SQL Server Performance Tuning – Webcast</title><content type='html'>&lt;p&gt;I recently gave a presentation on SQL Server Performance Tuning via Live Meeting.&amp;#160; I discussed how you could use the DMVs, SQL Server Profiler and Execution Plans to solve some of your performance problems.&amp;#160; There were over One hundred attendees in the session.&amp;#160; I was asked several times, if I would share my presentation and the demo scripts.&amp;#160; Since emailing each individual would be a true pain I stated that I would post all of the information in a blog post.&amp;#160; So for all of you that attended my session and anyone that may be interested click the below link to download.&lt;/p&gt;  &lt;p&gt;Download: SQL Server Performance Tuning.&lt;/p&gt;  &lt;p&gt;Talk to you soon,&lt;/p&gt;  &lt;p&gt;Patrick LeBlanc, MCTS&lt;/p&gt;  &lt;p&gt;Founder &lt;a href="http://www.TSQLScripts.com"&gt;www.TSQLScripts.com&lt;/a&gt; and &lt;a href="http://www.SQLLunch.com"&gt;www.SQLLunch.com&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;Visit &lt;a href="http://www.BIDN.com"&gt;www.BIDN.com&lt;/a&gt;, Bring Business Intelligence to your company.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2046028067618905204-3578805996358786143?l=sqldownsouth.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sqldownsouth.blogspot.com/feeds/3578805996358786143/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sqldownsouth.blogspot.com/2010/05/sql-server-performance-tuning-webcast.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2046028067618905204/posts/default/3578805996358786143'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2046028067618905204/posts/default/3578805996358786143'/><link rel='alternate' type='text/html' href='http://sqldownsouth.blogspot.com/2010/05/sql-server-performance-tuning-webcast.html' title='SQL Server Performance Tuning – Webcast'/><author><name>Patrick LeBlanc</name><uri>http://www.blogger.com/profile/01738972122068246140</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_barBiSO8ITc/TGG9UkphClI/AAAAAAAAAPY/dGyatbRnf0Y/S220/PatrickHeadShotFull.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2046028067618905204.post-6654664811214117142</id><published>2010-05-06T18:26:00.001-07:00</published><updated>2010-05-06T18:26:05.833-07:00</updated><title type='text'>2010 1st Quarter Review</title><content type='html'>&lt;p&gt;I know it’s kind of late to write a review of my first quarter goals, since we are well into the second quart of 2010.&amp;#160; However, I did state in my blog post earlier this year, &lt;a href="http://www.bidn.com/blogs/PatrickLeBlanc/ssis/321/2010-first-quarter-goals"&gt;2010 1st Quarter Goals&lt;/a&gt;, that I would keep you all abreast of my progress.&amp;#160; So, how did it do?&amp;#160; Unfortunately, I failed miserably on a few goals, but, on the other hand,I exceeded my expectations on others.&amp;#160; Here is the list from my initial post with a few comments about my progress:&lt;/p&gt;  &lt;p&gt;1. &lt;strong&gt;Learn everything I can about SQL Server Analysis Server&lt;/strong&gt; – I have been on several engagements since my posting and I have to say that my SSAS skills have definitely improved.&amp;#160; MDX is still somewhat of a challenge, but I am working on it.&amp;#160; &lt;/p&gt;  &lt;p&gt;2. &lt;strong&gt;Two blog postings per week&lt;/strong&gt; -&amp;#160;&amp;#160; Yeah right.&amp;#160;&amp;#160; In the first quarter I posted 22 blogs, which is pretty close to two, but there wasn’t any consistency to my posts.&amp;#160; This is something I am really going to work hard at improving.&lt;/p&gt;  &lt;p&gt;3. &lt;strong&gt;Publish two articles&lt;/strong&gt; – I did publish two articles on &lt;a href="http://www.BIDN.com"&gt;www.BIDN.com&lt;/a&gt;.&amp;#160; If you would like to give them a read, here they are:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.bidn.com/articles/data-warehousing-design/100/incremental-loads-with-change-data-capture-%E2%80%93-part-2-detecting-changes"&gt;Incremental Loads with Change Data Capture – Part: 2&amp;#160; Detecting Changes&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.bidn.com/articles/reporting-services/107/ssrs-%E2%80%93-creating-a-master-detail-report"&gt;SSRS – Creating a Master/Detail Report&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;4. &lt;strong&gt;Speak at a minimum of three events (&lt;/strong&gt;&lt;a href="www.sqlsaturday.com"&gt;&lt;strong&gt;SQLSaturday&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt;, &lt;/strong&gt;&lt;a href="http://www.sqllunch.com/"&gt;&lt;strong&gt;SQLLunch&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt;, PASS Virtual Chapter, etc…)&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;I was able to speak at four events, speaking at 5 sessions.&amp;#160; The sessions are as follows:&lt;/p&gt;  &lt;p&gt;&lt;u&gt;Tampa Bay SQL Saturday&lt;/u&gt; – SQL Server Backup and Data Compression 101&lt;/p&gt;  &lt;p&gt;&lt;u&gt;Tampa Bay SQL Saturday&lt;/u&gt; – Iron Chef Data Warehouse&lt;/p&gt;  &lt;p&gt;&lt;u&gt;SQL Lunch Webcast&lt;/u&gt; – Introduction to Partitioning&lt;/p&gt;  &lt;p&gt;&lt;u&gt;Pragmatic Works February SQL Server 101 Series&lt;/u&gt; – Beginning T-SQL&lt;/p&gt;  &lt;p&gt;&lt;u&gt;Charlotte SQL Saturday&lt;/u&gt; - SQL Server Backup and Data Compression 101&lt;/p&gt;  &lt;p&gt;5. &lt;strong&gt;Schedule &lt;/strong&gt;&lt;a href="http://www.sqllunch.com/"&gt;&lt;strong&gt;SQL Lunch&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt; speakers for the rest of the year (at least 2 per month)&lt;/strong&gt; – This I found was a very optimistic goal.&amp;#160; I have decided to scale it back to finding speakers for each quarter.&amp;#160; So if you want to speak please send an email to &lt;a href="mailto:webmaster@sqllunch.com"&gt;webmaster@sqllunch.com&lt;/a&gt;.&amp;#160; &lt;/p&gt;  &lt;p&gt;6. &lt;strong&gt;Submit 2 videos to &lt;/strong&gt;&lt;a href="www.sqlshare.com"&gt;&lt;strong&gt;SQL Share&lt;/strong&gt;&lt;/a&gt; – Unfortunately, I did not get around to recording one video for &lt;a href="www.sqlshare.com"&gt;SQL Share&lt;/a&gt;, but I have two topics that are ready to go and I will get them submitted before the second quarter of 2010 is over.&lt;/p&gt;  &lt;p&gt;7. &lt;strong&gt;Submit an abstract to SQL Server Standard (&lt;/strong&gt;&lt;a href="http://www.sqlservercentral.com/blogs/members/profile.aspx?UserID=2176"&gt;&lt;strong&gt;Grant Fritchey&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt;)&lt;/strong&gt; – This item has been removed from my list until further notice.&amp;#160; I have be asked to participate in a few larger writing commitments that really monopolize a lot of my free time.&amp;#160; Once I have completed those obligations I will reevaluate and I try to get an abstract submitted.&lt;/p&gt;  &lt;p&gt;As I stated in my first Goals post, my goals tend to change as the year progresses. With the exception of number 7 in the above list of the items, all of the goals will remain for the Second quarter of 2010.&amp;#160; I have already fallen behind in regards to my blog posts.&amp;#160; Therefore the goal is not to post twice a week, that goal has been modified to post at least once a week on a consistent basis.&amp;#160; In addition to that modification I have added one item to the list and it is as follows:&lt;/p&gt;  &lt;p&gt;Submit three abstracts to the PASS conference.&amp;#160; &lt;/p&gt;  &lt;p&gt;Maybe I will get selected.&amp;#160; Either way I plan on attending and I look forward to meeting many of you there.&lt;/p&gt;  &lt;p&gt;Talk to you soon,&lt;/p&gt;  &lt;p&gt;Patrick LeBlanc, MCTS&lt;/p&gt;  &lt;p&gt;Founder &lt;a href="http://www.TSQLScripts.com"&gt;www.TSQLScripts.com&lt;/a&gt; and &lt;a href="http://www.SQLLunch.com"&gt;www.SQLLunch.com&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;Visit &lt;a href="http://www.BIDN.com"&gt;www.BIDN.com&lt;/a&gt;, Bring Business Intelligence to your company.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2046028067618905204-6654664811214117142?l=sqldownsouth.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sqldownsouth.blogspot.com/feeds/6654664811214117142/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sqldownsouth.blogspot.com/2010/05/2010-1st-quarter-review.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2046028067618905204/posts/default/6654664811214117142'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2046028067618905204/posts/default/6654664811214117142'/><link rel='alternate' type='text/html' href='http://sqldownsouth.blogspot.com/2010/05/2010-1st-quarter-review.html' title='2010 1st Quarter Review'/><author><name>Patrick LeBlanc</name><uri>http://www.blogger.com/profile/01738972122068246140</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_barBiSO8ITc/TGG9UkphClI/AAAAAAAAAPY/dGyatbRnf0Y/S220/PatrickHeadShotFull.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2046028067618905204.post-1525713579097839895</id><published>2010-04-23T06:23:00.001-07:00</published><updated>2010-04-23T06:23:27.107-07:00</updated><title type='text'>R2 Road Show Recap</title><content type='html'>&lt;p&gt;This past week I had the opportunity to speak at three SQL Server R2 Launch events. I spoke in three cities in four days. On day one I spoke in Omaha, NE, the next day we stopped in Overland Park, KS and finally St. Louis, MO. Each event was held at a Microsoft facility. The largest crowd was in St. Louis, there were approximately 75 people in attendance. I traveled with one of our Salesmen and two Microsoft Employees.&lt;/p&gt;  &lt;p&gt;My role in each event was to do all the demonstrations. The topics that I covered were structured completely around Self-Service Business Intelligence. In addition we also did a couple chalk talks on the new data warehousing methodologies and appliances that are available or will be available soon from Microsoft, Fast Track and Parallel Data Warehouse. Overall they were all accepted by the audience with a few questions regarding the true practicality of the features in a large organization. As expected, the Power Pivot demonstration was a big hit. However, I was surprised that several attendees in each city was excited about the Utility Control Point and Date Tier Applications.&lt;/p&gt;  &lt;p&gt;I will be doing a &lt;a href="http://www.sqllunch.com/"&gt;SQL Lunch&lt;/a&gt; on each of the demonstrations in the upcoming months. The topics will include: Power Pivot, Report Builder 3.0, Utility Control Point, and Data Tier Applications. Stay tuned here and the &lt;a href="http://www.sqllunch.com/"&gt;SQL Lunch&lt;/a&gt; for the dates.&lt;/p&gt;  &lt;p&gt;Talk to you soon,&lt;/p&gt;  &lt;p&gt;Patrick LeBlanc, MCTS&lt;/p&gt;  &lt;p&gt;Founder &lt;a href="http://www.TSQLScripts.com"&gt;www.TSQLScripts.com&lt;/a&gt; and &lt;a href="http://www.SQLLunch.com"&gt;www.SQLLunch.com&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;Visit &lt;a href="http://www.BIDN.com"&gt;www.BIDN.com&lt;/a&gt;, Bring Business Intelligence to your company.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2046028067618905204-1525713579097839895?l=sqldownsouth.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sqldownsouth.blogspot.com/feeds/1525713579097839895/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sqldownsouth.blogspot.com/2010/04/r2-road-show-recap.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2046028067618905204/posts/default/1525713579097839895'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2046028067618905204/posts/default/1525713579097839895'/><link rel='alternate' type='text/html' href='http://sqldownsouth.blogspot.com/2010/04/r2-road-show-recap.html' title='R2 Road Show Recap'/><author><name>Patrick LeBlanc</name><uri>http://www.blogger.com/profile/01738972122068246140</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_barBiSO8ITc/TGG9UkphClI/AAAAAAAAAPY/dGyatbRnf0Y/S220/PatrickHeadShotFull.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2046028067618905204.post-4133912626004495412</id><published>2010-04-14T20:40:00.001-07:00</published><updated>2010-04-14T20:40:09.150-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Business Intelligence'/><category scheme='http://www.blogger.com/atom/ns#' term='SSIS'/><category scheme='http://www.blogger.com/atom/ns#' term='SQLLunch'/><category scheme='http://www.blogger.com/atom/ns#' term='User Group'/><title type='text'>Editing Saved SSIS Packages</title><content type='html'>&lt;p&gt;During my last &lt;a href="http://www.sqllunch.com/Lunches.aspx?Month=April%202010"&gt;SQLLunch&lt;/a&gt;, Introduction to SSIS, I was asked an interesting question by one of the attendees. He asked, how do you edit a package once it’s saved in the SQL Server package store? My response was to open your SSIS project and edit the package from Business Intelligence Development Studio (BIDS). His response was, I did not save the project. Huh, what? That’s what I thought. He tried to explain further, but I did not quite understand. He said I will be at the user group on Wednesday night, which I spoke at, and elaborate a little.&lt;/p&gt;  &lt;p&gt;As promised he arrived on time at the user group meeting ready to explain his problem and expecting a solution. After we chatted for a little I realized the problem. He asked me to open SQL Server Management Studio (SSMS) and connect to my local SQL Server Integration Services (SSIS). Then he said expand the Stored Packages folder then the MSDB folder.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/_barBiSO8ITc/S8aKj3YHNtI/AAAAAAAAAHY/CvHBcIDU-S0/s1600-h/clip_image0023.jpg"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="clip_image002" border="0" alt="clip_image002" src="http://lh4.ggpht.com/_barBiSO8ITc/S8aKkMPdh5I/AAAAAAAAAHc/QCz6_wGD2yw/clip_image002_thumb.jpg?imgmax=800" width="244" height="185" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;He then said, see there they go, but how do I edit them. Then I understood. When he completed a package it was saved to the SQL Server, and once he was done he closed the project without saving. As a result, the packages resided on the server, but he did not have the project that contained his packages. So he could not edit them.&lt;/p&gt;  &lt;p&gt;I explain to edit them, open BIDs and create a new SSIS project. Then right-click on the SSIS packages folder in the Solution Explorer and select Add Existing Package and the following dialog box will appear.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/_barBiSO8ITc/S8aKkuPQa5I/AAAAAAAAAHg/uGkd-YlKj-8/s1600-h/clip_image004%5B1%5D.jpg"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="clip_image004" border="0" alt="clip_image004" src="http://lh6.ggpht.com/_barBiSO8ITc/S8aKlLgjpMI/AAAAAAAAAHk/afmJlP0K6vA/clip_image004_thumb%5B1%5D.jpg?imgmax=800" width="454" height="330" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Since his packages were saved on the SQL Server, I told him to accept the default, SQL Server, for the Package location. Then I told him to choose his server name, and finally click the ellipses button next to the textbox labeled Package path and the following dialog will appear:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/_barBiSO8ITc/S8aKlnxURDI/AAAAAAAAAHo/FA2lR3xdbsU/s1600-h/clip_image0063.jpg"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="clip_image006" border="0" alt="clip_image006" src="http://lh6.ggpht.com/_barBiSO8ITc/S8aKmEfDqKI/AAAAAAAAAHs/XswN4ibctng/clip_image006_thumb.jpg?imgmax=800" width="234" height="244" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Select the package you want to edit and it will be included in the project. Once complete double-click the new package in the solution explorer and you can begin editing the package.&amp;#160; I explained to him to always save his SSIS projects when complete so he could always open the project for editing to avoid the extra steps.&amp;#160; &lt;/p&gt;  &lt;p&gt;So for all of you that don’t save your SSIS projects and you want to edit them after they have been deployed, follow these steps.&lt;/p&gt;  &lt;p&gt;Talk to you soon&lt;/p&gt;  &lt;p&gt;Patrick LeBlanc, MCTS&lt;/p&gt;  &lt;p&gt;Founder &lt;a href="http://www.TSQLScripts.com"&gt;www.TSQLScripts.com&lt;/a&gt; and &lt;a href="http://www.SQLLunch.com"&gt;www.SQLLunch.com&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;Visit &lt;a href="http://www.BIDN.com"&gt;www.BIDN.com&lt;/a&gt;, Bring Business Intelligence to your company.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2046028067618905204-4133912626004495412?l=sqldownsouth.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sqldownsouth.blogspot.com/feeds/4133912626004495412/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sqldownsouth.blogspot.com/2010/04/editing-saved-ssis-packages.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2046028067618905204/posts/default/4133912626004495412'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2046028067618905204/posts/default/4133912626004495412'/><link rel='alternate' type='text/html' href='http://sqldownsouth.blogspot.com/2010/04/editing-saved-ssis-packages.html' title='Editing Saved SSIS Packages'/><author><name>Patrick LeBlanc</name><uri>http://www.blogger.com/profile/01738972122068246140</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_barBiSO8ITc/TGG9UkphClI/AAAAAAAAAPY/dGyatbRnf0Y/S220/PatrickHeadShotFull.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh4.ggpht.com/_barBiSO8ITc/S8aKkMPdh5I/AAAAAAAAAHc/QCz6_wGD2yw/s72-c/clip_image002_thumb.jpg?imgmax=800' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2046028067618905204.post-6519738982145727567</id><published>2010-04-11T16:40:00.001-07:00</published><updated>2010-04-11T16:40:59.079-07:00</updated><title type='text'>Speaking Twice this Week</title><content type='html'>&lt;p&gt;This week I will have the opportunity to speak at two different events. The first is on Monday, April 12&lt;sup&gt;th&lt;/sup&gt;, at the &lt;a href="http://www.sqllunch.com/"&gt;SQL Lunch&lt;/a&gt;. I will be doing an &lt;a href="http://www.sqllunch.com/"&gt;Introduction to SSIS presentation&lt;/a&gt;. The presentation is online and will begin at 11:30 AM CST. If you have time during lunch, please join me for a quick presentation on SSIS.&lt;/p&gt;  &lt;p&gt;On Wednesday, April 14&lt;sup&gt;th&lt;/sup&gt;, I will be speaking at &lt;a href="http://www.batonrouge.sqlpass.org/"&gt;the Baton Rouge SQL Server User group&lt;/a&gt;. I will be do a Backup and Data Compression presentation. If you are in or around Baton Rouge, LA, please stop by for some networking, food, COMPRESSION, and free giveaways.&lt;/p&gt;  &lt;p&gt;If you would like to speak at either the SQLLunch or the Baton Rouge SQL Server User group feel free to email me at &lt;a href="mailto:pleblanc@sqllunch.com"&gt;pleblanc@sqllunch.com&lt;/a&gt;. You can follow the SQL Lunch on Twitter (@sqllunch) and the User Group (@BRSSUG).&lt;/p&gt;  &lt;p&gt;Talk to you soon,&lt;/p&gt;  &lt;p&gt;Patrick LeBlanc&lt;/p&gt;  &lt;p&gt;Founder &lt;a href="http://www.TSQLScripts.com"&gt;www.TSQLScripts.com&lt;/a&gt; and &lt;a href="http://www.SQLLunch.com"&gt;www.SQLLunch.com&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;Visit &lt;a href="http://www.BIDN.com"&gt;www.BIDN.com&lt;/a&gt;, Bring Business Intelligence to your company.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2046028067618905204-6519738982145727567?l=sqldownsouth.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sqldownsouth.blogspot.com/feeds/6519738982145727567/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sqldownsouth.blogspot.com/2010/04/speaking-twice-this-week.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2046028067618905204/posts/default/6519738982145727567'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2046028067618905204/posts/default/6519738982145727567'/><link rel='alternate' type='text/html' href='http://sqldownsouth.blogspot.com/2010/04/speaking-twice-this-week.html' title='Speaking Twice this Week'/><author><name>Patrick LeBlanc</name><uri>http://www.blogger.com/profile/01738972122068246140</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_barBiSO8ITc/TGG9UkphClI/AAAAAAAAAPY/dGyatbRnf0Y/S220/PatrickHeadShotFull.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2046028067618905204.post-8841324105056264094</id><published>2010-03-19T14:51:00.001-07:00</published><updated>2010-03-19T15:02:16.610-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Reporting Services'/><title type='text'>SSRS – Format Multiple Columns</title><content type='html'>&lt;p&gt;Often when designing reports you are required to apply the same formatting to multiple columns in one table or matrix. Since SSRS 2008 does not allow the developer to change the format of a column using &lt;b&gt;Textbox Properties &lt;/b&gt;when multiple columns are selected, the developer must either:&lt;/p&gt;  &lt;p&gt;· Change the formatting one column at a time&lt;/p&gt;  &lt;p&gt;· Be familiar with the expression language.&lt;/p&gt;  &lt;p&gt;Neither of the aforementioned choices are difficult, but maybe time constraints eliminates both as viable options. Therefore, I am going to share a quick tip that will help you format multiple columns quickly.&lt;/p&gt;  &lt;p&gt;Let’s assume that you have a report that looks similar to this:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/_barBiSO8ITc/S6Px22lcBiI/AAAAAAAAAG4/mN4jHWla1vw/s1600-h/clip_image002%5B6%5D.jpg"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="clip_image002" border="0" alt="clip_image002" src="http://lh4.ggpht.com/_barBiSO8ITc/S6Px3XkvcuI/AAAAAAAAAG8/_KnODogmnVs/clip_image002_thumb%5B3%5D.jpg?imgmax=800" width="626" height="101" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;If the requirements were to change the formatting of each &lt;b&gt;TotalDue &lt;/b&gt;column to &lt;b&gt;Currency &lt;/b&gt;you can quickly change all of them by using the following steps:&lt;/p&gt;  &lt;p&gt;1. Using the Textbox Properties change the format to Currency for one of the TotalDue columns.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/_barBiSO8ITc/S6Px3k6AjaI/AAAAAAAAAHA/-wLr2rOk9VI/s1600-h/clip_image004%5B4%5D.jpg"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="clip_image004" border="0" alt="clip_image004" src="http://lh3.ggpht.com/_barBiSO8ITc/S6Px34e4gXI/AAAAAAAAAHE/t9fe-LtrOGY/clip_image004_thumb%5B1%5D.jpg?imgmax=800" width="370" height="336" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;2. Once the format has been set, right-click on the column and choose &lt;b&gt;Properties&lt;/b&gt;.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/_barBiSO8ITc/S6Px4ZJaiaI/AAAAAAAAAHI/A4oO69gYdsA/s1600-h/clip_image006%5B4%5D.jpg"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="clip_image006" border="0" alt="clip_image006" src="http://lh6.ggpht.com/_barBiSO8ITc/S6Px4tXE90I/AAAAAAAAAHM/19gUuAIvyi8/clip_image006_thumb%5B1%5D.jpg?imgmax=800" width="281" height="147" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;3. In the properties window locate the &lt;b&gt;Format &lt;/b&gt;attribute and copy the value for that property.&lt;/p&gt;  &lt;p&gt;4. Return to the table or matrix and select all the additional columns that require formatting.&lt;/p&gt;  &lt;p&gt;5. Open the properties window again, ensuring that all the columns remain selected.&lt;/p&gt;  &lt;p&gt;6. Paste the format value into the Format attribute.&lt;/p&gt;  &lt;p&gt;7. Run your report and all the columns should be formatted.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/_barBiSO8ITc/S6Px5JIXvXI/AAAAAAAAAHQ/QHcqj9Zf63I/s1600-h/clip_image008%5B5%5D.jpg"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="clip_image008" border="0" alt="clip_image008" src="http://lh3.ggpht.com/_barBiSO8ITc/S6Px5QdaU5I/AAAAAAAAAHU/jFobefEK0o0/clip_image008_thumb%5B2%5D.jpg?imgmax=800" width="458" height="122" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Now all of your columns are quickly formatted. If you have another method to accomplish this please share it. If you have any questions or comments about this posting please email me at &lt;a href="mailto:pleblanc@pragmaticworks.com"&gt;pleblanc@pragmaticworks.com&lt;/a&gt;. &lt;/p&gt;  &lt;p&gt;Talk to you soon,&lt;/p&gt;  &lt;p&gt;Patrick LeBlanc&lt;/p&gt;  &lt;p&gt;Founder &lt;a href="http://www.TSQLScripts.com"&gt;www.TSQLScripts.com&lt;/a&gt; and &lt;a href="http://www.SQLLunch.com"&gt;www.SQLLunch.com&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;Visit &lt;a href="http://www.BIDN.com"&gt;www.BIDN.com&lt;/a&gt;, Bring Business Intelligence to your company.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2046028067618905204-8841324105056264094?l=sqldownsouth.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sqldownsouth.blogspot.com/feeds/8841324105056264094/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sqldownsouth.blogspot.com/2010/03/ssrs-format-multiple-columns.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2046028067618905204/posts/default/8841324105056264094'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2046028067618905204/posts/default/8841324105056264094'/><link rel='alternate' type='text/html' href='http://sqldownsouth.blogspot.com/2010/03/ssrs-format-multiple-columns.html' title='SSRS – Format Multiple Columns'/><author><name>Patrick LeBlanc</name><uri>http://www.blogger.com/profile/01738972122068246140</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_barBiSO8ITc/TGG9UkphClI/AAAAAAAAAPY/dGyatbRnf0Y/S220/PatrickHeadShotFull.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh4.ggpht.com/_barBiSO8ITc/S6Px3XkvcuI/AAAAAAAAAG8/_KnODogmnVs/s72-c/clip_image002_thumb%5B3%5D.jpg?imgmax=800' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2046028067618905204.post-213666991329215239</id><published>2010-03-01T17:40:00.001-08:00</published><updated>2010-03-01T17:40:47.648-08:00</updated><title type='text'>Speaking at Charlotte, NC – SQL Saturday #33</title><content type='html'>&lt;p&gt;If you are near &lt;a href="http://www.sqlsaturday.com/33/eventhome.aspx"&gt;Charlotte, NC&lt;/a&gt;, I will be speaking at their &lt;a href="http://www.sqlsaturday.com/"&gt;SQL Saturday&lt;/a&gt; on March 6th, 2010.&amp;#160; My session,&lt;a href="http://www.sqlsaturday.com/viewsession.aspx?sat=33&amp;amp;sessionid=1066"&gt;SQL Server Compression 101&lt;/a&gt;, is at 1:30 PM.&amp;#160; This is the first SQL Saturday under &lt;a href="https://www.sqlpass.org"&gt;PASS&lt;/a&gt; management.&amp;#160; If you have not &lt;a href="http://www.sqlsaturday.com/33/register.aspx"&gt;registered&lt;/a&gt; for this event do so, seats are filling up quickly.&amp;#160; This is a free event where you can network and learn from some of the most talented SQL Server Professionals in the industry.&lt;/p&gt;  &lt;p&gt;Talk to you soon,&lt;/p&gt;  &lt;p&gt;Patrick LeBlanc&lt;/p&gt;  &lt;p&gt;Founder &lt;a href="http://www.TSQLScripts.com"&gt;www.TSQLScripts.com&lt;/a&gt; and &lt;a href="http://www.SQLLunch.com"&gt;www.SQLLunch.com&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;Visit &lt;a href="http://www.BIDN.com"&gt;www.BIDN.com&lt;/a&gt;, Bring Business Intelligence to your company.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2046028067618905204-213666991329215239?l=sqldownsouth.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sqldownsouth.blogspot.com/feeds/213666991329215239/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sqldownsouth.blogspot.com/2010/03/speaking-at-charlotte-nc-sql-saturday.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2046028067618905204/posts/default/213666991329215239'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2046028067618905204/posts/default/213666991329215239'/><link rel='alternate' type='text/html' href='http://sqldownsouth.blogspot.com/2010/03/speaking-at-charlotte-nc-sql-saturday.html' title='Speaking at Charlotte, NC – SQL Saturday #33'/><author><name>Patrick LeBlanc</name><uri>http://www.blogger.com/profile/01738972122068246140</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_barBiSO8ITc/TGG9UkphClI/AAAAAAAAAPY/dGyatbRnf0Y/S220/PatrickHeadShotFull.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2046028067618905204.post-6411424900558287945</id><published>2010-03-01T16:10:00.001-08:00</published><updated>2010-03-01T16:10:07.109-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Reporting Services'/><category scheme='http://www.blogger.com/atom/ns#' term='Business Intelligence'/><category scheme='http://www.blogger.com/atom/ns#' term='SQL Server'/><category scheme='http://www.blogger.com/atom/ns#' term='KPI'/><title type='text'>SSRS – KPIs without Analysis Services</title><content type='html'>&lt;p&gt;During a recent project I was asked if it was possible to simulate Key Performance Indicator (KPI) images in SQL Server Reporting Services (SSRS) without Analysis Services. Off the top of my head I thought of a couple of things, but I decided to do a little searching before I embarked on my latest challenge. After one quick search I found a great video posted on &lt;a href="http://www.sqlshare.com/"&gt;SQL Share&lt;/a&gt; by SQL Server MVP, &lt;a href="http://jessicammoss.blogspot.com/"&gt;Jessica Moss&lt;/a&gt;, &lt;a href="http://www.sqlshare.com/designing-a-kpi-in-report-services_641.aspx"&gt;Designing a KPI in Reporting Services&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;Using her example, with a few modifications I was able to produce exactly what the client needed. See the following screenshot for an example:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/_barBiSO8ITc/S4xXTfO0ssI/AAAAAAAAAGI/mm1BhuqtJd8/s1600-h/clip_image002%5B4%5D.jpg"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="clip_image002" border="0" alt="clip_image002" src="http://lh4.ggpht.com/_barBiSO8ITc/S4xXTkCR5BI/AAAAAAAAAGM/jwig4MFVcGw/clip_image002_thumb%5B1%5D.jpg?imgmax=800" width="480" height="290" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;So how did I do it?&lt;/p&gt;  &lt;p&gt;To start, I had a quick meeting with the client to determine the calculation for the GOAL of the KPI. It was simply a percentage based calculation between current YTD sales and the prior YTD sales ((CurrentYTD/PriorYTD)*100). The value indicators would be determined by the results of the calculations. As seen in the above screenshot, if the calculation was greater than 100 a green arrow should be shown, if it was greater than or equal to 90 and less than 100 a yellow arrow should be show and if the value was less than 90 a red arrow should be shown.&lt;/p&gt;  &lt;p&gt;After all the requirements were gathered, the next step was to develop a method to dynamically show the arrows based on the KPI Range Values. First I created a calculated column that used the aforementioned calculation. To do this, add a calculated field to your existing dataset by right-clicking the dataset and select &lt;b&gt;Add Calculated Field&lt;/b&gt;. The Dataset Properties window will appear:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/_barBiSO8ITc/S4xXUPaSnhI/AAAAAAAAAGQ/qoZeD0Us6fw/s1600-h/clip_image004%5B3%5D.jpg"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="clip_image004" border="0" alt="clip_image004" src="http://lh6.ggpht.com/_barBiSO8ITc/S4xXUrM7ibI/AAAAAAAAAGU/HdwolItw_jM/clip_image004_thumb.jpg?imgmax=800" width="244" height="192" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Click the &lt;b&gt;Add&lt;/b&gt; button and insert your calculation. You can also return the calculation as part of your result set and ignore this step.&lt;/p&gt;  &lt;p&gt;Next add a column to an existing Table item on the report. Then add an Image into the column. See the right-most column in the following screenshot:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/_barBiSO8ITc/S4xXU26mefI/AAAAAAAAAGY/Gy8Q34OvcwM/s1600-h/clip_image006%5B4%5D.jpg"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="clip_image006" border="0" alt="clip_image006" src="http://lh4.ggpht.com/_barBiSO8ITc/S4xXVbZiN4I/AAAAAAAAAGc/jV-PfLj_Q7U/clip_image006_thumb%5B1%5D.jpg?imgmax=800" width="472" height="80" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Next, right-click the image and &lt;b&gt;select Image Properties&lt;/b&gt; and the following window will appear:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/_barBiSO8ITc/S4xXVuaE6UI/AAAAAAAAAGg/SJoDRJynj6Q/s1600-h/clip_image008%5B4%5D.jpg"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="clip_image008" border="0" alt="clip_image008" src="http://lh6.ggpht.com/_barBiSO8ITc/S4xXVx1eJTI/AAAAAAAAAGk/M914HmoHbr0/clip_image008_thumb%5B1%5D.jpg?imgmax=800" width="392" height="356" /&gt;&lt;/a&gt;    &lt;table cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;       &lt;tr&gt;         &lt;td width="584"&gt;           &lt;table cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;               &lt;tr&gt;                 &lt;td&gt;                   &lt;p&gt;=SWITCH&lt;/p&gt;                    &lt;p&gt;(&lt;/p&gt;                    &lt;p&gt;Fields!KPI.Value &amp;gt; 100, &amp;quot;GreenUpArrow&amp;quot;,&lt;/p&gt;                    &lt;p&gt;Fields!KPI.Value &amp;gt;= 90 AND Fields!KPI.Value &amp;lt; 100, &amp;quot;YellowAngleArrow&amp;quot;,&lt;/p&gt;                    &lt;p&gt;Fields!KPI.Value &amp;lt; 90, &amp;quot;RedDownArrow&amp;quot;&lt;/p&gt;                    &lt;p&gt;)&lt;/p&gt;                 &lt;/td&gt;               &lt;/tr&gt;             &lt;/tbody&gt;&lt;/table&gt;         &lt;/td&gt;       &lt;/tr&gt;     &lt;/tbody&gt;&lt;/table&gt; Then click the expression button &lt;a href="http://lh5.ggpht.com/_barBiSO8ITc/S4xXWA8UfyI/AAAAAAAAAGo/I-vUwNO7DnA/s1600-h/clip_image010%5B3%5D.jpg"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="clip_image010" border="0" alt="clip_image010" src="http://lh5.ggpht.com/_barBiSO8ITc/S4xXWvcmxwI/AAAAAAAAAGs/6BN6z8y-0xI/clip_image010_thumb.jpg?imgmax=800" width="29" height="22" /&gt;&lt;/a&gt; next to the &lt;b&gt;Use this image&lt;/b&gt; drop down list. In the expression textbox enter the following or something similar to the following:&lt;/p&gt;  &lt;p&gt;The SWITCH function will allow you to specify the image that should be displayed based on your KPI values. If you are not familiar with the SWITCH function read my blog posting, &lt;a href="http://www.bidn.com/blogs/PatrickLeBlanc/ssis/435/reporting-services-switch-function"&gt;Reporting Services SWITCH Function&lt;/a&gt; , for more details. In the function I specify the image to display based on the calculated KPI Value. &lt;/p&gt;  &lt;p&gt;Next click on the &lt;b&gt;Size&lt;/b&gt; in the right pane of the &lt;b&gt;Image Properties box&lt;/b&gt;:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/_barBiSO8ITc/S4xXXKsEF4I/AAAAAAAAAGw/sUCLbQCsa98/s1600-h/clip_image012%5B4%5D.jpg"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="clip_image012" border="0" alt="clip_image012" src="http://lh3.ggpht.com/_barBiSO8ITc/S4xXXrrkhGI/AAAAAAAAAG0/yjmuv2lF_Dg/clip_image012_thumb%5B1%5D.jpg?imgmax=800" width="386" height="351" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Ensure that the radio button labeled &lt;b&gt;Clip&lt;/b&gt; is selected and you can also adjust the padding on the images just in case you want to change the alignment of the image. Click ok and run your report. You now have KPI type images in your Reporting Services report.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;u&gt;Downloads&lt;/u&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;KPIExample&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.codeplex.com/MSFTDBProdSamples"&gt;AdventureWorks2008DW&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;As always, if you have any questions, comments or concerns regarding this posting please feel free to email me at &lt;a href="mailto:pleblanc@pragmaticworks.com"&gt;pleblanc@pragmaticworks.com&lt;/a&gt;. &lt;/p&gt;  &lt;p&gt;Talk to you soon,&lt;/p&gt;  &lt;p&gt;Patrick LeBlanc&lt;/p&gt;  &lt;p&gt;Founder &lt;a href="http://www.TSQLScripts.com"&gt;www.TSQLScripts.com&lt;/a&gt; and &lt;a href="http://www.SQLLunch.com"&gt;www.SQLLunch.com&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;Visit &lt;a href="http://www.BIDN.com"&gt;www.BIDN.com&lt;/a&gt;, Bring Business Intelligence to your company.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2046028067618905204-6411424900558287945?l=sqldownsouth.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sqldownsouth.blogspot.com/feeds/6411424900558287945/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sqldownsouth.blogspot.com/2010/03/ssrs-kpis-without-analysis-services.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2046028067618905204/posts/default/6411424900558287945'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2046028067618905204/posts/default/6411424900558287945'/><link rel='alternate' type='text/html' href='http://sqldownsouth.blogspot.com/2010/03/ssrs-kpis-without-analysis-services.html' title='SSRS – KPIs without Analysis Services'/><author><name>Patrick LeBlanc</name><uri>http://www.blogger.com/profile/01738972122068246140</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_barBiSO8ITc/TGG9UkphClI/AAAAAAAAAPY/dGyatbRnf0Y/S220/PatrickHeadShotFull.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh4.ggpht.com/_barBiSO8ITc/S4xXTkCR5BI/AAAAAAAAAGM/jwig4MFVcGw/s72-c/clip_image002_thumb%5B1%5D.jpg?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2046028067618905204.post-2955691510321992289</id><published>2010-02-24T04:38:00.001-08:00</published><updated>2010-02-24T04:38:31.220-08:00</updated><title type='text'>Upcoming SQL Lunch Webinars</title><content type='html'>&lt;p&gt;If you haven’t attended a SQLLunch, I suggest that you put this upcoming lunch on your schedule. Brad McGehee, SQL Server MVP, will be presenting an Introduction to Graphical Execution Plans. Brad has over 15 years of SQL Server Experience and over 6 years of training.    &lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;       &lt;tr&gt;         &lt;td valign="top" width="139"&gt;           &lt;p&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="499"&gt;           &lt;p&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top" width="638"&gt;           &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top" width="638"&gt;           &lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;               &lt;tr&gt;                 &lt;td valign="top" width="156"&gt;                   &lt;p&gt;&lt;a href="http://lh4.ggpht.com/_barBiSO8ITc/S4Udwip0FbI/AAAAAAAAAF4/CDbeFiMKftk/s1600-h/clip_image0013.jpg"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="clip_image001" border="0" alt="clip_image001" src="http://lh6.ggpht.com/_barBiSO8ITc/S4Udw9lptzI/AAAAAAAAAF8/vYcrda3A0fs/clip_image001_thumb.jpg?imgmax=800" width="119" height="134" /&gt;&lt;/a&gt;&lt;/p&gt;                 &lt;/td&gt;                  &lt;td valign="top" width="468"&gt;                   &lt;p&gt;&lt;b&gt;Add To Outlook: &lt;a href="http://sqllunch.com/addtooutlook/lunch10.ics"&gt;Add To Calendar&lt;/a&gt; &lt;/b&gt;&lt;a href="http://sqllunch.com/addtooutlook/lunch14.ics"&gt;&lt;/a&gt;&lt;/p&gt;                    &lt;p&gt;&lt;b&gt;Date and Time:&lt;/b&gt; 2/25/2010 11:30:00 AM CST &lt;/p&gt;                    &lt;p&gt;&lt;b&gt;Topic: &lt;/b&gt;Introduction to Graphical Execution Plans&lt;b&gt;&lt;/b&gt;&lt;/p&gt;                 &lt;/td&gt;               &lt;/tr&gt;             &lt;/tbody&gt;&lt;/table&gt;            &lt;p&gt;&lt;b&gt;Topic: &lt;/b&gt;#11-Introduction to Graphical Execution Plans               &lt;br /&gt;One of the black arts of being a DBA is learning how to read and interpret graphical execution plans. This is an important skill, as knowing how to read and interpret graphical execution plans can help the DBA tune queries for optimal performance. Without this crucial knowledge, the DBA won’t be able identify potential query problems, nor understand how to fix them. In this short, introductory level session, which is designed for DBAs with little or no knowledge of query execution plans, you will learn why execution plans are important, how they are created, learn about the different execution plan formats, discover different ways to produce them, find out about the difference between estimated and actual execution plans, and learn the basics of how to read them. Because this is an introductory session, after attending, I highly recommend you download this free eBook to learn more about execution plans: “SQL Server Execution Plans” by Grant Fritchey. http://www.sqlservercentral.com/articles/books/65831/ This session assumes attendees have a basic foundation of DBA knowledge. After attending the session, attendees will be able to immediately put what they have learned into practice.&lt;/p&gt;            &lt;p&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;p&gt;&lt;/p&gt; &lt;/td&gt;&lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top" width="638"&gt;           &lt;p&gt;&lt;b&gt;Upcoming Lunch&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top" width="638"&gt;           &lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;               &lt;tr&gt;                 &lt;td valign="top" width="156"&gt;                   &lt;p&gt;&lt;a href="http://lh5.ggpht.com/_barBiSO8ITc/S4UdxOdr3WI/AAAAAAAAAGA/-3ShiDbu0hw/s1600-h/clip_image0033.jpg"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="clip_image003" border="0" alt="clip_image003" src="http://lh3.ggpht.com/_barBiSO8ITc/S4UdxXMU21I/AAAAAAAAAGE/QAxRzR8X6L0/clip_image003_thumb.jpg?imgmax=800" width="143" height="108" /&gt;&lt;/a&gt;&lt;/p&gt;                 &lt;/td&gt;                  &lt;td valign="top" width="468"&gt;                   &lt;p&gt;&lt;b&gt;Add To Outlook: &lt;/b&gt;&lt;a href="http://sqllunch.com/addtooutlook/lunch14.ics"&gt;Add To Calendar&lt;/a&gt;&lt;/p&gt;                    &lt;p&gt;&lt;b&gt;Date and Time:&lt;/b&gt; 3/1/2010 11:30:00 AM CST&lt;/p&gt;                    &lt;p&gt;&lt;b&gt;Topic: &lt;/b&gt;Zero to Cube in 30 Minutes&lt;b&gt;&lt;/b&gt;&lt;/p&gt;                 &lt;/td&gt;               &lt;/tr&gt;             &lt;/tbody&gt;&lt;/table&gt;            &lt;p&gt;&lt;b&gt;BIO: &lt;/b&gt;Adam Jorgensen, MBA, MCDBA, MCITP: BI has over a decade of experience leading organizations around the world in developing and implementing enterprise solutions. His passion is finding new and innovative avenues for clients and the community to embrace business intelligence and lower barriers to implementation. Adam is also very involved in the community as a featured author on SQLServerCentral, SQLShare, as well as a regular contributor to the SQLPASS Virtual User Groups for Business Intelligence and other organizations. He regularly speaks at industry group events, major conferences, Code Camps, and SQLSaturday events on strategic and technical topics. &lt;/p&gt;            &lt;p&gt;             &lt;br /&gt;&lt;b&gt;Topic: &lt;/b&gt;#14-Zero to Cube in 30 Minutes               &lt;br /&gt;Don’t think you can learn to build a cube in Analysis Services on your lunch break? Come join BI Guru Adam Jorgensen&amp;#160;&amp;#160;&amp;#160;&amp;#160; as he takes you through the ins and outs of building a simple cube in under 30 minutes! Bring your questions for Q&amp;amp;A afterwards.&lt;/p&gt;            &lt;p&gt;Talk to you soon,&lt;/p&gt;            &lt;p&gt;Patrick LeBlanc, founder &lt;a href="http://www.SQLLunch.com"&gt;www.SQLLunch.com&lt;/a&gt; and &lt;a href="http://www.TSQLScripts.com"&gt;www.TSQLScripts.com&lt;/a&gt;. &lt;/p&gt;            &lt;p&gt;Visit &lt;a href="http://www.BIDN.com"&gt;www.BIDN.com&lt;/a&gt;, Bring Business Intelligence to your company.&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;     &lt;/tbody&gt;&lt;/table&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2046028067618905204-2955691510321992289?l=sqldownsouth.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sqldownsouth.blogspot.com/feeds/2955691510321992289/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sqldownsouth.blogspot.com/2010/02/upcoming-sql-lunch-webinars.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2046028067618905204/posts/default/2955691510321992289'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2046028067618905204/posts/default/2955691510321992289'/><link rel='alternate' type='text/html' href='http://sqldownsouth.blogspot.com/2010/02/upcoming-sql-lunch-webinars.html' title='Upcoming SQL Lunch Webinars'/><author><name>Patrick LeBlanc</name><uri>http://www.blogger.com/profile/01738972122068246140</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_barBiSO8ITc/TGG9UkphClI/AAAAAAAAAPY/dGyatbRnf0Y/S220/PatrickHeadShotFull.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh6.ggpht.com/_barBiSO8ITc/S4Udw9lptzI/AAAAAAAAAF8/vYcrda3A0fs/s72-c/clip_image001_thumb.jpg?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2046028067618905204.post-7357916590985358208</id><published>2010-02-22T19:07:00.001-08:00</published><updated>2010-02-22T19:07:29.741-08:00</updated><title type='text'>SSRS 2008 – Adding a Totals Row</title><content type='html'>&lt;p&gt;During a recent client engagement I was asked if there was a quick way to add a row containing totals for each corresponding column in the details row from a Tablix item. The tablix contained about 18 columns, and the person was entering an expression that would sum the value of the field in the corresponding detail rows. Fortunately, SSRS 2008 provides a very simple method that will perform this task.&lt;/p&gt;  &lt;p&gt;Assuming that you have a report that contains a Tablix item you can perform the following steps to quickly add a totals row to your report.&lt;/p&gt;  &lt;p&gt;1. In the Row Groups Panels, right-click the item labeled Details:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/_barBiSO8ITc/S4NGZgBeKhI/AAAAAAAAAFg/pv5UBpjG6xc/s1600-h/clip_image002%5B4%5D.jpg"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="clip_image002" border="0" alt="clip_image002" src="http://lh4.ggpht.com/_barBiSO8ITc/S4NGZzM9OBI/AAAAAAAAAFk/pP9F6OiU1aQ/clip_image002_thumb%5B1%5D.jpg?imgmax=800" width="414" height="247" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;2. Choose Before or After, this will depend on where you want to the totals to appear in the report.&lt;/p&gt;  &lt;p&gt;3. Once you make the selection a new row will be added to your report. It will contain an expression for each column in the details that sums the value of each column.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/_barBiSO8ITc/S4NGaZS9BXI/AAAAAAAAAFo/nglGanjDvSI/s1600-h/clip_image003%5B3%5D.gif"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="clip_image003" border="0" alt="clip_image003" src="http://lh4.ggpht.com/_barBiSO8ITc/S4NGa7LZ91I/AAAAAAAAAFs/xz2IukREX_A/clip_image003_thumb.gif?imgmax=800" width="112" height="38" /&gt;&lt;/a&gt;&lt;a href="http://lh6.ggpht.com/_barBiSO8ITc/S4NGbE4e2jI/AAAAAAAAAFw/UB6t5P6xsTI/s1600-h/clip_image005%5B4%5D.jpg"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="clip_image005" border="0" alt="clip_image005" src="http://lh6.ggpht.com/_barBiSO8ITc/S4NGb60fz2I/AAAAAAAAAF0/hEs32J6y18c/clip_image005_thumb%5B1%5D.jpg?imgmax=800" width="478" height="150" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;It’s just that simple. As always if you have any questions or concerns regarding this post, please feel free to email me &lt;a href="mailto:pleblanc@pragmaticworks.com"&gt;pleblanc@pragmaticworks.com&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;Talk to you soon,&lt;/p&gt;  &lt;p&gt;Patrick LeBlanc, founder &lt;a href="http://www.SQLLunch.com"&gt;www.SQLLunch.com&lt;/a&gt; and &lt;a href="http://www.TSQLScripts.com"&gt;www.TSQLScripts.com&lt;/a&gt;. &lt;/p&gt;  &lt;p&gt;Visit &lt;a href="http://www.BIDN.com"&gt;www.BIDN.com&lt;/a&gt;, Bring Business Intelligence to your company.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2046028067618905204-7357916590985358208?l=sqldownsouth.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sqldownsouth.blogspot.com/feeds/7357916590985358208/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sqldownsouth.blogspot.com/2010/02/ssrs-2008-adding-totals-row.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2046028067618905204/posts/default/7357916590985358208'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2046028067618905204/posts/default/7357916590985358208'/><link rel='alternate' type='text/html' href='http://sqldownsouth.blogspot.com/2010/02/ssrs-2008-adding-totals-row.html' title='SSRS 2008 – Adding a Totals Row'/><author><name>Patrick LeBlanc</name><uri>http://www.blogger.com/profile/01738972122068246140</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_barBiSO8ITc/TGG9UkphClI/AAAAAAAAAPY/dGyatbRnf0Y/S220/PatrickHeadShotFull.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh4.ggpht.com/_barBiSO8ITc/S4NGZzM9OBI/AAAAAAAAAFk/pP9F6OiU1aQ/s72-c/clip_image002_thumb%5B1%5D.jpg?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2046028067618905204.post-1220591314015376705</id><published>2010-02-19T14:13:00.001-08:00</published><updated>2010-02-19T14:15:57.206-08:00</updated><title type='text'>Reporting Services Switch Function</title><content type='html'>&lt;p&gt;Reporting Services Switch Function&lt;/p&gt;  &lt;p&gt;Recently a client requested to create a Reporting Services expression that emulated the CASE WHEN statement from T-SQL. The expression would use the selected parameter value to dynamically set the &lt;b&gt;Go to report&lt;/b&gt; value of an &lt;b&gt;Action&lt;/b&gt; under the properties of a textbox. In other words, if a user chose a parameter value of Report1 the go to report value would be set to Report1, if the user chose Report2 value would be set to Report2, so on and so forth.&lt;/p&gt;  &lt;p&gt;I looked at several varying expression methods to solve this problem including the IIF method, but I eventually settled for the SWITCH function because it offered the most flexibility. One small limitation was that the value was only updated when the report was refreshed. If a user changed the value of the parameter, he or she would be required to click the view report button to refresh the value. So how do you use the switch function? To specify the value for this example drop a text box on your report, right-click it and choose &lt;b&gt;Text Box Properties&lt;/b&gt;. The following dialogue box will appear:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/_barBiSO8ITc/S38NlZFk5yI/AAAAAAAAAFM/JdBDVdOu7H4/s1600-h/image%5B7%5D.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://lh3.ggpht.com/_barBiSO8ITc/S38Nl_csw8I/AAAAAAAAAFQ/bD3JbHsASpY/image_thumb%5B3%5D.png?imgmax=800" width="395" height="361" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Choose &lt;b&gt;Action&lt;/b&gt; from the list of available choices in the right pane. Ensure that the &lt;b&gt;Go to report&lt;/b&gt; radio button is selected. Then click the expressions button next to the &lt;b&gt;Specify a report&lt;/b&gt; drop down list. The expression dialogue window will appear.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/_barBiSO8ITc/S38NmhfAnGI/AAAAAAAAAFU/sKxyQmNNxXU/s1600-h/image%5B3%5D.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://lh5.ggpht.com/_barBiSO8ITc/S38NnBENdMI/AAAAAAAAAFY/_ttTJpUX0os/image_thumb%5B1%5D.png?imgmax=800" width="376" height="342" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p align="center"&gt;&lt;a href="http://lh3.ggpht.com/_barBiSO8ITc/S38NCdQ-Q7I/AAAAAAAAAFI/6zR12rw14mU/s1600-h/clip_image005%5B6%5D.gif"&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;In the &lt;b&gt;Set expression for ReportName&lt;/b&gt; textbox you would type an expression similar to the following:&lt;/p&gt;  &lt;table border="1" cellspacing="0" cellpadding="2" width="371"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign="top" width="369"&gt;         &lt;p&gt;=SWITCH&lt;/p&gt;          &lt;p&gt;(&lt;/p&gt;          &lt;p&gt;Parameters!WhichReport.Value=&amp;quot;Report2&amp;quot;, &amp;quot;Report2&amp;quot;,&lt;/p&gt;          &lt;p&gt;Parameters!WhichReport.Value=&amp;quot;Report3&amp;quot;, &amp;quot;Report3&amp;quot;,&lt;/p&gt;          &lt;p&gt;Parameters!WhichReport.Value=&amp;quot;Report4&amp;quot;, &amp;quot;Report4&amp;quot;&lt;/p&gt;          &lt;p&gt;)&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;The SWITCH function should be used when you have three or more conditions to test. When evaluated to true the function returns the first value in the series of available conditions.&lt;/p&gt;  &lt;p&gt;I welcome any comments, criticisms or suggestions regarding this post. How would you have solved this problem? I have attached a small report project that simulates my approach. As always if you have any questions regarding this post please feel free to email me at &lt;a href="mailto:pleblanc@pragmaticworks.com"&gt;pleblanc@pragmaticworks.com&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;Talk to you soon,&lt;/p&gt;  &lt;p&gt;Patrick LeBlanc, founder &lt;a href="http://www.SQLLunch.com"&gt;www.SQLLunch.com&lt;/a&gt; and &lt;a href="http://www.TSQLScripts.com"&gt;www.TSQLScripts.com&lt;/a&gt;. &lt;/p&gt;  &lt;p&gt;Visit &lt;a href="http://www.BIDN.com"&gt;www.BIDN.com&lt;/a&gt;, Bring Business Intelligence to your company.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2046028067618905204-1220591314015376705?l=sqldownsouth.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sqldownsouth.blogspot.com/feeds/1220591314015376705/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sqldownsouth.blogspot.com/2010/02/reporting-services-switch-function.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2046028067618905204/posts/default/1220591314015376705'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2046028067618905204/posts/default/1220591314015376705'/><link rel='alternate' type='text/html' href='http://sqldownsouth.blogspot.com/2010/02/reporting-services-switch-function.html' title='Reporting Services Switch Function'/><author><name>Patrick LeBlanc</name><uri>http://www.blogger.com/profile/01738972122068246140</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_barBiSO8ITc/TGG9UkphClI/AAAAAAAAAPY/dGyatbRnf0Y/S220/PatrickHeadShotFull.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh3.ggpht.com/_barBiSO8ITc/S38Nl_csw8I/AAAAAAAAAFQ/bD3JbHsASpY/s72-c/image_thumb%5B3%5D.png?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2046028067618905204.post-4371151608950527028</id><published>2009-12-01T04:37:00.001-08:00</published><updated>2009-12-01T04:37:27.187-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Patrick LeBlanc'/><category scheme='http://www.blogger.com/atom/ns#' term='Business Intelligence'/><category scheme='http://www.blogger.com/atom/ns#' term='User Group'/><category scheme='http://www.blogger.com/atom/ns#' term='SQL Server'/><title type='text'>December 2009 – Baton Rouge SQL Server User Group</title><content type='html'>&lt;p&gt;&lt;a href="http://batonrouge.sqlgroups.com/"&gt;&lt;b&gt;December SQL Server User Group Meeting&lt;/b&gt;&lt;/a&gt;&lt;b&gt; &lt;/b&gt;&lt;/p&gt;  &lt;p&gt;Location: &lt;b&gt;At &lt;/b&gt;&lt;a href="http://batonrouge.sqlgroups.com/"&gt;&lt;b&gt;Lamar Advertising&lt;/b&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Wednesday, December 2, 2009&lt;/p&gt;  &lt;p&gt;6:00 PM - 8:00 PM &lt;/p&gt;  &lt;h6&gt;&lt;font size="4"&gt;Sponsored by: &lt;/font&gt;&lt;a href="http://www.emc.com/"&gt;&lt;font size="4"&gt;EMC&lt;/font&gt;&lt;/a&gt;&lt;/h6&gt;  &lt;p&gt;&lt;font size="5"&gt;&lt;b&gt;Topic&lt;/b&gt; &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="5"&gt;An Overview of Business Intelligence &lt;/font&gt;&lt;/p&gt;  &lt;h6&gt;&lt;/h6&gt;  &lt;p&gt;&lt;b&gt;Presenter&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Brandon McMillon&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;Brandon McMillon is a Senior Solutions Principal at EMC.&amp;#160; He has 10 years of experience at Microsoft, working on the Visual Studio &amp;amp; Windows development teams.&amp;#160; He was also a Chief Software Architect for a Microsoft Gold Partner before coming to EMC.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Abstract:&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;This talk will first examine the current marketplace for Business Intelligence, and how it has gotten there.&amp;#160; We’ll look at how EMC is leveraging some of the newer tools and products to lower the costs and effort for implementing BI, in the context of a real-world EMC BI project.&amp;#160; We’ll also share best practices &amp;amp; lessons we’ve learned in these projects.&amp;#160; Finally, we’ll look at the next generation of BI tools and products, and talk about how they will impact the market and what problems they’re attempting to solve.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Agenda&lt;/b&gt;     &lt;table border="0" cellpadding="0"&gt;&lt;tbody&gt;       &lt;tr&gt;         &lt;td width="35%"&gt;           &lt;p&gt;5:45 pm - 6:00 pm:&lt;/p&gt;         &lt;/td&gt;          &lt;td&gt;           &lt;p&gt;General Introduction/Food and Drinks&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td width="35%"&gt;           &lt;p&gt;6:00 pm - 7:30 pm:&lt;/p&gt;         &lt;/td&gt;          &lt;td&gt;           &lt;p&gt;Overview of Business Intelligence&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td width="35%"&gt;           &lt;p&gt;7:30 pm - until:&lt;/p&gt;         &lt;/td&gt;          &lt;td&gt;           &lt;p&gt;Open forum for questions&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;     &lt;/tbody&gt;&lt;/table&gt; &lt;/p&gt;  &lt;p&gt;Talk to you soon&lt;/p&gt;  &lt;p&gt;Patrick LeBlanc, founder &lt;a href="http://www.tsqlscripts.com"&gt;www.tsqlscripts.com&lt;/a&gt; and &lt;a href="http://www.sqllunch.com"&gt;www.sqllunch.com&lt;/a&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2046028067618905204-4371151608950527028?l=sqldownsouth.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sqldownsouth.blogspot.com/feeds/4371151608950527028/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sqldownsouth.blogspot.com/2009/12/december-2009-baton-rouge-sql-server.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2046028067618905204/posts/default/4371151608950527028'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2046028067618905204/posts/default/4371151608950527028'/><link rel='alternate' type='text/html' href='http://sqldownsouth.blogspot.com/2009/12/december-2009-baton-rouge-sql-server.html' title='December 2009 – Baton Rouge SQL Server User Group'/><author><name>Patrick LeBlanc</name><uri>http://www.blogger.com/profile/01738972122068246140</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_barBiSO8ITc/TGG9UkphClI/AAAAAAAAAPY/dGyatbRnf0Y/S220/PatrickHeadShotFull.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2046028067618905204.post-4756673764415055109</id><published>2009-12-01T03:59:00.000-08:00</published><updated>2009-12-01T04:02:07.682-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Linear Gauge Control'/><category scheme='http://www.blogger.com/atom/ns#' term='Reporting Services'/><category scheme='http://www.blogger.com/atom/ns#' term='Patrick LeBlanc'/><category scheme='http://www.blogger.com/atom/ns#' term='SQL Server'/><title type='text'>Linear Gauge Control: A Practical Use</title><content type='html'>&lt;p&gt;SQL Server Reporting Services 2008 introduced several new features. One key feature was the inclusion of the Gauge Controls. I was recently asked to provide a real-world example of the Linear Gauge Control. Since I am always up for a challenge, I delve head deep into the gauge controls. After doing a little reading and testing of the linear control I chose my path. I started with the following report:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/_barBiSO8ITc/SxUFr8K5zJI/AAAAAAAAAEI/ygrXAqeMgwI/s1600-h/clip_image0024.jpg"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="clip_image002" border="0" alt="clip_image002" src="http://lh5.ggpht.com/_barBiSO8ITc/SxUFsBg74UI/AAAAAAAAAEM/5JGnRbCkbec/clip_image002_thumb1.jpg?imgmax=800" width="392" height="133" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;The data in the report can be reproduced using the stored procedure provided at the end of the posting. As you can see the report contains Sales data from each country. Looking at the report I noticed, after a little time, that the United States has the largest amount of sales. In the past I would have added a parameter that allowed dynamic sorts based on the Total Sales column, which is not a bad solution. This helps the end-user to quickly identify the BIG winners and losers in regards to sales. However, what about all the countries that fall in between? As a result, I decided to add a linear gauge control that would graphically depict sales as a percentage.&lt;/p&gt;  &lt;p&gt;When you initially add the Linear Gauge control to the report, there are several items (ranges, pointers and labels) that are unnecessary.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/_barBiSO8ITc/SxUFsoU8sgI/AAAAAAAAAEQ/milI8j3sO4M/s1600-h/clip_image0043.jpg"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="clip_image004" border="0" alt="clip_image004" src="http://lh5.ggpht.com/_barBiSO8ITc/SxUFs_vkoAI/AAAAAAAAAEU/3RpTgrRk0a8/clip_image004_thumb.jpg?imgmax=800" width="244" height="76" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Therefore before attempting to associate data with the control, I remove three things:&lt;/p&gt;  &lt;p&gt;1. LinearPointer2&lt;/p&gt;  &lt;p&gt;2. Two right-most Ranges, which are shaded in the lighter two shades of gray&lt;/p&gt;  &lt;p&gt;I also hide the labels and any tick marks, which can be done by selecting the entire scale and un-checking the items labeled &lt;b&gt;Show Labels&lt;/b&gt; and &lt;b&gt;Show Major Tick Marks&lt;/b&gt;.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/_barBiSO8ITc/SxUFtOS4mFI/AAAAAAAAAEY/GCCpySMQUjM/s1600-h/clip_image0064.jpg"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="clip_image006" border="0" alt="clip_image006" src="http://lh4.ggpht.com/_barBiSO8ITc/SxUFtQjdIGI/AAAAAAAAAEc/aVveB04RoVI/clip_image006_thumb1.jpg?imgmax=800" width="325" height="127" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;In then end you are left with a control that looks like this:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/_barBiSO8ITc/SxUFtvMgOFI/AAAAAAAAAEg/pkRSezLLGLQ/s1600-h/clip_image0083.jpg"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="clip_image008" border="0" alt="clip_image008" src="http://lh6.ggpht.com/_barBiSO8ITc/SxUFuCEA7XI/AAAAAAAAAEk/oIV-eDXgs1w/clip_image008_thumb.jpg?imgmax=800" width="244" height="36" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;The next thing I did was to set the &lt;b&gt;End range at scale value&lt;/b&gt; for the remaining Range to 100. Since I am attempting to graphically depict sales as a percentage, comparing the values to 100 should provide a meaningful representation of the data. To calculate the percentages I used the following expression:&lt;/p&gt;  &lt;p&gt;&lt;b&gt;=(Fields!TotalSales.Value/SUM(Fields!TotalSales.Value,&amp;quot;Tablix1&amp;quot;))*100&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;In the expression I divide the Sales for each country by the total sales for all countries. Note that the sum for all countries is calculated by using the sum function, including the scope value. Finally the value is multiplied by 100 to ensure that the result is between 0 and 100, which is the start and end values of the controls only range (the remaining dark grey bar in the control).&lt;/p&gt;  &lt;p&gt;Now the only thing left is to assign the calculated value to LiinearPointer1. To do this, select the orange part of the control only. Then right click, the following dialogue box will appear:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/_barBiSO8ITc/SxUFuhOH7wI/AAAAAAAAAEo/PCwoh0q_MN4/s1600-h/clip_image0103.jpg"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="clip_image010" border="0" alt="clip_image010" src="http://lh3.ggpht.com/_barBiSO8ITc/SxUFvF81IZI/AAAAAAAAAEs/6PYT57haPS4/clip_image010_thumb.jpg?imgmax=800" width="218" height="129" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Click &lt;b&gt;Pointer Properties, &lt;/b&gt;then the Linear Pointer Properties dialogue box will appear. Choose the expression button next to the textbox labeled value and insert the above calculation. Once complete run the report and you will be presented with a result similar to the following:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/_barBiSO8ITc/SxUFvZTqVrI/AAAAAAAAAEw/F8_LjMEMLNs/s1600-h/clip_image0125.jpg"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="clip_image012" border="0" alt="clip_image012" src="http://lh5.ggpht.com/_barBiSO8ITc/SxUFvn6RRUI/AAAAAAAAAE0/SJLHj-j-5hA/clip_image012_thumb2.jpg?imgmax=800" width="390" height="129" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;As you can see from the above image, an end user can easily identify which country is selling and which is not. If you have any questions or comments concerning this topic please feel free to email me at &lt;a href="mailto:pleblanc@pragmaticworks.com"&gt;pleblanc@pragmaticworks.com&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;Talk to you soon&lt;/p&gt;  &lt;p&gt;Patrick LeBlanc, founder &lt;a href="http://www.sqlscripts.com"&gt;www.sqlscripts.com&lt;/a&gt; and &lt;a href="http://www.sqllunch.com"&gt;www.sqllunch.com&lt;/a&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2046028067618905204-4756673764415055109?l=sqldownsouth.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sqldownsouth.blogspot.com/feeds/4756673764415055109/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sqldownsouth.blogspot.com/2009/12/linear-gauge-control-practical-use.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2046028067618905204/posts/default/4756673764415055109'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2046028067618905204/posts/default/4756673764415055109'/><link rel='alternate' type='text/html' href='http://sqldownsouth.blogspot.com/2009/12/linear-gauge-control-practical-use.html' title='Linear Gauge Control: A Practical Use'/><author><name>Patrick LeBlanc</name><uri>http://www.blogger.com/profile/01738972122068246140</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_barBiSO8ITc/TGG9UkphClI/AAAAAAAAAPY/dGyatbRnf0Y/S220/PatrickHeadShotFull.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh5.ggpht.com/_barBiSO8ITc/SxUFsBg74UI/AAAAAAAAAEM/5JGnRbCkbec/s72-c/clip_image002_thumb1.jpg?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2046028067618905204.post-6675637264463769101</id><published>2009-11-24T09:43:00.001-08:00</published><updated>2009-11-24T09:43:06.846-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Patrick LeBlanc'/><category scheme='http://www.blogger.com/atom/ns#' term='Table-valued Parameters'/><category scheme='http://www.blogger.com/atom/ns#' term='SQL Server'/><title type='text'>SQL Server 2008: Table-valued parameters</title><content type='html'>&lt;p&gt;A new feature of SQL Server 2008 is Table-valued parameters (TVP).&amp;#160; This feature will allow Developers and DBAs to pass tables as parameters to stored procedures.&amp;#160; You cannot pass a variable table or temp table, you can only pass a Table Type, which is an alias data type or a user-defined type.&amp;#160; So how do you use it?&amp;#160; The first step is to create&amp;#160; a Table Type.&amp;#160; See the following script:&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;table cellspacing="0" cellpadding="2" width="400" border="5"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign="top" width="400"&gt;         &lt;p&gt;&lt;font size="1"&gt;USE AdventureWorks2008&lt;/font&gt;&lt;/p&gt;          &lt;p&gt;&lt;font size="1"&gt;GO&lt;/font&gt;&lt;/p&gt;          &lt;p&gt;&lt;font size="1"&gt;IF EXISTS (SELECT * FROM sys.types WHERE name = 'CountryCodes' AND schema_id = SCHEMA_ID('Sales'))&lt;/font&gt;&lt;/p&gt;          &lt;p&gt;&lt;font size="1"&gt;DROP TYPE Sales.CountryCodes&lt;/font&gt;&lt;/p&gt;          &lt;p&gt;&lt;font size="1"&gt;GO&lt;/font&gt;&lt;/p&gt;          &lt;p&gt;&lt;font size="1"&gt;CREATE TYPE Sales.CountryCodes&lt;/font&gt;&lt;/p&gt;          &lt;p&gt;&lt;font size="1"&gt;AS TABLE&lt;/font&gt;&lt;/p&gt;          &lt;p&gt;&lt;font size="1"&gt;(&lt;/font&gt;&lt;/p&gt;          &lt;p&gt;&lt;font size="1"&gt;CountryCode nvarchar(3)&lt;/font&gt;&lt;/p&gt;          &lt;p&gt;&lt;font size="1"&gt;)&lt;/font&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;The next step is to create a Stored Procedure that will include a variable of the aforementioned Table Type. The following Stored Procedure uses the AdventureWorks2008 database to select Sales by Date and Country Region Code, using the TVP to limit the result to specified Country Region Codes:&lt;/p&gt;  &lt;table cellspacing="0" cellpadding="2" width="400" border="5"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign="top" width="400"&gt;         &lt;p&gt;&lt;font size="1"&gt;USE AdventureWorks2008 &lt;/font&gt;&lt;/p&gt;          &lt;p&gt;&lt;font size="1"&gt;GO &lt;/font&gt;&lt;/p&gt;          &lt;p&gt;&lt;font size="1"&gt;IF(OBJECT_ID('Sales.GetSalesByDateAndRegion')) IS NOT NULL &lt;/font&gt;&lt;/p&gt;          &lt;p&gt;&lt;font size="1"&gt;DROP PROC Sales.GetSalesByDateAndRegion &lt;/font&gt;&lt;/p&gt;          &lt;p&gt;&lt;font size="1"&gt;GO &lt;/font&gt;&lt;/p&gt;          &lt;p&gt;&lt;font size="1"&gt;CREATE PROC Sales.GetSalesByDateAndRegion &lt;/font&gt;&lt;/p&gt;          &lt;p&gt;&lt;font size="1"&gt;@Month varchar(20), &lt;/font&gt;&lt;/p&gt;          &lt;p&gt;&lt;font size="1"&gt;@Year int, &lt;/font&gt;&lt;/p&gt;          &lt;p&gt;&lt;font size="1"&gt;&lt;strong&gt;&lt;font color="#ff0000"&gt;@CountryRegions Sales.CountryCodes readonly&lt;/font&gt;&lt;/strong&gt; &lt;/font&gt;&lt;/p&gt;          &lt;p&gt;&lt;font size="1"&gt;AS &lt;/font&gt;&lt;/p&gt;          &lt;p&gt;&lt;font size="1"&gt;SET NOCOUNT OFF &lt;/font&gt;&lt;/p&gt;          &lt;p&gt;&lt;font size="1"&gt;SELECT &lt;/font&gt;&lt;/p&gt;          &lt;p&gt;&lt;font size="1"&gt;&amp;#160;&amp;#160; cr.Name, &lt;/font&gt;&lt;/p&gt;          &lt;p&gt;&lt;font size="1"&gt;&amp;#160;&amp;#160; SUM(TotalDue) TotalDue &lt;/font&gt;&lt;/p&gt;          &lt;p&gt;&lt;font size="1"&gt;FROM Sales.SalesOrderHeader sod &lt;/font&gt;&lt;/p&gt;          &lt;p&gt;&lt;font size="1"&gt;INNER JOIN Sales.SalesTerritory st &lt;/font&gt;&lt;/p&gt;          &lt;p&gt;&lt;font size="1"&gt;&amp;#160;&amp;#160; ON sod.TerritoryID = st.TerritoryID &lt;/font&gt;&lt;/p&gt;          &lt;p&gt;&lt;font size="1"&gt;INNER JOIN Person.CountryRegion cr &lt;/font&gt;&lt;/p&gt;          &lt;p&gt;&lt;font size="1"&gt;&amp;#160;&amp;#160; ON st.CountryRegionCode = cr.CountryRegionCode &lt;/font&gt;&lt;/p&gt;          &lt;p&gt;&lt;strong&gt;&lt;font color="#ff0000" size="1"&gt;INNER JOIN @CountryRegions c &lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;          &lt;p&gt;&lt;font size="1"&gt;&lt;strong&gt;&lt;font color="#ff0000"&gt;&amp;#160;&amp;#160; ON cr.CountryRegionCode = c.CountryRegionCode&lt;/font&gt;&lt;/strong&gt; &lt;/font&gt;&lt;/p&gt;          &lt;p&gt;&lt;font size="1"&gt;WHERE &lt;/font&gt;&lt;/p&gt;          &lt;p&gt;&lt;font size="1"&gt;&amp;#160;&amp;#160; DATENAME(MONTH,sod.OrderDate) = @Month AND &lt;/font&gt;&lt;/p&gt;          &lt;p&gt;&lt;font size="1"&gt;&amp;#160;&amp;#160; YEAR(sod.OrderDate) = @Year &lt;/font&gt;&lt;/p&gt;          &lt;p&gt;&lt;font size="1"&gt;GROUP BY &lt;/font&gt;&lt;/p&gt;          &lt;p&gt;&lt;font size="1"&gt;&amp;#160;&amp;#160;&amp;#160; cr.Name, &lt;/font&gt;&lt;/p&gt;          &lt;p&gt;&lt;font size="1"&gt;&amp;#160;&amp;#160;&amp;#160; DATENAME(MONTH,sod.OrderDate), &lt;/font&gt;&lt;/p&gt;          &lt;p&gt;&lt;font size="1"&gt;&amp;#160;&amp;#160;&amp;#160; YEAR(sod.OrderDate) &lt;/font&gt;&lt;/p&gt;          &lt;p&gt;&lt;font size="1"&gt;SET NOCOUNT ON &lt;/font&gt;&lt;/p&gt;          &lt;p&gt;&lt;font size="1"&gt;GO&lt;/font&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;In the variable declaration of in the above stored procedure, the last variable is declared as the Table Type (Sales.CountryCodes) created in the first script.&amp;#160; Then the Table-valued Parameter (TVP) is used in the last JOIN of the query to limit the result to the items or Country Region Codes contained with the TVP.&amp;#160; On thing to be aware of is that the Table Type is read only.&amp;#160; The contents of the table cannot be modified.&amp;#160; Now that all of the formalities are out of the way, how do you use this in T-SQL?&amp;#160; The following example is a script of how to call a stored procedure that has a TVP as a parameter:&lt;/p&gt;  &lt;table cellspacing="0" cellpadding="2" width="400" border="5"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign="top" width="400"&gt;         &lt;p&gt;&lt;font size="1"&gt;USE AdventureWorks2008&lt;/font&gt;&lt;/p&gt;          &lt;p&gt;&lt;font size="1"&gt;GO&lt;/font&gt;&lt;/p&gt;          &lt;p&gt;&lt;font size="1"&gt;DECLARE&lt;/font&gt;&lt;/p&gt;          &lt;p&gt;&lt;font size="1"&gt;@StartDate datetime,&lt;/font&gt;&lt;/p&gt;          &lt;p&gt;&lt;font size="1"&gt;@EndDate datetime,&lt;/font&gt;&lt;/p&gt;          &lt;p&gt;&lt;font size="1"&gt;&lt;strong&gt;&lt;font color="#ff0000"&gt;@CountryRegions Sales.CountryCodes&lt;/font&gt;&lt;/strong&gt; &lt;/font&gt;&lt;/p&gt;          &lt;p&gt;&lt;font size="1"&gt;SELECT&lt;/font&gt;&lt;/p&gt;          &lt;p&gt;&lt;font size="1"&gt;@StartDate = '4/1/2002',&lt;/font&gt;&lt;/p&gt;          &lt;p&gt;&lt;font size="1"&gt;@EndDate = '4/30/2002'&lt;/font&gt;&lt;/p&gt;          &lt;p&gt;&lt;strong&gt;&lt;font color="#ff0000" size="1"&gt;INSERT INTO @CountryRegions&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;          &lt;p&gt;&lt;strong&gt;&lt;font color="#ff0000" size="1"&gt;VALUES('US'), ('CA')&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;          &lt;p&gt;&lt;font size="1"&gt;EXEC Sales.GetSalesByDateAndRegion&lt;/font&gt;&lt;/p&gt;          &lt;p&gt;&lt;font size="1"&gt;@StartDate,&lt;/font&gt;&lt;/p&gt;          &lt;p&gt;&lt;font size="1"&gt;@EndDate,&lt;/font&gt;&lt;/p&gt;          &lt;p&gt;&lt;strong&gt;&lt;font color="#ff0000" size="1"&gt;@CountryRegions&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;As you can see in the above script, you will populate the TVP the same way that any other table is populated.&amp;#160; Once it is populated it can be passed to a stored procedure.&amp;#160; &lt;/p&gt;  &lt;p&gt;Talk to you soon,&lt;/p&gt;  &lt;p&gt;Patrick LeBlanc, Founder &lt;a href="http://www.tsqlscripts.com"&gt;www.tsqlscripts.com&lt;/a&gt; and &lt;a href="http://www.sqllunch.com"&gt;www.sqllunch.com&lt;/a&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2046028067618905204-6675637264463769101?l=sqldownsouth.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sqldownsouth.blogspot.com/feeds/6675637264463769101/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sqldownsouth.blogspot.com/2009/11/sql-server-2008-table-valued-parameters.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2046028067618905204/posts/default/6675637264463769101'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2046028067618905204/posts/default/6675637264463769101'/><link rel='alternate' type='text/html' href='http://sqldownsouth.blogspot.com/2009/11/sql-server-2008-table-valued-parameters.html' title='SQL Server 2008: Table-valued parameters'/><author><name>Patrick LeBlanc</name><uri>http://www.blogger.com/profile/01738972122068246140</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_barBiSO8ITc/TGG9UkphClI/AAAAAAAAAPY/dGyatbRnf0Y/S220/PatrickHeadShotFull.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2046028067618905204.post-8662238133890010482</id><published>2009-11-23T06:01:00.001-08:00</published><updated>2009-11-23T06:01:08.961-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Reporting Services'/><category scheme='http://www.blogger.com/atom/ns#' term='Patrick LeBlanc'/><category scheme='http://www.blogger.com/atom/ns#' term='Window 7'/><title type='text'>Deploying Reports on Windows 7</title><content type='html'>&lt;p&gt;Recently I tried to deploy a report to a Report Server on my laptop, which is running Windows 7 Ultimate. Unfortunately I received the following error:&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;The permissions granted to user ‘MachineName\SomeUser ‘ are insufficient for performing this operations.&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;This confused me a bit since my account was an administrator. After digging a bit I found a very simple solution. Right-click on the Visual Studio icon or the Business Intelligence Development Studio icon and click &lt;b&gt;Properties&lt;/b&gt;. Then go to the &lt;b&gt;Compatibility&lt;/b&gt; tab. On that tab, in the &lt;b&gt;Privilege Level&lt;/b&gt; section select the checkbox next to the item labeled &lt;b&gt;Run this program as administrator&lt;/b&gt;. See the below screen shot example:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/_barBiSO8ITc/SwqVo855QgI/AAAAAAAAAEA/8JdXxMcuyYw/s1600-h/clip_image002%5B7%5D.jpg"&gt;&lt;img title="clip_image002" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="453" alt="clip_image002" src="http://lh6.ggpht.com/_barBiSO8ITc/SwqVpPXrltI/AAAAAAAAAEE/JPTTU9hnt5Q/clip_image002_thumb%5B4%5D.jpg?imgmax=800" width="320" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Once done, restart the application and Deploy your report.&lt;/p&gt;  &lt;p&gt;Talk to you soon&lt;/p&gt;  &lt;p&gt;Patrick LeBlanc, founder &lt;a href="http://www.tsqlscripts.com"&gt;www.tsqlscripts.com&lt;/a&gt; and &lt;a href="http://www.sqllunch.com"&gt;www.sqllunch.com&lt;/a&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2046028067618905204-8662238133890010482?l=sqldownsouth.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sqldownsouth.blogspot.com/feeds/8662238133890010482/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sqldownsouth.blogspot.com/2009/11/deploying-reports-on-windows-7.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2046028067618905204/posts/default/8662238133890010482'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2046028067618905204/posts/default/8662238133890010482'/><link rel='alternate' type='text/html' href='http://sqldownsouth.blogspot.com/2009/11/deploying-reports-on-windows-7.html' title='Deploying Reports on Windows 7'/><author><name>Patrick LeBlanc</name><uri>http://www.blogger.com/profile/01738972122068246140</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://3.bp.blogspot.com/_barBiSO8ITc/TGG9UkphClI/AAAAAAAAAPY/dGyatbRnf0Y/S220/PatrickHeadShotFull.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh6.ggpht.com/_barBiSO8ITc/SwqVpPXrltI/AAAAAAAAAEE/JPTTU9hnt5Q/s72-c/clip_image002_thumb%5B4%5D.jpg?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2046028067618905204.post-5395379242754729327</id><published>2009-11-20T06:50:00.001-08:00</published><updated>2009-11-20T06:50:43.626-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Reporting Services'/><category scheme='http://www.blogger.com/atom/ns#' term='Patrick LeBlanc'/><category scheme='http://www.blogger.com/atom/ns#' term='SQL Server'/><category scheme='http://www.blogger.com/atom/ns#' term='Live 
