<?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'><id>tag:blogger.com,1999:blog-6855339694180792214</id><updated>2009-11-04T19:56:12.251-08:00</updated><title type='text'>Jessica M. Moss</title><subtitle type='html'>BI, SSIS, and other ABCs</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://jessicammoss.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6855339694180792214/posts/default'/><link rel='alternate' type='text/html' href='http://jessicammoss.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/6855339694180792214/posts/default?start-index=26&amp;max-results=25'/><author><name>Jessica M. Moss</name><uri>http://www.blogger.com/profile/12673369096441752530</uri><email>noreply@blogger.com</email></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>47</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-6855339694180792214.post-291650773706638740</id><published>2009-10-31T15:13:00.001-07:00</published><updated>2009-10-31T15:13:30.392-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='WIT'/><category scheme='http://www.blogger.com/atom/ns#' term='Conference'/><title type='text'>PASS Community Summit 2009</title><content type='html'>&lt;p&gt;One of my favorite times of the year is the PASS Community Summit.&amp;#160; It's five jam-packed days of SQL Server sessions by Microsoft employees, MVPs, and the people that you read about in technical books.&amp;#160; It's pre-conference and post-conference workshops on all different levels of topics of SQL Server.&amp;#160; It's a way to meet new people who love to do what you love to do and connect with old friends who you only see once a year.&amp;#160; It's a way to get a job or sell a job.&amp;#160; It's all of this and so much more that I can't even begin to describe. &lt;/p&gt;  &lt;p&gt;I'm excited to attend for the third year starting tomorrow.&amp;#160; If you are attending the Summit, I hope you'll come and introduce yourself.&amp;#160; You can find me at one of these locations/times: &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Monday, November 2, 2009&lt;/strong&gt;     &lt;br /&gt;&lt;strong&gt;4:30pm-6:30pm&lt;/strong&gt;&amp;#160; &lt;br /&gt;&lt;strong&gt;Networking Pre-Con&lt;/strong&gt; - I'm really excited to learn about the best ways to meet people and meet other people who are interested in the same thing! &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Tuesday, November 3, 2009      &lt;br /&gt;11:45am-12:45pm&lt;/strong&gt;     &lt;br /&gt;&lt;strong&gt;&lt;a href="http://summit2009.sqlpass.org/Agenda/SpecialEvents.aspx#BOF_Lunch"&gt;Birds of a Feather Lunch&lt;/a&gt; (Expo Hall 4B) -&lt;/strong&gt; I am hosting a table during lunch on “Is Business Intelligence an Oxymoron?”.&amp;#160; I'm looking forward to hearing your thoughts on how we can incorporate the business into our data warehouse and delivery design.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Wednesday, November 4, 2009      &lt;br /&gt;11:30am-1:30pm&lt;/strong&gt;     &lt;br /&gt;&lt;strong&gt;&lt;a href="http://summit2009.sqlpass.org/Agenda/SpecialEvents.aspx#WIT_Luncheon"&gt;Women in Technology Luncheon and Panel Discussion&lt;/a&gt; (Room 6BC)&lt;/strong&gt; - I am one of the panelists discussing “Energizing the Next Generation: Encouraging and Inspiring Young Women to Choose Tech Careers”.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;3:00pm-4:15pm&lt;/strong&gt;     &lt;br /&gt;&lt;strong&gt;&lt;a href="http://summit2009.sqlpass.org/Agenda/ProgramSessions/AddingSSRSReportBellsandWhistles.aspx"&gt;“Adding SSRS Report Bells and Whistles”&lt;/a&gt; (Room 612 (165) )&lt;/strong&gt; – I am presenting on Reporting Services 2008 design best practices and guidance.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Thursday, November 5, 2009      &lt;br /&gt;12:00pm - 12:30pm&lt;/strong&gt;     &lt;br /&gt;&lt;strong&gt;Book Signing (South Lobby, across from Summit Bookstore)&lt;/strong&gt; – I’ll be hanging out by the bookstore as one of the authors of &lt;a href="http://www.amazon.com/Microsoft-Server-Integration-Services-Problem-Design-Solution/dp/0470525762/ref=sr_1_7?ie=UTF8&amp;amp;s=books&amp;amp;qid=1257025680&amp;amp;sr=8-7"&gt;Microsoft SQL Server 2008 Integration Services Problem-Design-Solution&lt;/a&gt;.&amp;#160; Definitely come by if you have any question about the book!&lt;/p&gt;  &lt;p&gt;Of course, I will also be attending sessions and some evening events, so please come and talk to me there instead.&amp;#160; I’m looking forward to attending the best Summit yet.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6855339694180792214-291650773706638740?l=jessicammoss.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jessicammoss.blogspot.com/feeds/291650773706638740/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=6855339694180792214&amp;postID=291650773706638740' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6855339694180792214/posts/default/291650773706638740'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6855339694180792214/posts/default/291650773706638740'/><link rel='alternate' type='text/html' href='http://jessicammoss.blogspot.com/2009/10/pass-community-summit-2009.html' title='PASS Community Summit 2009'/><author><name>Jessica M. Moss</name><uri>http://www.blogger.com/profile/12673369096441752530</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='13946993737221108088'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6855339694180792214.post-5296262507484670252</id><published>2009-10-15T22:10:00.001-07:00</published><updated>2009-10-16T06:10:41.154-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Conference'/><category scheme='http://www.blogger.com/atom/ns#' term='Community'/><title type='text'>Fall 2009 Conference Odyssey</title><content type='html'>&lt;p&gt;As promised, I wanted to let you know about a few events where I'll be in the upcoming weeks.  This Saturday (10/17), I'm making the trek up to East Iowa for their &lt;a href="http://www.sqlsaturday.com/"&gt;SQLSaturday&lt;/a&gt; event.  They pulled in quite a few great speakers, and they've also invited me to speak on my favorite BI products: SSRS, SSIS, and SSAS!  It looks like registration is still open, so if you're in the area, you should definitely sign up, come by, and say hi. &lt;/p&gt;&lt;p&gt;The following week, I am pleased to be speaking at the &lt;a href="http://www.charlotte-sql.org/"&gt;Charlotte SQL Server User Group&lt;/a&gt; on &lt;em&gt;Extract, Transform, and Load your Data Warehouse&lt;/em&gt;.  I'll be making the drive down (audio book suggestions, anyone?) on Thursday, October 22 to speak that evening.  I'm looking forward to meeting new people and seeing some old friends in the area.  I'll also be staying over for a soon-to-be-announced event on Friday. &lt;/p&gt;&lt;p&gt;The first week of November, I'll be at the &lt;a href="http://summit2009.sqlpass.org/"&gt;PASS Community Summit&lt;/a&gt;.  These is my third year attending the conference, second year speaking, and first time as a panelist on the WIT luncheon.  This conference is so big and has so much going on that I will give it its own post closer to that time. &lt;/p&gt;&lt;p&gt;The following week is the &lt;a href="http://www.devconnections.com/shows/FALL2009SP/default.asp?s=138"&gt;SharePoint Connections&lt;/a&gt; conference.  My friend and colleague, &lt;a href="http://vsteamsystemcentral.com/cs21/blogs/kevin_israel/default.aspx"&gt;Kevin Israel&lt;/a&gt;, invited me to deliver a joint preconference workshop entitled &lt;em&gt;&lt;a href="http://www.devconnections.com/shows/FALL2009SP/default.asp?c=3&amp;amp;s=138"&gt;SharePoint BI - Building Dazzling Dashboards and Sizzling Scorecards in SharePoint&lt;/a&gt;&lt;/em&gt;.  Can you tell which section will be my part? *coughBIcough* ;)  The all-day workshop is on November 9, so I'll be taking the rest of the week to attend some sessions and talk shop with attendees.  Please do look me up and introduce yourself! &lt;/p&gt;&lt;p&gt;Rounding out the list is the &lt;a href="http://www.sharepointsaturday.org/richmond/"&gt;SharePoint Saturday event in Richmond&lt;/a&gt; on November 21.  I'm not sure if I'm volunteering or speaking yet, but either way, I will be there!  The SharePoint Saturday events have taken off like a rocket, and I'm excited to participate. &lt;/p&gt;&lt;p&gt;That wraps up the current list.  I hope to see you at one of the events.&lt;/p&gt;&lt;p&gt;&lt;em&gt;Update: Fixed SQLSaturday date&lt;/em&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6855339694180792214-5296262507484670252?l=jessicammoss.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jessicammoss.blogspot.com/feeds/5296262507484670252/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=6855339694180792214&amp;postID=5296262507484670252' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6855339694180792214/posts/default/5296262507484670252'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6855339694180792214/posts/default/5296262507484670252'/><link rel='alternate' type='text/html' href='http://jessicammoss.blogspot.com/2009/10/fall-2009-conference-odyssey.html' title='Fall 2009 Conference Odyssey'/><author><name>Jessica M. Moss</name><uri>http://www.blogger.com/profile/12673369096441752530</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='13946993737221108088'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6855339694180792214.post-8838357129622961675</id><published>2009-10-08T10:54:00.001-07:00</published><updated>2009-10-08T10:54:36.146-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MVP'/><category scheme='http://www.blogger.com/atom/ns#' term='Community'/><title type='text'>I'm an Author and Other Sort-Of-But-Not-Completely-Related News</title><content type='html'>&lt;p&gt;&lt;a href="http://www.wiley.com/"&gt;&lt;img style="display: inline; margin: 0px 20px 0px 0px" height="265" src="http://media.wiley.com/product_data/coverImage300/62/04705257/0470525762.jpg" width="216" align="left" /&gt;&lt;/a&gt;Over the years, I've read several posts similar to this one, and now it's my turn!&amp;#160; At the beginning of this year, I was asked to participate in writing a new SSIS book with co-authors: Erik Veerman, Brian Knight, and Jay Hackney.&amp;#160; After many late nights and just a few cans of Mountain Dew, I'm proud to say that the book has been completed and will be published at the beginning of November.&amp;#160; Please check out: &lt;a href="http://www.amazon.com/Microsoft-Server-Integration-Services-Problem-Design-Solution/dp/0470525762/ref=sr_1_1?ie=UTF8&amp;amp;s=books&amp;amp;qid=1255021297&amp;amp;sr=8-1"&gt;Microsoft SQL Server 2008 Integration Services Problem-Design-Solution&lt;/a&gt;. &lt;/p&gt;  &lt;p&gt;Along with that exciting news comes an apology for not blogging as much as I would have liked.&amp;#160; Here's a quick recap from the past several months: &lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://www.davidgiard.com"&gt;David Giard&lt;/a&gt; invited me to do a &lt;a href="http://www.davidgiard.com/2009/08/28/JessicaMossOnSSIS.aspx"&gt;short video on Integrations Services&lt;/a&gt; on his Technology and friends series. &lt;/li&gt;    &lt;li&gt;I had a great conversation with Richard Campbell and Greg Hughes on &lt;a href="http://www.runasradio.com/default.aspx?showNum=125"&gt;Reporting Services on RunAs Radio&lt;/a&gt;. &lt;/li&gt;    &lt;li&gt;The PASS BI Virtual Chapter had me speak a few times.&amp;#160; I definitely recommend you check out the &lt;a href="http://bi.sqlpass.org/Webinars/tabid/2567/Default.aspx"&gt;line up of great speakers/presentations&lt;/a&gt; that they have coming up as well! &lt;/li&gt;    &lt;li&gt;I flew to Nashville to participate in the &lt;a href="http://www.devlink.net/"&gt;devLink conference&lt;/a&gt; with two presentations on SSRS and SSIS. &lt;/li&gt;    &lt;li&gt;I am honored a second time to be re-awarded a &lt;a href="https://mvp.support.microsoft.com/profile/Jessica.Moss"&gt;Microsoft MVP Award&lt;/a&gt; on October 1.&amp;#160; Thank you all for allowing me to come speak at events and share the exciting things I've learned with you. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Also, if you follow me on Twitter, you probably already know a lot of this.&amp;#160; And if you don't follow me on Twitter, &lt;a href="http://twitter.com/jessicammoss"&gt;why not&lt;/a&gt;? &lt;/p&gt;  &lt;p&gt;More posts to follow on future events and, of course, some technical content as well!&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6855339694180792214-8838357129622961675?l=jessicammoss.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jessicammoss.blogspot.com/feeds/8838357129622961675/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=6855339694180792214&amp;postID=8838357129622961675' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6855339694180792214/posts/default/8838357129622961675'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6855339694180792214/posts/default/8838357129622961675'/><link rel='alternate' type='text/html' href='http://jessicammoss.blogspot.com/2009/10/i-author-and-other-sort-of-but-not.html' title='I&amp;#39;m an Author and Other Sort-Of-But-Not-Completely-Related News'/><author><name>Jessica M. Moss</name><uri>http://www.blogger.com/profile/12673369096441752530</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='13946993737221108088'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6855339694180792214.post-324455589274768902</id><published>2009-07-08T20:12:00.001-07:00</published><updated>2009-07-08T20:12:15.278-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Community'/><title type='text'>Sitting on the beach in Pensacola</title><content type='html'>&lt;p&gt;The &lt;a href="http://www.sqlsaturday.com/"&gt;SQLSaturday&lt;/a&gt; phenomenon is taking over the nation!&amp;#160; I was honored to be selected to give a presentation at the Pensacola event on June 6, 2009 on PerformancePoint Server 2007 M&amp;amp;A (I'm still waiting to hear more information about next version incorporated with SharePoint :))&amp;#160; I had a great time seeing the SQLSaturday crew, old friends, and meeting some new friends! &lt;/p&gt;  &lt;p&gt;While I was down in beautiful Pensacola, I was also thrilled to participate in the third episode of the &lt;a href="http://channel9.msdn.com/shows/toolshed/"&gt;It's All About The Tools TV Show&lt;/a&gt;!&amp;#160; I gave a demonstration on the SSIS 2008 data profiling tools - you can check it out here: &lt;a href="http://channel9.msdn.com/shows/toolshed/Show-Episode-3-Its-All-About-The-Tools-TV-Show/"&gt;http://channel9.msdn.com/shows/toolshed/Show-Episode-3-Its-All-About-The-Tools-TV-Show/&lt;/a&gt;.&amp;#160; &lt;a href="http://blogs.msdn.com/rfustino/"&gt;Russ Fustino&lt;/a&gt; and &lt;a href="http://www.vbnetexpert.com/"&gt;Stan Schultes&lt;/a&gt; put on a great show that I'm sure you're going to enjoy!&lt;/p&gt;  &lt;p&gt;I really enjoy speaking at events and sharing information on data warehousing and the Microsoft business intelligence suite.&amp;#160; I’ll warn you in advance that I prioritize engagements based on the shortest distance to water, sunshine, and community -- and not necessarily in that order :)&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6855339694180792214-324455589274768902?l=jessicammoss.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jessicammoss.blogspot.com/feeds/324455589274768902/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=6855339694180792214&amp;postID=324455589274768902' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6855339694180792214/posts/default/324455589274768902'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6855339694180792214/posts/default/324455589274768902'/><link rel='alternate' type='text/html' href='http://jessicammoss.blogspot.com/2009/07/sitting-on-beach-in-pensacola.html' title='Sitting on the beach in Pensacola'/><author><name>Jessica M. Moss</name><uri>http://www.blogger.com/profile/12673369096441752530</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='13946993737221108088'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6855339694180792214.post-4399365323881238679</id><published>2009-05-19T03:00:00.000-07:00</published><updated>2009-05-19T03:00:38.990-07:00</updated><title type='text'>SQLTeach Vancouver 2009</title><content type='html'>&lt;p&gt;On June 8-12, I'll be attending and speaking for the &lt;a href="http://www.sqlteach.com/"&gt;DevTeach/SQLTeach Vancouver conference&lt;/a&gt;.  I've written about SQLTeach before, and I have to say that it's one of my favorite conferences.  It's a small group of attendees with speakers who are some of the biggest names in the field.  You really get a great opportunity to learn from and hobnob with speakers such as Peter DeBetta, Bill Graziano, Kevin Kline, Joe Webb, and more!  I know I'm looking forward to picking their brains on a few things. &lt;/p&gt;&lt;p&gt;A few highlights of the conference:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Monday night: Party with Vancouver IT community DevTeach Kickoff party &lt;/li&gt;&lt;li&gt;Weekend after: Alt.NET event - DevTeach attendees receive a special registration code &lt;/li&gt;&lt;li&gt;Preconferences: 3 preconferences on Silverlight, F#, and Agile Development &lt;/li&gt;&lt;li&gt;Keynote: Tim Huckaby will discuss "Your Development Happy Place" &lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;a href="http://www.sqlteach.com/Register.aspx"&gt;Register soon&lt;/a&gt; to get a great deal - the conference is right around the corner.  I look forward to seeing you there!&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6855339694180792214-4399365323881238679?l=jessicammoss.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jessicammoss.blogspot.com/feeds/4399365323881238679/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=6855339694180792214&amp;postID=4399365323881238679' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6855339694180792214/posts/default/4399365323881238679'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6855339694180792214/posts/default/4399365323881238679'/><link rel='alternate' type='text/html' href='http://jessicammoss.blogspot.com/2009/05/sqlteach-vancouver-2009.html' title='SQLTeach Vancouver 2009'/><author><name>Jessica M. Moss</name><uri>http://www.blogger.com/profile/12673369096441752530</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='13946993737221108088'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6855339694180792214.post-8563170357837943138</id><published>2009-05-13T22:24:00.001-07:00</published><updated>2009-05-13T22:32:45.142-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SSIS'/><title type='text'>Dimension ETL from One Source Table</title><content type='html'>&lt;p&gt;In an ideal world, the source system of your data warehouse has the exact information that you need to populate all of the fields in your dimensions.&amp;#160; In a less than ideal world (also known as the real world), we need to cobble pieces of data together.&amp;#160; You may come across one scenario where all of your dimension and fact information is in one large table.&amp;#160; How do we handle this ETL in SQL Server Integration Services?&lt;/p&gt;  &lt;p&gt;It is possible to load new records into your dimensions while loading your fact.&amp;#160; One way would be to use a Lookup transformation to check for existence, and if the business key doesn't yet exist, insert that value, return the surrogate key, and go along your merry way.&amp;#160; On the other hand, if you need to use those dimensions for other fact tables, you may decide to load only your dimensions first.&lt;/p&gt;  &lt;p&gt;To load all dimensions from one table, we can utilize the Aggregate transformation in SSIS, which provides the capability to perform aggregations on columns in your data flow.&amp;#160; The aggregations that are available to you include: Count, Count distinct, Sum, Average, Minimum, and Maximum.&amp;#160; You also include a column to group the data.&amp;#160; For the output that you're setting up, you can add as many columns to aggregate or group by that you need.&amp;#160; For those of you familiar with T-SQL, this concept should be very similar to the GROUP BY clause.&lt;/p&gt;  &lt;p&gt;When we're working with aggregations in SSIS, there are a few other things we should mention.&amp;#160; The aggregate transformation will not pass through all input columns, only the columns that you specify in your settings.&amp;#160; You can set comparison flags on your grouping columns on how to group the data together.&amp;#160; I also use the &amp;quot;Ignore case&amp;quot; option to help get a list of case insensitive distinct values from the column.&lt;/p&gt;  &lt;p&gt;Initially opening up the Aggregate transformation allows you to set up the columns you want aggregated and what you want to group by.&amp;#160; In this scenario, we will use the Group By function for each column to get a distinct list of values; however, if we put all of them on this screen, we will still end up with duplicate values.&amp;#160; Instead, we want to create multiple outputs that each contain a single Group By on the appropriate column.&lt;/p&gt;  &lt;p&gt;There's a sneaky little button at the top of the designer window that toggles between &lt;strong&gt;Advanced &lt;/strong&gt;and &lt;strong&gt;Basic &lt;/strong&gt;modes.&amp;#160; It defaults to &lt;strong&gt;Basic&lt;/strong&gt;, which is why you only see one list right now.&amp;#160; Push that button to toggle to &lt;strong&gt;Advanced&lt;/strong&gt; and create a different output for each dimension you need to populate.&amp;#160; Once you have a different output, you can perform a lookup against that dimension and only insert records that do not exist.&amp;#160; We end up with a package that looks similar to this to load all of our dimensions:&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;img src="http://www.jessicammoss.com/images/AggregateBlog.jpg" /&gt; &lt;/p&gt;  &lt;p&gt;The aggregate transformation has a little bit of a bad reputation, as well it should.&amp;#160; It is an asynchronous component, so it creates a new buffer set when it runs, uses a huge amount of memory, and slows down your package execution time.&amp;#160; See Kirk's great article about performance tuning SSIS (the aggregate transformation notes are applicable to both 2005 and 2008) for more information: &lt;a href="http://www.simple-talk.com/sql/sql-server-2005/sql-server-2005-ssis-tuning-the-dataflow-task/"&gt;http://www.simple-talk.com/sql/sql-server-2005/sql-server-2005-ssis-tuning-the-dataflow-task/&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;This method may not be the best for your situation.&amp;#160; It will load the source data twice and doesn’t take into account any slowly changing attributes.&amp;#160; This should only be used if the situation calls for it.&amp;#160; Hopefully, this will help you if you do fall into that situation!&lt;/p&gt;  &lt;p&gt;&lt;em&gt;Version used: SSIS 2008 SP1&lt;/em&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6855339694180792214-8563170357837943138?l=jessicammoss.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jessicammoss.blogspot.com/feeds/8563170357837943138/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=6855339694180792214&amp;postID=8563170357837943138' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6855339694180792214/posts/default/8563170357837943138'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6855339694180792214/posts/default/8563170357837943138'/><link rel='alternate' type='text/html' href='http://jessicammoss.blogspot.com/2009/05/dimension-etl-from-one-source-table.html' title='Dimension ETL from One Source Table'/><author><name>Jessica M. Moss</name><uri>http://www.blogger.com/profile/12673369096441752530</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='13946993737221108088'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6855339694180792214.post-6007692275121771595</id><published>2009-02-26T13:51:00.001-08:00</published><updated>2009-02-26T13:54:01.593-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SSIS'/><title type='text'>SSIS Insert Statement Using an OLE DB Destination</title><content type='html'>&lt;p&gt;When building a SQL Server Integration Services package, many business scenarios call for inserting a record into a table if it doesn't already exist.  The most commonly used database destination, the OLE DB destination, looks as though it can handle this through the &lt;strong&gt;SQL command&lt;/strong&gt; Data access mode.  Unfortunately, SSIS appearances can be deceiving... &lt;/p&gt;&lt;p&gt;In the OLE DB Destination, setting the Data access mode to &lt;strong&gt;SQL command&lt;/strong&gt; causes a SQL command text window to appear.  You can perform typical SSIS SQL statement actions, such as building the query through the Graphical Query Designer, importing the SQL from an external file, or parsing the query.  Note that there is no option to specify query parameters on this display.   You will not need to set query parameters because the OLE DB Destination uses this SQL statement to find the metadata of the desired insertion table.  Even adding a WHERE clause to filter the data will not change the outcome of the result.  All rows passed through the Data Flow pipeline are inserted into the destination table. &lt;/p&gt;&lt;p&gt;The SSIS OLE DB Destination uses the OLE DB Provider specified in the connection manager associated with that destination.  The resulting SQL statements from the OLE DB Provider set to use the &lt;strong&gt;SQL command&lt;/strong&gt; resemble the SQL statements from the &lt;strong&gt;Table or view&lt;/strong&gt; Data access mode.  I created an SSIS packages that inserts data into the AdventureWorksDW DimProductCategory table using both destination data access modes.  The insert portions (taken from SQL Profiler) both match this code:&lt;/p&gt;&lt;pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-: nonefont-family:consolas, 'Courier New', courier, monospace;font-size:8pt;color:#f4f4f4;"   &gt;&lt;span style="color:#0000ff;"&gt;exec&lt;/span&gt; sp_cursor 180150003,4,0,N&lt;span style="color:#006080;"&gt;'[DimProductCategory]'&lt;/span&gt;,@ProductCategoryAlternateKey=9,@EnglishProductCategoryName=N&lt;span style="color:#006080;"&gt;'Bikes'&lt;/span&gt;,@SpanishProductCategoryName=N&lt;span style="color:#006080;"&gt;'Bicicleta'&lt;/span&gt;,@FrenchProductCategoryName=N&lt;span style="color:#006080;"&gt;'Vélo'&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#0000ff;"&gt;go&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#0000ff;"&gt;exec&lt;/span&gt; sp_cursor 180150003,4,0,N&lt;span style="color:#006080;"&gt;'[DimProductCategory]'&lt;/span&gt;,@ProductCategoryAlternateKey=10,@EnglishProductCategoryName=N&lt;span style="color:#006080;"&gt;'Components'&lt;/span&gt;,@SpanishProductCategoryName=N&lt;span style="color:#006080;"&gt;'Componente'&lt;/span&gt;,@FrenchProductCategoryName=N&lt;span style="color:#006080;"&gt;'Composant'&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#0000ff;"&gt;go&lt;/span&gt; &lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Note that sp_cursor, an internal API server cursor call that the OLE DB Provider uses, performs the insert. &lt;/p&gt;&lt;p&gt;The difference in these two methods is in the set up of the initial cursor.  The &lt;strong&gt;SQL command&lt;/strong&gt; method uses two statements:&lt;/p&gt;&lt;br /&gt;&lt;pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-: nonefont-family:consolas, 'Courier New', courier, monospace;font-size:8pt;color:#f4f4f4;"   &gt;&lt;span style="color:#0000ff;"&gt;declare&lt;/span&gt; @p1 &lt;span style="color:#0000ff;"&gt;int&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#0000ff;"&gt;set&lt;/span&gt; @p1=1073741825&lt;br /&gt;&lt;span style="color:#0000ff;"&gt;declare&lt;/span&gt; @p5 &lt;span style="color:#0000ff;"&gt;int&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#0000ff;"&gt;set&lt;/span&gt; @p5=229378&lt;br /&gt;&lt;span style="color:#0000ff;"&gt;declare&lt;/span&gt; @p6 &lt;span style="color:#0000ff;"&gt;int&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#0000ff;"&gt;set&lt;/span&gt; @p6=294916&lt;br /&gt;&lt;span style="color:#0000ff;"&gt;exec&lt;/span&gt; sp_cursorprepare @p1 &lt;span style="color:#0000ff;"&gt;output&lt;/span&gt;,&lt;span style="color:#0000ff;"&gt;NULL&lt;/span&gt;,N&lt;span style="color:#006080;"&gt;'SELECT  ProductCategoryKey&lt;br /&gt;    ,ProductCategoryAlternateKey&lt;br /&gt;    ,EnglishProductCategoryName&lt;br /&gt;    ,SpanishProductCategoryName&lt;br /&gt;    ,FrenchProductCategoryName&lt;br /&gt;FROM    DimProductCategory&lt;br /&gt;WHERE   ProductCategoryKey &amp;lt;&amp;gt; 1'&lt;/span&gt;,1,@p5 &lt;span style="color:#0000ff;"&gt;output&lt;/span&gt;,@p6 &lt;span style="color:#0000ff;"&gt;output&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#0000ff;"&gt;select&lt;/span&gt; @p1, @p5, @p6&lt;br /&gt;&lt;span style="color:#0000ff;"&gt;go&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#0000ff;"&gt;declare&lt;/span&gt; @p2 &lt;span style="color:#0000ff;"&gt;int&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#0000ff;"&gt;set&lt;/span&gt; @p2=180150003&lt;br /&gt;&lt;span style="color:#0000ff;"&gt;declare&lt;/span&gt; @p3 &lt;span style="color:#0000ff;"&gt;int&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#0000ff;"&gt;set&lt;/span&gt; @p3=2&lt;br /&gt;&lt;span style="color:#0000ff;"&gt;declare&lt;/span&gt; @p4 &lt;span style="color:#0000ff;"&gt;int&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#0000ff;"&gt;set&lt;/span&gt; @p4=4&lt;br /&gt;&lt;span style="color:#0000ff;"&gt;declare&lt;/span&gt; @p5 &lt;span style="color:#0000ff;"&gt;int&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#0000ff;"&gt;set&lt;/span&gt; @p5=-1&lt;br /&gt;&lt;span style="color:#0000ff;"&gt;exec&lt;/span&gt; sp_cursorexecute 1073741825,@p2 &lt;span style="color:#0000ff;"&gt;output&lt;/span&gt;,@p3 &lt;span style="color:#0000ff;"&gt;output&lt;/span&gt;,@p4 &lt;span style="color:#0000ff;"&gt;output&lt;/span&gt;,@p5 &lt;span style="color:#0000ff;"&gt;output&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#0000ff;"&gt;select&lt;/span&gt; @p2, @p3, @p4, @p5&lt;br /&gt;&lt;span style="color:#0000ff;"&gt;go&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;While the &lt;strong&gt;Table or view&lt;/strong&gt; method uses just one:&lt;br /&gt;&lt;br /&gt;&lt;pre style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0em; OVERFLOW: visible; WIDTH: 100%; COLOR: black; BORDER-TOP-STYLE: none; LINE-HEIGHT: 12pt; PADDING-TOP: 0px; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-: nonefont-family:consolas, 'Courier New', courier, monospace;font-size:8pt;color:#f4f4f4;"   &gt;&lt;span style="color:#0000ff;"&gt;declare&lt;/span&gt; @p1 &lt;span style="color:#0000ff;"&gt;int&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#0000ff;"&gt;set&lt;/span&gt; @p1=180150003&lt;br /&gt;&lt;span style="color:#0000ff;"&gt;declare&lt;/span&gt; @p3 &lt;span style="color:#0000ff;"&gt;int&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#0000ff;"&gt;set&lt;/span&gt; @p3=2&lt;br /&gt;&lt;span style="color:#0000ff;"&gt;declare&lt;/span&gt; @p4 &lt;span style="color:#0000ff;"&gt;int&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#0000ff;"&gt;set&lt;/span&gt; @p4=4&lt;br /&gt;&lt;span style="color:#0000ff;"&gt;declare&lt;/span&gt; @p5 &lt;span style="color:#0000ff;"&gt;int&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#0000ff;"&gt;set&lt;/span&gt; @p5=-1&lt;br /&gt;&lt;span style="color:#0000ff;"&gt;exec&lt;/span&gt; sp_cursoropen @p1 &lt;span style="color:#0000ff;"&gt;output&lt;/span&gt;,N&lt;span style="color:#006080;"&gt;'select * from [dbo].[DimProductCategory]'&lt;/span&gt;,@p3 &lt;span style="color:#0000ff;"&gt;output&lt;/span&gt;,@p4 &lt;span style="color:#0000ff;"&gt;output&lt;/span&gt;,@p5 &lt;span style="color:#0000ff;"&gt;output&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#0000ff;"&gt;select&lt;/span&gt; @p1, @p3, @p4, @p5&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;You can solve the original business problem of only inserting records if it doesn't already exist by performing a lookup against your destination table, redirecting the rows that do not match, and inserting those rows using the OLE DB Destination.  Depending on your particular scenario, other methods also exist that do not use a lookup.  Whichever method you use, know that it will not entail a hand-written insert statement from an OLE DB Destination.&lt;/p&gt;&lt;p&gt;&lt;em&gt;Version used: SQL Server 2005&lt;/em&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6855339694180792214-6007692275121771595?l=jessicammoss.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jessicammoss.blogspot.com/feeds/6007692275121771595/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=6855339694180792214&amp;postID=6007692275121771595' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6855339694180792214/posts/default/6007692275121771595'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6855339694180792214/posts/default/6007692275121771595'/><link rel='alternate' type='text/html' href='http://jessicammoss.blogspot.com/2009/02/ssis-insert-statement-using-ole-db.html' title='SSIS Insert Statement Using an OLE DB Destination'/><author><name>Jessica M. Moss</name><uri>http://www.blogger.com/profile/12673369096441752530</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='13946993737221108088'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6855339694180792214.post-5080327924482965158</id><published>2009-02-12T21:14:00.001-08:00</published><updated>2009-02-12T21:14:57.123-08:00</updated><title type='text'>SQL Down Under</title><content type='html'>&lt;p&gt;I had the honor of being invited to join &lt;a href="http://sqlblog.com/blogs/greg_low/default.aspx"&gt;Greg Low&lt;/a&gt;, fellow &lt;a href="http://www.solidq.com"&gt;Solid Quality&lt;/a&gt; mentor, on an episode of &lt;a href="http://www.sqldownunder.com/"&gt;SQL Down Under&lt;/a&gt;.&amp;#160; On last week’s episode, we discussed the new features of SQL Server Reporting Services 2008 and best practices for all versions of Reporting Services.&amp;#160; You can check out the &lt;a href="http://www.sqldownunder.com/PreviousShows/tabid/98/Default.aspx"&gt;episode here&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;During the episode, Greg and I talked about reports that can be used to monitor Reporting Services.&amp;#160; You can find these reports on &lt;a href="http://www.codeplex.com/MSFTRSProdSamples/Wiki/View.aspx?title=SS2005%21Server%20Management%20Sample%20Reports&amp;amp;referringTitle=Home"&gt;CodePlex&lt;/a&gt;.&amp;#160; Also, the design book that I mentioned is called &lt;a href="http://www.amazon.com/Information-Dashboard-Design-Effective-Communication/dp/0596100167/ref=pd_bbs_sr_1?ie=UTF8&amp;amp;s=books&amp;amp;qid=1234501948&amp;amp;sr=8-1"&gt;Information Dashboard Design&lt;/a&gt;.&amp;#160; I hope you enjoy the episode and these resources!&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6855339694180792214-5080327924482965158?l=jessicammoss.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jessicammoss.blogspot.com/feeds/5080327924482965158/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=6855339694180792214&amp;postID=5080327924482965158' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6855339694180792214/posts/default/5080327924482965158'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6855339694180792214/posts/default/5080327924482965158'/><link rel='alternate' type='text/html' href='http://jessicammoss.blogspot.com/2009/02/sql-down-under.html' title='SQL Down Under'/><author><name>Jessica M. Moss</name><uri>http://www.blogger.com/profile/12673369096441752530</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='13946993737221108088'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6855339694180792214.post-5205261378951810175</id><published>2009-01-26T21:02:00.001-08:00</published><updated>2009-01-26T21:02:41.992-08:00</updated><title type='text'>Analysis Services MDX Templates Exploration</title><content type='html'>&lt;p&gt;While looking in SQL Server Management Studio for something else entirely, I stumbled upon the Template Explorer.&amp;#160; This window provides Analysis Services templates for querying data mining structures (DMX), querying cubes (MDX), and performing DDL (XMLA).&amp;#160; I took a deeper look into the “MDX Queries” templates.&lt;/p&gt;  &lt;p&gt;To view the Template Explorer, select the &lt;strong&gt;View&lt;/strong&gt; menu &amp;gt; &lt;strong&gt;Template Explorer&lt;/strong&gt; option.&amp;#160; To see the Analysis Services template, select the Analysis Services cube option at the top of the window.&amp;#160; Double-clicking any of the templates listed will then open a new query window containing the selected query.&amp;#160; For example, the Basic Query will show the following:&lt;/p&gt;  &lt;p&gt;&lt;font face="Courier New"&gt;&lt;font color="#0000ff"&gt;Select&lt;/font&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;row_axis, mdx_set,&amp;gt; &lt;font color="#0000ff"&gt;on Columns&lt;/font&gt;,       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;column_axis, mdx_set,&amp;gt; &lt;font color="#0000ff"&gt;on Rows&lt;/font&gt; &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Courier New"&gt;&lt;font color="#0000ff"&gt;From&lt;/font&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;from_clause, mdx_name,&amp;gt;       &lt;br /&gt;&lt;font color="#0000ff"&gt;Where&lt;/font&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;where_clause, mdx_set,&amp;gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;You have two choices at this point in time: selecting the &lt;strong&gt;Query&lt;/strong&gt; menu &amp;gt; &lt;strong&gt;Specify Values for Template Parameters&lt;/strong&gt; option or replacing the phrases enclosed by angle brackets manually.&amp;#160; The former choice opens a dialog box with all parameters listed to allow you to fill in the correct value; however, you will need to type in the full hierarchical structure by hand.&amp;#160; If you’re anything like me, this is bound to cause a typo and a few frustrating minutes of letter-by-letter comparison.&amp;#160; I prefer to modify the query directly by dragging the measure or dimensional attribute/hierarchy to my query window.&amp;#160; Then I don’t need to worry about mistyping anything.&lt;/p&gt;  &lt;p&gt;While these templates will not teach you how to write MDX, they are an easy way to save yourself some typing or looking up a particular keyword that you have forgotten.&amp;#160; Looking over the XMLA queries, they appear to be more useful, as I am forever looking up the exact syntax for a particular XMLA query.&lt;/p&gt;  &lt;p&gt;&lt;em&gt;Versions: SQL Server 2005/2008&lt;/em&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6855339694180792214-5205261378951810175?l=jessicammoss.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jessicammoss.blogspot.com/feeds/5205261378951810175/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=6855339694180792214&amp;postID=5205261378951810175' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6855339694180792214/posts/default/5205261378951810175'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6855339694180792214/posts/default/5205261378951810175'/><link rel='alternate' type='text/html' href='http://jessicammoss.blogspot.com/2009/01/analysis-services-mdx-templates.html' title='Analysis Services MDX Templates Exploration'/><author><name>Jessica M. Moss</name><uri>http://www.blogger.com/profile/12673369096441752530</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='13946993737221108088'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6855339694180792214.post-2905198326026308111</id><published>2009-01-08T16:35:00.000-08:00</published><updated>2009-01-08T16:48:16.324-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SSIS'/><title type='text'>SSIS Designer Tip</title><content type='html'>&lt;p&gt;When designing a SQL Server Integration Services package, it can seem tedious to drag over each and every task and component from the toolbox to your Control Flow and Data Flow and connect all of the precedence constraints and pipelines. You can alleviate some of this by modifying the default Business Intelligence options within Business Intelligence Development Studio (BIDS).&lt;br /&gt;&lt;br /&gt;Under the default settings, you can double-click any toolbox item and it will show up in your package designer with no connectors or specific place. To improve this, open up the Tools &gt; Options... menu in BIDS. Then expand Business Intelligence Designers and Integration Services Designers. You will see Control Flow Auto Connect and Data Flow Auto Connect. If you check the option to "Connect a new shape to the selected shape by default", the drop down lists for specifying connector type and location are enabled in each menu. I prefer to use a Success constraint and add the new shape to the right of the selected shape, but you have a few options based on your design predilection.&lt;br /&gt;&lt;br /&gt;Once these options are checked, double-clicking a toolbox item will add that item to the designer, using the options specified in the drop downs. You can of course change the type of constraint or move the item once it has been generated for you. Hopefully, this will save you a little bit of time when designing!&lt;br /&gt;&lt;br /&gt;[Hat tip] I read about this option from Donald Farmer's great &lt;a href="http://www.amazon.com/Rational-Guide-Extending-Script-Guides/dp/1932577254"&gt;SSIS Scripting book&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Versions: Visual Studio 2005, Visual Studio 2008&lt;/em&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6855339694180792214-2905198326026308111?l=jessicammoss.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jessicammoss.blogspot.com/feeds/2905198326026308111/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=6855339694180792214&amp;postID=2905198326026308111' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6855339694180792214/posts/default/2905198326026308111'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6855339694180792214/posts/default/2905198326026308111'/><link rel='alternate' type='text/html' href='http://jessicammoss.blogspot.com/2009/01/ssis-designer-tip.html' title='SSIS Designer Tip'/><author><name>Jessica M. Moss</name><uri>http://www.blogger.com/profile/12673369096441752530</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='13946993737221108088'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6855339694180792214.post-3702903310189337822</id><published>2009-01-05T15:02:00.000-08:00</published><updated>2009-01-05T15:09:31.582-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Conference'/><category scheme='http://www.blogger.com/atom/ns#' term='Community'/><title type='text'>Presentation References</title><content type='html'>Over the past two months, I had the honor of presenting at many user groups and conferences. I wanted to put together some information for those who attended (and for those who were unable to attend!).&lt;br /&gt;&lt;br /&gt;If you saw either "Building Reports in SQL Server Reporting Services 2008" or "New Features of SQL Server Integration Services 2008" and are excited to get your hands on a SQL Server 2008 instance, but your company won't upgrade... you can download a &lt;a href="http://www.microsoft.com/sqlserver/2008/en/us/try-it.aspx"&gt;free trial/evaluation&lt;/a&gt; version from Microsoft. Maybe you can even show your boss some of the things you learned from my presentation!&lt;br /&gt;&lt;br /&gt;@AndyLeonard: “You got your SSIS in my Twitter!”&lt;br /&gt;@JessicaMMoss: “You got your Twitter in my SSIS!”&lt;br /&gt;&lt;tab&gt;[Previous dialogue shamelessly stolen from &lt;a href="http://www.brentozar.com/"&gt;Brent Ozar's blog&lt;/a&gt; because it's a perfect lead-in to...]&lt;br /&gt;&lt;br /&gt;For those of you who are not familiar with &lt;a href="http://www.twitter.com/"&gt;Twitter&lt;/a&gt;, it's a micro-blogging tool / social network platform that has completely taken off over the past year. &lt;a href="http://sqlblog.com/blogs/andy_leonard"&gt;Andy Leonard&lt;/a&gt; invited me to join in his &lt;a href="http://sqlblog.com/blogs/andy_leonard/archive/2008/11/10/pass-summit-2008-ssis-scripting.aspx"&gt;"once-a-decade" great idea&lt;/a&gt;, using SSIS to write to Twitter! You can download the current version of the &lt;a href="http://www.codeplex.com/SSISTwitterSuite"&gt;SSISTwitterSuite&lt;/a&gt; from &lt;a href="http://www.codeplex.com/"&gt;CodePlex&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.sqlpass.org/"&gt;PASS&lt;/a&gt; puts on the largest SQL Server and Business Intelligence conference. If you attended, you can download the slides for both "SSIS Scripting" and "Building an SSIS Management Framework" (which I co-presented with Rushabh Mehta) by logging into the &lt;a href="http://summit2008.sqlpass.org/"&gt;summit site&lt;/a&gt;. As an attendee, you can also &lt;a href="http://www.softconference.com/pass/GENERIC.ASP?ID=3349"&gt;purchase a DVD&lt;/a&gt; of all of the sessions. If you are interested in the SSIS Framework discussed during the presentation, contact &lt;a href="http://www.solidq.com/na/NewsDetail.aspx?Id=2106"&gt;Solid Quality Mentors&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;This was my second time speaking at the &lt;a href="http://www.sqlteach.com/"&gt;DevTeach/SQLTeach conference&lt;/a&gt; in Canada, and I was thrilled to speak on SSIS, SSRS, and Data Mining in Office 2007! If you attended the conference, you can sign in and download the slides and custom component code. If you have an inkling to work with the data mining tools, check out &lt;a href="http://www.sqlserverdatamining.com/"&gt;http://www.sqlserverdatamining.com/&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Finally, the SQLPASS BI SIG Data Mining webcast was recorded. Once it is available, you should be able to listen to it at:&lt;br /&gt;&lt;a href="http://www.sqlpass.org/Community/SIGs/BusinessIntelligenceSIG/tabid/82/Default.aspx"&gt;http://www.sqlpass.org/Community/SIGs/BusinessIntelligenceSIG/tabid/82/Default.aspx&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;I look forward to speaking at more events in the future!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6855339694180792214-3702903310189337822?l=jessicammoss.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jessicammoss.blogspot.com/feeds/3702903310189337822/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=6855339694180792214&amp;postID=3702903310189337822' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6855339694180792214/posts/default/3702903310189337822'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6855339694180792214/posts/default/3702903310189337822'/><link rel='alternate' type='text/html' href='http://jessicammoss.blogspot.com/2009/01/presentation-references.html' title='Presentation References'/><author><name>Jessica M. Moss</name><uri>http://www.blogger.com/profile/12673369096441752530</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='13946993737221108088'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6855339694180792214.post-1768633563091879718</id><published>2008-11-02T15:23:00.000-08:00</published><updated>2008-11-02T15:26:47.863-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Community'/><title type='text'>Jessica's BI Tour</title><content type='html'>I'll be flying up and down the east coast over the next two weeks, sharing information about the SQL Server Business Intelligence suite. I do hope you can make it to one of the sessions!&lt;br /&gt;&lt;br /&gt;11/3 - &lt;a href="http://tampabaybi.sqlpass.org/"&gt;Tampa Bay SQL Server Business Intelligence User Group&lt;/a&gt; - SSRS 2008&lt;br /&gt;11/6 - &lt;a href="http://sarasota.sqlpass.org/"&gt;Sarasota SQL Server Users Group&lt;/a&gt; - SSIS 2008&lt;br /&gt;11/11 - &lt;a href="http://opass.org/"&gt;Orlando PASS&lt;/a&gt; - SSRS 2008&lt;br /&gt;11/13 - &lt;a href="http://richmondsql.org/"&gt;Richmond SQL Server Users Group&lt;/a&gt; - SSRS 2008&lt;br /&gt;11/15 - &lt;a href="http://www.codecamp.org/"&gt;Raleigh Code Camp&lt;/a&gt; - SSRS 2008&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6855339694180792214-1768633563091879718?l=jessicammoss.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jessicammoss.blogspot.com/feeds/1768633563091879718/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=6855339694180792214&amp;postID=1768633563091879718' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6855339694180792214/posts/default/1768633563091879718'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6855339694180792214/posts/default/1768633563091879718'/><link rel='alternate' type='text/html' href='http://jessicammoss.blogspot.com/2008/11/jessicas-bi-tour.html' title='Jessica&apos;s BI Tour'/><author><name>Jessica M. Moss</name><uri>http://www.blogger.com/profile/12673369096441752530</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='13946993737221108088'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6855339694180792214.post-7312776357804196474</id><published>2008-10-21T01:11:00.000-07:00</published><updated>2008-11-11T21:12:02.156-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SSIS'/><title type='text'>Manipulating Excel Spreadsheets in SSIS</title><content type='html'>Tom, an attendee at last weekend’s &lt;a href="http://www.sqlsaturday.com/"&gt;SQLSaturday Olympia&lt;/a&gt;, asked me how to refresh a spreadsheet from within SQL Server Integration Services. My first thought was to turn on the connection’s “Refresh data when opening the file” option in the spreadsheet itself and avoid the situation entirely; however, this may not always be a viable solution. Here are the steps to perform the refresh from within an SSIS package.&lt;br /&gt;&lt;br /&gt;First, ensure that Microsoft.Office.Interop.Excel is registered in the GAC. If not, install the &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=59daebaa-bed4-4282-a28c-b864d8bfa513&amp;amp;displaylang=en"&gt;2007 Microsoft Office system Primary Interop Assemblies&lt;/a&gt;. This will need to be done on any machine where you plan on running this package.&lt;br /&gt;&lt;br /&gt;Next, create a script task in your SSIS package that contains the following code (include your spreadsheet name):&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;&lt;span style="color:#3333ff;"&gt;Imports&lt;/span&gt; System&lt;br /&gt;&lt;span style="color:#3333ff;"&gt;Imports&lt;/span&gt; System.Data&lt;br /&gt;&lt;span style="color:#3333ff;"&gt;Imports&lt;/span&gt; System.Math&lt;br /&gt;&lt;span style="color:#3333ff;"&gt;Imports&lt;/span&gt; Microsoft.SqlServer.Dts.Runtime&lt;br /&gt;&lt;span style="color:#3333ff;"&gt;Imports&lt;/span&gt; Microsoft.Office.Interop.Excel&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#3333ff;"&gt;Public Class&lt;/span&gt; ScriptMain&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#3333ff;"&gt;Public Sub&lt;/span&gt; Main()&lt;br /&gt;Dts.TaskResult = Dts.Results.Success&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#3333ff;"&gt;Dim&lt;/span&gt; excel &lt;span style="color:#3333ff;"&gt;As New&lt;/span&gt; Microsoft.Office.Interop.Excel.Application&lt;br /&gt;&lt;span style="color:#3333ff;"&gt;Dim&lt;/span&gt; wb &lt;span style="color:#3333ff;"&gt;As&lt;/span&gt; Microsoft.Office.Interop.Excel.Workbook&lt;br /&gt;&lt;br /&gt;wb = excel.Workbooks.Open(&lt;span style="color:#990000;"&gt;"C:\\TestExcelSS.xlsx"&lt;/span&gt;)&lt;br /&gt;wb.RefreshAll()&lt;br /&gt;wb.Save()&lt;br /&gt;wb.Close()&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;excel.Quit()&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;Runtime.InteropServices.Marshal.ReleaseComObject(excel)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;&lt;br /&gt;&lt;span style="color:#3333ff;"&gt;End Sub&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#3333ff;"&gt;End Class&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;You'll see error squiggles, but don't worry about them because they will disappear in just a minute. Save and close your package. In your Solution Explorer, right click on the package and select ‘View Code’.&lt;br /&gt;&lt;br /&gt;In the resulting XML, change the Build Settings ReferencePath property to:&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;"C:\Windows\assembly\GAC_MSIL\Microsoft.SqlServer.ScriptTask\9.0.242.0__89845dcd8080cc91\;C:\Windows\assembly\GAC_MSIL\Microsoft.SqlServer.ManagedDTS\9.0.242.0__89845dcd8080cc91\;C:\Windows\assembly\GAC\Microsoft.Office.Interop.Excel\12.0.0.0__71e9bce111e9429c\"&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Also change the Build References to include:&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;&amp;lt;Reference&lt;br /&gt;Name = "Microsoft.Office.Interop.Excel"&lt;br /&gt;AssemblyName = "Microsoft.Office.Interop.Excel"&lt;br /&gt;/&gt;&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;Save the XML, and reopen the package. Open the script task and select ‘Save’. This will compile the code, and now you can run your package.&lt;br /&gt;&lt;br /&gt;When working with COM references, you can use the script task GUI to add the reference by adding the desired component to the .NET framework folder. I could not find Microsoft.Office.Interop.Excel.dll on my machine to move to the framework folder, which is why we added the reference through the XML.&lt;br /&gt;&lt;br /&gt;As &lt;a href="http://dougbert.com/blogs/dougbert/archive/2008/06/21/excel-in-integration-services-part-3-of-3-issues-and-alternatives.aspx"&gt;Douglas Laudenschlager notes&lt;/a&gt;, writing server-side code to access client-side Office is &lt;a href="http://support.microsoft.com/kb/257757"&gt;unsupported&lt;/a&gt;. Please take these possible problems under advisement and code as necessary. You have been warned. :)&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;Update (11/12/08): Added last two lines to code to stop Excel process.&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Versions: Microsoft Office 2007, SQL Server 2005 SP2&lt;/em&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6855339694180792214-7312776357804196474?l=jessicammoss.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jessicammoss.blogspot.com/feeds/7312776357804196474/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=6855339694180792214&amp;postID=7312776357804196474' title='14 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6855339694180792214/posts/default/7312776357804196474'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6855339694180792214/posts/default/7312776357804196474'/><link rel='alternate' type='text/html' href='http://jessicammoss.blogspot.com/2008/10/manipulating-excel-spreadsheets-in-ssis.html' title='Manipulating Excel Spreadsheets in SSIS'/><author><name>Jessica M. Moss</name><uri>http://www.blogger.com/profile/12673369096441752530</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='13946993737221108088'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>14</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6855339694180792214.post-8152345886413128188</id><published>2008-10-12T22:28:00.000-07:00</published><updated>2008-10-12T22:30:57.090-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SSRS'/><title type='text'>IIS 7.0 Role Service SSRS Requirements</title><content type='html'>Using the default IIS 7.0 installation on Windows Server 2008 does not include all of the role services necessary to install SQL Server Reporting Services 2005.  I found this command in an online forum when looking for a list of all the needed role services.  (By the way, I apologize, but I can no longer find the post to link back to.  If it was you who wrote it, please post a comment with a link back to that post!)&lt;br /&gt;&lt;br /&gt;Here is the command.  I hope it helps you as much as it helped me!&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;ServerManagerCmd.exe -i Web-Server Web-Asp-Net Web-Http-Redirect Web-Windows-Auth Web-Metabase Web-WMI&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Version: SQL Server 2005&lt;/em&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6855339694180792214-8152345886413128188?l=jessicammoss.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jessicammoss.blogspot.com/feeds/8152345886413128188/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=6855339694180792214&amp;postID=8152345886413128188' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6855339694180792214/posts/default/8152345886413128188'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6855339694180792214/posts/default/8152345886413128188'/><link rel='alternate' type='text/html' href='http://jessicammoss.blogspot.com/2008/10/iis-70-role-service-ssrs-requirements.html' title='IIS 7.0 Role Service SSRS Requirements'/><author><name>Jessica M. Moss</name><uri>http://www.blogger.com/profile/12673369096441752530</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='13946993737221108088'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6855339694180792214.post-7248206604448599213</id><published>2008-10-08T22:31:00.000-07:00</published><updated>2008-10-08T22:33:31.688-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MVP'/><category scheme='http://www.blogger.com/atom/ns#' term='Community'/><title type='text'>Microsoft MVP</title><content type='html'>&lt;p&gt;On October 1, 2008, I received notification that I was awarded as a &lt;a href="http://mvp.support.microsoft.com/"&gt;Microsoft Most Valuable Professional&lt;/a&gt;.  According to Microsoft, MVPs are "exceptional technical community leaders from around the world who are awarded for voluntarily sharing their high quality, real world expertise in offline and online technical communities" and quite a few other comments that make me blush.  It's always nice to be rewarded for doing what you love to do.&lt;/p&gt;&lt;p&gt;MVPs are awarded for their past contributions, but the benefits are applied to the upcoming year.  These benefits include access to technical resources and the opportunity to learn from and offer thoughts to Microsoft.  I believe the information I provide will be best if it comes from everyone, so I ask you to let me know if you're having any issues or concerns with SQL Server.  On a final note, if you have a user group that would enjoy learning about SQL Server BI, or if you have a technical question, or if you just feel like geeking out about SQL Server, please contact me at jmoss at solidq dot com.&lt;/p&gt;&lt;p&gt;Thank you.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6855339694180792214-7248206604448599213?l=jessicammoss.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jessicammoss.blogspot.com/feeds/7248206604448599213/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=6855339694180792214&amp;postID=7248206604448599213' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6855339694180792214/posts/default/7248206604448599213'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6855339694180792214/posts/default/7248206604448599213'/><link rel='alternate' type='text/html' href='http://jessicammoss.blogspot.com/2008/10/microsoft-mvp.html' title='Microsoft MVP'/><author><name>Jessica M. Moss</name><uri>http://www.blogger.com/profile/12673369096441752530</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='13946993737221108088'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6855339694180792214.post-2811784767470105485</id><published>2008-10-03T05:28:00.000-07:00</published><updated>2008-10-03T05:38:35.731-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Community'/><title type='text'>Richmond and Olympia</title><content type='html'>&lt;p&gt;That would be Richmond in Virginia and Olympia in Washington. :)&lt;/p&gt;&lt;p&gt;I'll be speaking at the &lt;a href="http://www.richmondcodecamp.org/"&gt;Richmond Code Camp 2008.2&lt;/a&gt; on October 4 about custom code in Reporting Services.  Richmond is my local user community, and I can't say enough good things about the crew that organizes and speaks in that area.  I hope to see some familiar faces during the day.&lt;/p&gt;&lt;p&gt;The following Saturday (October 11), I'll be presenting at &lt;a href="http://www.sqlsaturday.com/eventhome.aspx?eventid=7"&gt;Olympia SQLSaturday&lt;/a&gt; about Reporting Services 2008.  I enjoy SQLSaturday events because they are all about SQL Server!  This one includes talks on Business Intelligence, TSQL, and internals.&lt;/p&gt;&lt;p&gt;Both events have a great speaker lineup and should be a lot of fun.  Hope to see you there!&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6855339694180792214-2811784767470105485?l=jessicammoss.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jessicammoss.blogspot.com/feeds/2811784767470105485/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=6855339694180792214&amp;postID=2811784767470105485' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6855339694180792214/posts/default/2811784767470105485'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6855339694180792214/posts/default/2811784767470105485'/><link rel='alternate' type='text/html' href='http://jessicammoss.blogspot.com/2008/10/richmond-and-olympia.html' title='Richmond and Olympia'/><author><name>Jessica M. Moss</name><uri>http://www.blogger.com/profile/12673369096441752530</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='13946993737221108088'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6855339694180792214.post-1929937267504410166</id><published>2008-09-29T02:08:00.000-07:00</published><updated>2008-09-29T02:20:58.209-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SSAS'/><title type='text'>MDX Query Returns Duplicate Values</title><content type='html'>&lt;div&gt;When someone is querying a new Analysis Services cube, there is one mistake that I often see made: trying to use a dimension that does not relate to the desired measure group. For example, when looking at the Adventure Works cube, if you try to use any of the Reseller measures with the Customer dimension, you will receive the same value across the Customer members. Because there is no relationship defined in the cube, the MDX query will use the default member for that particular attribute, which, in this case, is the ‘All’ member. It would look something like this:&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;img id="BLOGGER_PHOTO_ID_5251368452996793746" style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://4.bp.blogspot.com/_4GhzvKYm7Zg/SOCbyPmRBZI/AAAAAAAAABo/0gnBnq-tE6Q/s320/MDXDupValues.jpg" border="0" /&gt;&lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;div&gt;This type of situation typically goes away once a user has learned the new data model, but Management Studio 2008 provides a neat dropdown list to help initially avoid the rogue query. On the Metadata tab, under the label Measure Group, you can select the measure group you are targeting. The GUI refreshes to only show the dimensions and measures that are associated with that measure group. If we select the ‘Reseller Sales’ measure group, we can see the way the new display looks, including no Customer dimension!&lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;div&gt;&lt;img id="BLOGGER_PHOTO_ID_5251368887819599426" style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://3.bp.blogspot.com/_4GhzvKYm7Zg/SOCcLjcGfkI/AAAAAAAAABw/sKp-plmFgN8/s400/SSMSGUI.jpg" border="0" /&gt;&lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;div&gt;A user can still use the inappropriate dimension, but hopefully this will prevent the issue right from the start.  Happy querying!&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;em&gt;Version: SQL Server 2008 RTM&lt;/em&gt;&lt;/p&gt;&lt;p&gt; &lt;/p&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6855339694180792214-1929937267504410166?l=jessicammoss.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jessicammoss.blogspot.com/feeds/1929937267504410166/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=6855339694180792214&amp;postID=1929937267504410166' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6855339694180792214/posts/default/1929937267504410166'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6855339694180792214/posts/default/1929937267504410166'/><link rel='alternate' type='text/html' href='http://jessicammoss.blogspot.com/2008/09/mdx-query-returns-duplicate-values.html' title='MDX Query Returns Duplicate Values'/><author><name>Jessica M. Moss</name><uri>http://www.blogger.com/profile/12673369096441752530</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='13946993737221108088'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_4GhzvKYm7Zg/SOCbyPmRBZI/AAAAAAAAABo/0gnBnq-tE6Q/s72-c/MDXDupValues.jpg' height='72' width='72'/><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6855339694180792214.post-326398516763470982</id><published>2008-09-25T22:54:00.000-07:00</published><updated>2008-09-25T23:01:43.537-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Conference'/><title type='text'>PASS Community Summit 2008</title><content type='html'>This will be my first year attending the &lt;a href="http://summit2008.sqlpass.org/"&gt;PASS Summit&lt;/a&gt; as a speaker rather than an attendee.  I will be joining &lt;a href="http://sqlblog.com/blogs/rushabh_mehta/"&gt;Rushabh Mehta&lt;/a&gt; to present a spotlight session entitled "Building an SSIS Management Framework".  The PASS Summit is a great conference that focuses on SQL Server and Business Intelligence.  Because it is in Seattle, there will be a ton of people from the SQL Server Developer Team and SQLCAT.  If you have any questions about SQL Server, this is the place to be.&lt;br /&gt;&lt;br /&gt;You still have a few weeks left to sign up.  &lt;a href="http://www.solidq.com/"&gt;Solid Quality Mentors&lt;/a&gt; is also offering a discount code applicable to the cost of the conference.  You can get that code from here: &lt;a href="http://www.solidq.com/na/pass.aspx"&gt;http://www.solidq.com/na/pass.aspx&lt;/a&gt;.  So now you have no excuse left to not sign up!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6855339694180792214-326398516763470982?l=jessicammoss.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jessicammoss.blogspot.com/feeds/326398516763470982/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=6855339694180792214&amp;postID=326398516763470982' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6855339694180792214/posts/default/326398516763470982'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6855339694180792214/posts/default/326398516763470982'/><link rel='alternate' type='text/html' href='http://jessicammoss.blogspot.com/2008/09/pass-community-summit-2008.html' title='PASS Community Summit 2008'/><author><name>Jessica M. Moss</name><uri>http://www.blogger.com/profile/12673369096441752530</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='13946993737221108088'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6855339694180792214.post-4700826910707223214</id><published>2008-09-14T23:23:00.000-07:00</published><updated>2008-09-14T23:38:48.740-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SSRS'/><title type='text'>Display Top N Rows - Alternate Method</title><content type='html'>&lt;div&gt;In a &lt;a href="http://jessicammoss.blogspot.com/2008/08/display-top-n-rows.html"&gt;previous post&lt;/a&gt;, I showed how to dynamically limit the number of rows shown in a table or matrix. This methodology used a filter on the table to only show the desired number of rows. The disadvantage with this method is that all rows are returned, even if only a small subset of rows is actually desired.&lt;br /&gt;&lt;br /&gt;To alleviate this problem, you can use a query parameter to restrict the number of rows returned at the query level. This does introduce a different problem. Every time the report is run with a different Top N parameter, the query will be rerun to bring back the correct number of rows. You will need to determine which method is optimal for your situation.&lt;br /&gt;&lt;br /&gt;Here are the steps to create a sample report to show this new method.&lt;br /&gt;&lt;br /&gt;1. Add a report parameter named “NumberPpl” of data type integer.&lt;br /&gt;&lt;br /&gt;2. Create a DataSource connecting to the AdventureWorksDW database and a DataSet with the following query:&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;SELECT TOP(cast(@TopN as int)) DimEmployee.FirstName, DimEmployee.LastName, SUM(FactResellerSales.SalesAmount) AS SalesAmount&lt;br /&gt;FROM DimEmployee INNER JOIN&lt;br /&gt;FactResellerSales ON DimEmployee.EmployeeKey = FactResellerSales.EmployeeKey&lt;br /&gt;WHERE (FactResellerSales.OrderDateKey = 20011001)&lt;br /&gt;GROUP BY DimEmployee.FirstName, DimEmployee.LastName&lt;br /&gt;ORDER BY SUM(FactResellerSales.SalesAmount) DESC&lt;br /&gt;&lt;/span&gt;Assign the @TopN query parameter to use the @NumberPpl report parameter.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;em&gt;Note that this differs from the original query in two ways:&lt;br /&gt;&lt;/em&gt;A. Includes the TOP clause to restrict the rows&lt;br /&gt;B. Includes a descending order by for the SalesAmount to ensure the highest SalesAmounts are shown&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Also note that the TopN query parameter is cast to an integer. This is because all query parameters are created as string and the TOP clause expects an integer.&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;3. Add a table to the body of the report with the data fields of FirstName, LastName, and SalesAmount. Sort by the column SalesAmount from ‘Z to A’. This sort is now only for display purposes and is not necessary to return the correct data.&lt;br /&gt;&lt;br /&gt;4. Preview the report, modifying the value for the parameter NumberPpl to see the number of rows change. It should look similar to the report below and the reports using the first method.&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;img id="BLOGGER_PHOTO_ID_5246131573024979650" style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://4.bp.blogspot.com/_4GhzvKYm7Zg/SM4A3tcdesI/AAAAAAAAABg/HODIqpU59iU/s320/Top5.jpg" border="0" /&gt;&lt;em&gt;Version: SQL Server 2008 RTM&lt;/em&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6855339694180792214-4700826910707223214?l=jessicammoss.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jessicammoss.blogspot.com/feeds/4700826910707223214/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=6855339694180792214&amp;postID=4700826910707223214' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6855339694180792214/posts/default/4700826910707223214'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6855339694180792214/posts/default/4700826910707223214'/><link rel='alternate' type='text/html' href='http://jessicammoss.blogspot.com/2008/09/display-top-n-rows-alternate-method.html' title='Display Top N Rows - Alternate Method'/><author><name>Jessica M. Moss</name><uri>http://www.blogger.com/profile/12673369096441752530</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='13946993737221108088'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_4GhzvKYm7Zg/SM4A3tcdesI/AAAAAAAAABg/HODIqpU59iU/s72-c/Top5.jpg' height='72' width='72'/><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6855339694180792214.post-4313522135736945373</id><published>2008-09-09T13:06:00.000-07:00</published><updated>2008-09-09T13:06:00.245-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='WIT'/><category scheme='http://www.blogger.com/atom/ns#' term='Community'/><title type='text'>Upcoming Events</title><content type='html'>&lt;p&gt;I have an exciting week coming up!  On Wednesday evening, I will be speaking at the &lt;a href="http://www.rocknug.com/"&gt;Rockville .NET User Group&lt;/a&gt; on SSIS Tips &amp;amp; Tricks for both SQL Server 2005 and 2008.  If you're in the area, I hope you'll stop by.&lt;/p&gt;&lt;p&gt;On Friday night, the &lt;a href="http://www.novagirlgeekdinner.com/"&gt;Northern Virginia Girl Geek Dinner&lt;/a&gt; is having their inaugural dinner.  Hosting by &lt;a href="http://www.viget.com/"&gt;Viget Labs&lt;/a&gt;, sponsorship by &lt;a href="http://www.microsoft.com/"&gt;Microsoft&lt;/a&gt;, and a presentation by Dr. Joanne McGrath Cohoon will make for a great evening!  I will be there, helping to ensure everything runs smoothly.  The sign up deadline was just extended through Wednesday, so sign up now at &lt;a href="http://novagirlgeekdinner.eventbrite.com/"&gt;http://novagirlgeekdinner.eventbrite.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/6855339694180792214-4313522135736945373?l=jessicammoss.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jessicammoss.blogspot.com/feeds/4313522135736945373/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=6855339694180792214&amp;postID=4313522135736945373' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6855339694180792214/posts/default/4313522135736945373'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6855339694180792214/posts/default/4313522135736945373'/><link rel='alternate' type='text/html' href='http://jessicammoss.blogspot.com/2008/09/upcoming-events.html' title='Upcoming Events'/><author><name>Jessica M. Moss</name><uri>http://www.blogger.com/profile/12673369096441752530</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='13946993737221108088'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6855339694180792214.post-9055512291103755014</id><published>2008-08-17T21:12:00.000-07:00</published><updated>2008-08-17T21:16:04.469-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SSIS'/><category scheme='http://www.blogger.com/atom/ns#' term='Tools'/><category scheme='http://www.blogger.com/atom/ns#' term='SSRS'/><title type='text'>SnippetCompiler</title><content type='html'>Extensibility in SQL Server Integration Services and SQL Server Reporting Services is achieved by writing custom code inside your package or report.  SSIS provides a great interface by using Visual Studio for Applications (2005) or Visual Studio Tools for Applications (2008), lightweight versions of the Visual Studio IDE.  When you create a script task or component, you can write code using intellisense and error squiggles.  SSRS, on the other hand, does not provide any IDE for writing custom code.  If you want to create VB functions, you have a notepad-like window without colors, intellisense, or any error handling.&lt;br /&gt;&lt;br /&gt;In comes SnippetCompiler, an application that allows you to write and compile snippets of code.  You can download the executable here: &lt;a href="http://www.sliver.com/dotnet/SnippetCompiler/"&gt;http://www.sliver.com/dotnet/SnippetCompiler/&lt;/a&gt;.  The current version allows code in both VB.NET 2.0 and C# 2.0.  A .NET 3.5 version is in Alpha release and can be downloaded from the same location.  Keep in mind that if you minimize the application, it becomes an icon in the system tray instead of showing up on the task bar.&lt;br /&gt;&lt;br /&gt;I use this application when I write all of my custom code, especially in Reporting Services.  It allows me to ensure my syntax is correct, as well as keep consistent formatting before copying the code into my package or report.  I hope you find this tool useful as well!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6855339694180792214-9055512291103755014?l=jessicammoss.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jessicammoss.blogspot.com/feeds/9055512291103755014/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=6855339694180792214&amp;postID=9055512291103755014' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6855339694180792214/posts/default/9055512291103755014'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6855339694180792214/posts/default/9055512291103755014'/><link rel='alternate' type='text/html' href='http://jessicammoss.blogspot.com/2008/08/snippetcompiler.html' title='SnippetCompiler'/><author><name>Jessica M. Moss</name><uri>http://www.blogger.com/profile/12673369096441752530</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='13946993737221108088'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6855339694180792214.post-1959247257436850210</id><published>2008-08-14T00:44:00.000-07:00</published><updated>2008-08-14T00:59:12.332-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SSRS'/><title type='text'>Display Top N Rows</title><content type='html'>&lt;div&gt;In SQL Server Reporting Services, you can dynamically limit the number of rows that are displayed in a table or a matrix. Here are the steps to create a sample report showing this.&lt;br /&gt;&lt;br /&gt;1. Create a DataSource connecting to the AdventureWorksDW database and a DataSet with the following query:&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;SELECT DimEmployee.FirstName, DimEmployee.LastName, SUM(FactResellerSales.SalesAmount) AS SalesAmount&lt;br /&gt;FROM DimEmployee INNER JOIN&lt;br /&gt;FactResellerSales ON DimEmployee.EmployeeKey = FactResellerSales.EmployeeKey&lt;br /&gt;WHERE (FactResellerSales.OrderDateKey = 20011001)&lt;br /&gt;GROUP BY DimEmployee.FirstName, DimEmployee.LastName&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;2. Add a report parameter named “NumberPpl” of data type integer.&lt;br /&gt;&lt;br /&gt;3. Add a table to the body of the report with the data fields of firstName, lastName, and salesAmount. Sort by the column salesAmount from ‘Z to A’.&lt;br /&gt;&lt;br /&gt;4. Set the Filters option of the table as shown below. (This is where the real work is happening!)&lt;/div&gt;&lt;br /&gt;&lt;p&gt;&lt;img id="BLOGGER_PHOTO_ID_5234277686210765858" style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://4.bp.blogspot.com/_4GhzvKYm7Zg/SKPj0r5YpCI/AAAAAAAAABA/PKPc3rg0cuY/s400/TopN-Filters.jpg" border="1" /&gt;&lt;/p&gt;&lt;p&gt;5. Preview the report, modifying the value for the parameter NumberPpl to see the number of rows change. It should look similar to the reports below.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;img id="BLOGGER_PHOTO_ID_5234277994677131458" style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://3.bp.blogspot.com/_4GhzvKYm7Zg/SKPkGpBf2MI/AAAAAAAAABI/M2WyXiwTfYg/s400/TopN-ReportTop2.jpg" border="1" /&gt; &lt;img id="BLOGGER_PHOTO_ID_5234278686573989234" style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://1.bp.blogspot.com/_4GhzvKYm7Zg/SKPku6ikDXI/AAAAAAAAABY/XDu92R1pNEg/s400/TopN-ReportTop5.jpg" border="1" /&gt;&lt;br /&gt;&lt;em&gt;Version: SQL Server 2008 RC0&lt;/em&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6855339694180792214-1959247257436850210?l=jessicammoss.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jessicammoss.blogspot.com/feeds/1959247257436850210/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=6855339694180792214&amp;postID=1959247257436850210' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6855339694180792214/posts/default/1959247257436850210'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6855339694180792214/posts/default/1959247257436850210'/><link rel='alternate' type='text/html' href='http://jessicammoss.blogspot.com/2008/08/display-top-n-rows.html' title='Display Top N Rows'/><author><name>Jessica M. Moss</name><uri>http://www.blogger.com/profile/12673369096441752530</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='13946993737221108088'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_4GhzvKYm7Zg/SKPj0r5YpCI/AAAAAAAAABA/PKPc3rg0cuY/s72-c/TopN-Filters.jpg' height='72' width='72'/><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6855339694180792214.post-4483064329720092062</id><published>2008-08-08T00:08:00.000-07:00</published><updated>2008-08-08T00:10:43.487-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Blogging'/><title type='text'>WorldMaps</title><content type='html'>Those of you who visit my blog directly may notice a new image labeled "WorldMaps" on my right-hand side bar.  &lt;a href="http://www.structuretoobig.com/development/worldmaps.aspx"&gt;WorldMaps&lt;/a&gt;, introduced to me by &lt;a href="http://blogs.msdn.com/gduthie"&gt;Andrew Duthie&lt;/a&gt;, stores statistics about visitors to any website.  By signing up for an account and adding the tracking device on your page, you can keep track of the number of hits, different IP addresses, visitor locations, and more.  For an example of what WorldMaps can provide, click on my world image, which will link to a page with my statistics.&lt;br /&gt;&lt;br /&gt;For other statistics of interest, I also use &lt;a href="http://www.feedburner.com/"&gt;Feedburner&lt;/a&gt;.  While I'm happy with the information they've provided, there is something about seeing my visitors’ locations visually that speaks to my Business Intelligence side ;)  I definitely recommend you take a look at WorldMaps!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6855339694180792214-4483064329720092062?l=jessicammoss.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jessicammoss.blogspot.com/feeds/4483064329720092062/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=6855339694180792214&amp;postID=4483064329720092062' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6855339694180792214/posts/default/4483064329720092062'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6855339694180792214/posts/default/4483064329720092062'/><link rel='alternate' type='text/html' href='http://jessicammoss.blogspot.com/2008/08/worldmaps.html' title='WorldMaps'/><author><name>Jessica M. Moss</name><uri>http://www.blogger.com/profile/12673369096441752530</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='13946993737221108088'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6855339694180792214.post-1241352142341039337</id><published>2008-08-06T01:45:00.000-07:00</published><updated>2008-08-06T01:49:25.695-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SSRS'/><title type='text'>Overlapping SSRS Report Items</title><content type='html'>After converting your SQL Server Reporting Services reports from 2005 to 2008, you may notice a difference in the way the report looks.  One possible reason for this difference is the change in the way overlapping report items are rendered.&lt;br /&gt;&lt;br /&gt;In both SSRS versions, the message in the Output window is similar to: "[rsOverlappingReportItems] The text box ‘Textbox2’ and the text box ‘Textbox1’ overlap. Overlapping report items are not supported in all renderers."  In Reporting Services 2005, these textboxes would display in an overlapped fashion, often causing the text within both textboxes to be unreadable.  In Reporting Services 2008, however, the second textbox shifts, so that it appears the textboxes are vertically next to each other.  This allows you to always read the text in both textboxes.&lt;br /&gt;&lt;br /&gt;The new overlap rendering functionality is included in the "Soft Page-Break Renderers", including the Report Preview window, HTML, MHTML, Word, and Excel.  Taking a look at the report in the Report Preview pane will give you a pretty good idea of how the report will look in HTML.  I did not find this to be the case for the "Hard Page-Break Renderers", including Acrobat (PDF) format.&lt;br /&gt;&lt;br /&gt;If you do have overlapping report items, the item to the "front" of the report will be rendered above the item to the "back" of the report.  You can take advantage of this by right-clicking on the item and selecting either the option "Bring to Front" or "Send to Back" for the desired result.&lt;br /&gt;&lt;br /&gt;For more information on how rendering works in SSRS 2008, I would recommend visiting this page: &lt;a href="http://technet.microsoft.com/en-us/library/bb677573(SQL.100).aspx"&gt;http://technet.microsoft.com/en-us/library/bb677573(SQL.100).aspx&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Versions: SQL Server 2005 SP2, SQL Server 2008 RC0&lt;/em&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6855339694180792214-1241352142341039337?l=jessicammoss.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jessicammoss.blogspot.com/feeds/1241352142341039337/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=6855339694180792214&amp;postID=1241352142341039337' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6855339694180792214/posts/default/1241352142341039337'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6855339694180792214/posts/default/1241352142341039337'/><link rel='alternate' type='text/html' href='http://jessicammoss.blogspot.com/2008/08/overlapping-ssrs-report-items.html' title='Overlapping SSRS Report Items'/><author><name>Jessica M. Moss</name><uri>http://www.blogger.com/profile/12673369096441752530</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='13946993737221108088'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6855339694180792214.post-3752127317600592384</id><published>2008-07-31T00:32:00.000-07:00</published><updated>2008-07-31T00:38:33.719-07:00</updated><title type='text'>Reporting Services 2008 Configuration Mistake</title><content type='html'>To start working with the management side of SQL Server Reporting Services 2008, I decided to set up a report server and report manager.  Unfortunately, I made a mistake while setting up my configuration that left me a little perplexed.  Here are the steps I took to cause, track down, and solve the issue.&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Problem:&lt;/em&gt;&lt;br /&gt;I began by opening the Reporting Services Configuration Manager from the Start Menu.  I clicked through each of the menu options and accepted the defaults for any question with a warning symbol, since warning symbol typically designate an action item.  After two minutes, all of the warning symbols had disappeared, and I was ready to begin managing my report server.  Unfortunately, opening up a browser and trying to open up the report manager resulted in the dreaded "&lt;span style="font-family:courier new;font-size:85%;"&gt;The report server has encountered a configuration error. (rsServerConfigurationError)&lt;/span&gt;" message.&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Sherlock-ing it:&lt;br /&gt;&lt;/em&gt;I put on my sleuthing hat and went to the log file directory: C:\Program Files\Microsoft SQL Server\MSRS10.MSSQLSERVER\Reporting Services\LogFiles.  Under the latest ReportServerService*.log, there was the following error: "&lt;span style="font-family:courier new;font-size:85%;"&gt;Message: No DSN present in configuration file&lt;/span&gt;".  Looking at the file: C:\Program Files\Microsoft SQL Server\MSRS10.MSSQLSERVER\Reporting Services\ReportServer\rsreportserver.config proved the error message true, as right at the top of my log file was the empty Dsn tag.&lt;br /&gt;&lt;br /&gt;Looking in Books Online under the RSReportServer Configuration article, I discovered that the Dsn property contains a connection to the report server database.  That's odd, I don't remember creating that connection...&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Solution:&lt;br /&gt;&lt;/em&gt;I returned to the scene of the crime, the Configuration Manager.  Sure enough, the third warning-less menu option allows you to set up the connection to either an existing report server database or create a new one for this instance.  I filled in the appropriate information, and took a look back at the configuration file.  This time, the Dsn tag contains a beautifully encrypted blob of information.  The report manager works, and I am ready to manage my reports!  The moral of this story is to read the directions before clicking through configuration managers, don't trust warning icons or lack thereof, and don't forget that Reporting Services needs to know what database to use. :)&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Version: SQL Server 2008 RC0&lt;/em&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6855339694180792214-3752127317600592384?l=jessicammoss.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jessicammoss.blogspot.com/feeds/3752127317600592384/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=6855339694180792214&amp;postID=3752127317600592384' title='11 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6855339694180792214/posts/default/3752127317600592384'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6855339694180792214/posts/default/3752127317600592384'/><link rel='alternate' type='text/html' href='http://jessicammoss.blogspot.com/2008/07/reporting-services-2008-configuration.html' title='Reporting Services 2008 Configuration Mistake'/><author><name>Jessica M. Moss</name><uri>http://www.blogger.com/profile/12673369096441752530</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='13946993737221108088'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>11</thr:total></entry></feed>