<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Made2Mentor &#187; Made2Manage</title>
	<atom:link href="http://www.made2mentor.com/category/made2manage/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.made2mentor.com</link>
	<description>Data Warehousing, Microsoft Business Intelligence, and Other Cool Stuff</description>
	<lastBuildDate>Thu, 19 Jan 2012 19:41:18 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>The Made2Manage Favorites Bar Must Die</title>
		<link>http://www.made2mentor.com/2011/11/the-made2manage-favorites-bar-must-die/</link>
		<comments>http://www.made2mentor.com/2011/11/the-made2manage-favorites-bar-must-die/#comments</comments>
		<pubDate>Tue, 08 Nov 2011 17:57:33 +0000</pubDate>
		<dc:creator>David</dc:creator>
				<category><![CDATA[Made2Manage]]></category>

		<guid isPermaLink="false">http://www.made2mentor.com/?p=6562</guid>
		<description><![CDATA[
			
				
			
		
<p>As I&#8217;ve mentioned before, the Made2Manage Favorites Bar is a buggy mess. I regularly get questions from my clients and readers of this blog asking why M2M screens return incorrect data or otherwise misbehave. One of my first suggestions to them is to disable the favorites bar. However, disabling the bar isn&#8217;t intuitive so I [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: left; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.made2mentor.com%2F2011%2F11%2Fthe-made2manage-favorites-bar-must-die%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.made2mentor.com%2F2011%2F11%2Fthe-made2manage-favorites-bar-must-die%2F&amp;source=Made2Mentor&amp;style=normal&amp;b=2" height="61" width="50" /><br />
			</a>
		</div>
<p>As I&#8217;ve mentioned before, the <a href="http://www.made2mentor.com/2009/09/favorites-bar-flummoxes-fastforms-forms/" title="Made2Manage Favorites Bar" target="_blank">Made2Manage Favorites Bar</a> is a buggy mess. I regularly get questions from my clients and readers of this blog asking why M2M screens return incorrect data or otherwise misbehave. One of my first suggestions to them is to disable the favorites bar. However, disabling the bar isn&#8217;t intuitive so I thought I would quickly post how to do it. </p>
<p>First, it is not enough to simply un-check the toolbar. If you un-check the toolbar, but leave the M2M screens attached in it, you haven&#8217;t really disabled it.<br />
<a href="http://www.made2mentor.com/wp-content/uploads/2011/11/favoritesbar.png"><img src="http://www.made2mentor.com/wp-content/uploads/2011/11/favoritesbar.png" alt="" title="favoritesbar" width="266" height="237" class="aligncenter size-full wp-image-6564" /></a></p>
<p>So, select the toolbar and then left click and drag the items off it one at a time. Where you drag and release them doesn&#8217;t matter. It feels awkward, but you know when you&#8217;ve &#8220;grabbed&#8221; the item correctly when it forms an unusual black cross. Unfortunately, I couldn&#8217;t catch that in a screenshot.<br />
<a href="http://www.made2mentor.com/wp-content/uploads/2011/11/favoritesbar2.png"><img src="http://www.made2mentor.com/wp-content/uploads/2011/11/favoritesbar2.png" alt="" title="favoritesbar2" width="165" height="58" class="aligncenter size-full wp-image-6565" /></a></p>
<p>After you have cleared all of the individual items from the toolbar, then you can disable it by selecting Windows, Toolbars, and un-checking the Favorites Bar. </p>
<p>Incidentally, there isn&#8217;t a way to keep users from loading the toolbar up with screens again afterward, and I find that they often do. These incorrect record number issues tend to be cyclical because the same users have the problem repeatedly after they enable the toolbar again.</p>
<p>Hey, at least it&#8217;s job security for M2M Adminstrators. <img src='http://www.made2mentor.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  </p>
]]></content:encoded>
			<wfw:commentRss>http://www.made2mentor.com/2011/11/the-made2manage-favorites-bar-must-die/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>This One Time&#8230; At PASS Camp&#8230;</title>
		<link>http://www.made2mentor.com/2011/10/this-one-time-at-pass-camp/</link>
		<comments>http://www.made2mentor.com/2011/10/this-one-time-at-pass-camp/#comments</comments>
		<pubDate>Mon, 10 Oct 2011 15:32:06 +0000</pubDate>
		<dc:creator>David</dc:creator>
				<category><![CDATA[Made2Manage]]></category>

		<guid isPermaLink="false">http://www.made2mentor.com/?p=6539</guid>
		<description><![CDATA[
			
				
			
		
<p>Like many of you, I have been finalizing my PASS Summit plans, getting ready for the trip to Seattle. </p>
<p>For the past week, my girlfriend has been asking weird questions like, &#8220;Have you packed your sun screen?&#8221; This makes no sense because there&#8217;s no way I&#8217;ll get a sunburn in Seattle in October. When I [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: left; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.made2mentor.com%2F2011%2F10%2Fthis-one-time-at-pass-camp%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.made2mentor.com%2F2011%2F10%2Fthis-one-time-at-pass-camp%2F&amp;source=Made2Mentor&amp;style=normal&amp;b=2" height="61" width="50" /><br />
			</a>
		</div>
<p><a href="http://www.made2mentor.com/wp-content/uploads/2011/10/alyson-hannigan-american-pie-2.jpg"><img src="http://www.made2mentor.com/wp-content/uploads/2011/10/alyson-hannigan-american-pie-2.jpg" alt="" title="alyson-hannigan-american-pie-2" width="267" height="400" class="aligncenter size-full wp-image-6550" /></a>Like many of you, I have been finalizing my PASS Summit plans, getting ready for the trip to Seattle. </p>
<p>For the past week, my girlfriend has been asking weird questions like, &#8220;Have you packed your sun screen?&#8221; This makes no sense because there&#8217;s no way I&#8217;ll get a sunburn in Seattle in October. When I ask her about it she just giggles and moves on. </p>
<p>She&#8217;s also reminded me to bring other things such as a bathing suit, hot dogs, and marshmallows. When she mentioned the marshmallows, I finally got it. She&#8217;s teasing me about PASS as if I&#8217;m going to summer camp. And if you think about it, summer camp is a pretty apt metaphor.</p>
<p>As I type this I am really excited about the trip. I&#8217;m looking forward to seeing all of my friends, many of whom I haven&#8217;t seen since last year, and doing all sorts of fun &#8220;activities&#8221; with them. We may not be going hiking, fishing, or swimming, but we will be networking, singing at SQL Karaoke, and attending the vendor parties.</p>
<p>So, here&#8217;s to all of my PASS Camp buddies. I can&#8217;t wait to see you again this year.</p>
<p>Oh and at camp this year, I&#8217;ll also be attending the PUSS Party. God knows what&#8217;ll happen. I just hope nobody brings a flute. </p>
]]></content:encoded>
			<wfw:commentRss>http://www.made2mentor.com/2011/10/this-one-time-at-pass-camp/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How to Ask for Technical Help</title>
		<link>http://www.made2mentor.com/2011/09/how-to-ask-for-technical-help/</link>
		<comments>http://www.made2mentor.com/2011/09/how-to-ask-for-technical-help/#comments</comments>
		<pubDate>Fri, 02 Sep 2011 13:52:36 +0000</pubDate>
		<dc:creator>David</dc:creator>
				<category><![CDATA[Made2Manage]]></category>
		<category><![CDATA[Personal]]></category>
		<category><![CDATA[SQL]]></category>
		<category><![CDATA[Community]]></category>
		<category><![CDATA[Education]]></category>
		<category><![CDATA[Networking]]></category>
		<category><![CDATA[Philosophy]]></category>

		<guid isPermaLink="false">http://www.made2mentor.com/?p=5364</guid>
		<description><![CDATA[
			
				
			
		
<p>Like many other technical bloggers, I receive requests for help on a regular basis. Since I&#8217;m constantly learning and evolving I approach others for help as well. A couple of years ago, I received an email from a new reader which began with: </p>
<p>Always two there are, no more, no less: a master and an [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: left; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.made2mentor.com%2F2011%2F09%2Fhow-to-ask-for-technical-help%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.made2mentor.com%2F2011%2F09%2Fhow-to-ask-for-technical-help%2F&amp;source=Made2Mentor&amp;style=normal&amp;b=2" height="61" width="50" /><br />
			</a>
		</div>
<p>Like many other technical bloggers, I receive requests for help on a regular basis. Since I&#8217;m constantly learning and evolving I approach others for help as well. A couple of years ago, I received an email from a new reader which began with: </p>
<blockquote><p>Always two there are, no more, no less: a master and an apprentice.</p></blockquote>
<p>The line is from Star Wars, of course. Being a huge geek, it&#8217;s easy to understand how his email got my attention right away. His approach was polite, respectful, and most importantly demonstrated that he had in fact read some of my blog. That got me thinking, what are some tips I could give my readers on how to ask for help? Of course, I couldn&#8217;t just produce a list. In my geekitude, I have prepared a list of movie scenes to explain my suggestions.</p>
<h3>Show Respect</h3>
<p><a href="http://www.made2mentor.com/wp-content/uploads/2011/08/respect.jpg"><img src="http://www.made2mentor.com/wp-content/uploads/2011/08/respect.jpg" alt="" title="respect" width="330" height="200" class="aligncenter size-full wp-image-6458" /></a></p>
<blockquote><p>What have I ever done to make you treat me so disrespectfully? &#8211; Godfather </p></blockquote>
<p>Be respectful in your request and if at all possible, offer your friendship before you need help. Attend user group meetings and get to know people. Volunteer. If it&#8217;s a forum, do your best to participate and help others in the forum. As in the movie, you&#8217;re more likely to get help when you need it if you already belong to a group. </p>
<h3>Be Nice (Politeness)</h3>
<div class="wp-caption aligncenter" style="width: 330px"><a href="http://www.made2mentor.com/Images/Swayze.jpg"><img alt="" src="http://www.made2mentor.com/Images/Swayze.jpg" title="Dalton" width="320" height="240" /></a><p class="wp-caption-text">Be Nice</p></div>
<blockquote><p> If somebody gets in your face and calls you a &#038;^*%*$!!!, I want you to be nice. Ask him to walk. Be nice. If he won&#8217;t walk, walk him. But be nice. If you can&#8217;t walk him, one of the others will help you, and you&#8217;ll both be nice. I want you to remember that it&#8217;s a job. It&#8217;s nothing personal.- Dalton in Road House </p></blockquote>
<p>Don&#8217;t go overboard but a complimentary remark never hurts when asking for help. If you&#8217;ve seen them present, read their blog, or answer questions in forums, complement them on their abilities. Just make sure that your compliments are sincere. I can&#8217;t tell you how many &#8220;requests&#8221; I&#8217;ve gotten for help which sounded more like demands for help. People don&#8217;t tend to respond well to demands. </p>
<h3>Communicate Clearly </h3>
<p><a href="http://www.made2mentor.com/wp-content/uploads/2011/08/tucker.jpg"><img src="http://www.made2mentor.com/wp-content/uploads/2011/08/tucker.jpg" alt="Chris Tucker" title="tucker" width="281" height="211" class="aligncenter size-full wp-image-6401" /></a></p>
<blockquote><p>Do you understand the words that are coming out of my mouth?!?!? &#8211; Detective Carter in Rush Hour</p></blockquote>
<p>Take some time and compose your question so it can be easily read and understood. If I have to waste cycles trying to decode your question, or need additional information, chances are that I won&#8217;t bother. In my experience, most people are like this. Depending on your problem, explain the steps you have taken to remedy your issue and the result of those attempts. Take time to use a code prettify-er before posting it and if possible the code to generate a sample data set people can use to help you. Make it easy for people to assist you. Now that I&#8217;ve just told you how complete your questions should be, remember that at the same time you should&#8230;.</p>
<h3>Be Brief</h3>
<p><a href="http://www.made2mentor.com/wp-content/uploads/2011/08/inigo1.jpg"><img src="http://www.made2mentor.com/wp-content/uploads/2011/08/inigo1.jpg" alt="" title="inigo1" width="329" height="285" class="aligncenter size-full wp-image-6442" /></a></p>
<blockquote><p>Let me &#8216;splain&#8230; No, there is too much. Let me sum up. Buttercup is marry&#8217; Humperdinck in a little less than half an hour. So all we have to do is get in, break up the wedding, steal the princess, make our escape&#8230; after I kill Count Rugen &#8211; Inigo Montoya in The Princess Bride </p></blockquote>
<p>The longer your question, the less likely people are to read it. Therefore, it&#8217;s in your best interest to be as brief as possible while still providing the background information to solve your problem. Try to leave rants or opinion out of it and just state the facts. </p>
<h3>Work for Your Own Answers</h3>
<p><div id="attachment_6405" class="wp-caption aligncenter" style="width: 410px"><a href="http://www.made2mentor.com/wp-content/uploads/2011/08/wax_on.jpg"><img src="http://www.made2mentor.com/wp-content/uploads/2011/08/wax_on.jpg" alt="" title="wax_on" width="400" height="300" class="size-full wp-image-6405" /></a><p class="wp-caption-text">Wax On Wax Off</p></div><br />
Before asking for help, do your due diligence. <a href="http://www.sqlskills.com/BLOGS/PAUL/post/RTFM-No-seriously-RTFM-Then-ask-your-question.aspx" title="RTFM" target="_blank">RTFM</a>, <a href="http://lmgtfy.com/" title="Google it">Google it</a>, and try to find the answer yourself. Nothing exasperates people more than being asked questions with simple answers that can be found in two minutes with a search engine. Make sure you indicate that you have already searched for the answer so others will take time to answer you. Sometimes the answer to a problem is as simple as knowing the right search terms. </p>
<h3>Ask for Guidance, Not Solutions</h3>
<p><a href="http://www.made2mentor.com/wp-content/uploads/2011/08/finger.jpg"><img src="http://www.made2mentor.com/wp-content/uploads/2011/08/finger.jpg" alt="" title="finger" width="240" height="130" class="aligncenter size-full wp-image-6406" /></a></p>
<blockquote><p>
It is like a finger pointing away to the moon. Don&#8217;t concentrate on the finger or you will miss all that heavenly glory. Bruce Lee</p></blockquote>
<p>This goes along with RTFM. People are more likely to help you if you ask for general direction and not the complete solution to your problem. People do not want to do your homework, but they will direct you to information sources that will help you. A question framed like, &#8220;Can anyone recommend a resource where I can learn to&#8230;..&#8221; is likely to be answered. </p>
<h3>Be Patient</h3>
<p><a href="http://www.made2mentor.com/wp-content/uploads/2011/08/bauer.jpg"><img src="http://www.made2mentor.com/wp-content/uploads/2011/08/bauer.jpg" alt="" title="bauer" width="385" height="280" class="aligncenter size-full wp-image-6414" /></a></p>
<blockquote><p>We&#8217;re running out of time!!!! &#8211; Jack Bauer in 24</p></blockquote>
<p>You often see this in forums. &#8220;Help!!!! My Server is down and I have no backups!!!!&#8221; Then five minutes later the person bumps their topic again because people haven&#8217;t responded fast enough. If you have a time sensitive emergency, then pay for immediate support. Don&#8217;t expect a forum to substitute for that kind of assistance. Your behavior won&#8217;t get your question answered any faster, and may in fact alienate people who would normally be willing to help you. </p>
<h3>Don&#8217;t be Greedy</h3>
<p><a href="http://www.made2mentor.com/wp-content/uploads/2011/08/greed.jpg"><img src="http://www.made2mentor.com/wp-content/uploads/2011/08/greed.jpg" alt="" title="greed" width="262" height="174" class="aligncenter size-full wp-image-6456" /></a></p>
<blockquote><p>The point is ladies and gentlemen that greed, for lack of a better word, is good.- Gordon Gekko in Wall Street</p></blockquote>
<p>Yes, I know that the movie quote says the opposite, but stay with me. Similar to my last point, if you continuously ask questions without reciprocating, you may find that the answers stop coming. People don&#8217;t want to feel used, so you should prioritize your issues/questions and use community resources sparingly.  </p>
<h3>Don&#8217;t Argue</h3>
<div id="attachment_6447" class="wp-caption aligncenter" style="width: 360px"><a href="http://www.made2mentor.com/wp-content/uploads/2011/08/paimei-2.jpg"><img src="http://www.made2mentor.com/wp-content/uploads/2011/08/paimei-2.jpg" alt="" title="paimei-2" width="350" height="190" class="size-full wp-image-6447" /></a><p class="wp-caption-text">Pai Mei</p></div>
<blockquote><p>That, my dearest, depends entirely on you. Now, remember: no sarcasm, no backtalk. At least not for the first year or so. You&#8217;re gonna have to let him warm up to you. &#8211; Bill in Kill Bill, Volume 2 (speaking about Pai Mei, plucker of eyes.)</p></blockquote>
<p>I&#8217;ve seen this more times than I can count and it&#8217;s often hilarious. Some newbie asks for help on a forum regarding how often he should be shrinking his database. Paul Randal (<a href="http://www.sqlskills.com/blogs/paul/">Blog</a>/<a href="http://twitter.com/paulrandal">Twitter</a>), who has forgotten more about SQL Server than most will ever learn, advises him that shrinking should be avoided. The newbie then proceeds to argue because he heard somewhere that database shrinking is akin to nirvana. Will Paul pluck your eye out like the infamous Pai Mei? Probably not, though I wouldn&#8217;t bet against him having those skills. However, if you argue with folks trying to help you, you&#8217;ll most likely get less assistance next time.  </p>
<h3>If Possible, Offer to Pay</h3>
<div id="attachment_6454" class="wp-caption aligncenter" style="width: 260px"><a href="http://www.made2mentor.com/wp-content/uploads/2011/08/lone_starr.jpg"><img src="http://www.made2mentor.com/wp-content/uploads/2011/08/lone_starr.jpg" alt="" title="lone_starr" width="250" height="189" class="size-full wp-image-6454" /></a><p class="wp-caption-text">Give Me Paw!!!</p></div>
<blockquote><p>Listen! We’re not just doing this for the money! We’re doing this for a S*** LOAD of money! -Lone Starr in Spaceballs</p></blockquote>
<p>I&#8217;m not suggesting that everyone is motivated to help others by money, however it doesn&#8217;t hurt. In fact, you&#8217;ll most often find that people will refuse money that is coming out of our personal pocket. However, it does indicate to them that you are serious about getting help and answers. Also, offering to buy someone lunch or a drink or whatever goes a long way. I&#8217;ve bought more than a few meals in my day as a way of thanking people who helped me. </p>
<h3>Follow Up</h3>
<blockquote><p> &#8220;Just pay it forward.&#8221; &#8211; Thorsen in Pay It Forward</p></blockquote>
<p>If you ask a question on a forum, and you find the answer yourself, make sure to go back and update the thread with the answer you found. This gesture doesn&#8217;t benefit you personally, but it will help others when they have a similar problem. </p>
<p>Also, if a answer or suggestion helped you, follow up with the person and let them know. This seems obvious, but you&#8217;d be surprised how often people neglect to do this. Let&#8217;s face it, it feels good to receive a thank you message, and you&#8217;re more likely to get help with your next question. </p>
<p>So, that&#8217;s my list. Do you folks have any other suggestions? </p>
]]></content:encoded>
			<wfw:commentRss>http://www.made2mentor.com/2011/09/how-to-ask-for-technical-help/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>Stop Creating Visual FoxPro Reports&#8230; Today</title>
		<link>http://www.made2mentor.com/2011/07/stop-writing-visual-foxpro-reports-today/</link>
		<comments>http://www.made2mentor.com/2011/07/stop-writing-visual-foxpro-reports-today/#comments</comments>
		<pubDate>Tue, 05 Jul 2011 14:10:34 +0000</pubDate>
		<dc:creator>David</dc:creator>
				<category><![CDATA[Made2Manage]]></category>
		<category><![CDATA[SSRS]]></category>
		<category><![CDATA[Crystal Reports]]></category>
		<category><![CDATA[Reporting]]></category>

		<guid isPermaLink="false">http://www.made2mentor.com/?p=6306</guid>
		<description><![CDATA[
			
				
			
		
<p>Last week  I saw a discussion on the LinkedIn Made2Manage Group about the Pros and Cons of using SSRS vs. VFP Reporting, and it amazes me that people are still arguing about it. So, I thought I&#8217;d reaffirm a stance that I&#8217;ve had for many years, which is  VFP Reporting Must Die. </p>
<p>I&#8217;ve [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: left; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.made2mentor.com%2F2011%2F07%2Fstop-writing-visual-foxpro-reports-today%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.made2mentor.com%2F2011%2F07%2Fstop-writing-visual-foxpro-reports-today%2F&amp;source=Made2Mentor&amp;style=normal&amp;b=2" height="61" width="50" /><br />
			</a>
		</div>
<p>Last week  I saw a discussion on the <a href="http://www.linkedin.com">LinkedIn</a> Made2Manage Group about the Pros and Cons of using SSRS vs. VFP Reporting, and it amazes me that people are still arguing about it. So, I thought I&#8217;d reaffirm a stance that I&#8217;ve had for many years, which is <a href="http://www.made2mentor.com/2008/11/i-for-one-welcome-our-new-net-overlords-reporting/"> VFP Reporting Must Die</a>. </p>
<p>I&#8217;ve lamented <a href="http://www.made2mentor.com/2008/11/i-for-one-welcome-our-new-net-overlords-reporting/">Visual FoxPro&#8217;s limitations</a> in the past and I don&#8217;t want bore you by hashing them all out again. Let&#8217;s just hit the highlights. </p>
<ol>
<li>VFP reports are difficult to write and maintain.</li>
<li>VFP lacks chart and graph capability. </li>
<li>M2M report permissions management is tedious.</li>
</ol>
<p>However, in addition to that list, there are many other reasons you should curtail your use of Visual FoxPro.</p>
<h3>Technological Advantages</h3>
<p>There many technical advantages to using SSRS (or even Crystal Reports for that matter) over Visual FoxPro. In addition to graphing capabilities, SSRS also facilitates more interaction and customization. For example, you can easily create reports with drill down, and you can drill across to different reports as well. Let&#8217;s say for example, that your Operations Manager is looking at a Sales Order report, and wants to drill across to Purchase Order information tied to that Sales Order. Think you can do that with VFP? </p>
<h3>Develop Marketable Skills</h3>
<p>As I <a href="http://www.made2mentor.com/2011/06/what-is-your-focus/">mentioned last week</a>, VFP is a dying language and will never make you a more desirable employee in the market. The same applies if M2M adopts some other niche product as their new reporting strategy. Nobody is going to pay six figures for experience in some product nobody uses. Spend time focusing on T-SQL Programming and SSRS instead.</p>
<p>Remember, that it&#8217;s in Consona&#8217;s best interest to use a proprietary niche product as that generates additional consulting revenue for them. </p>
<h3>Ease of Use</h3>
<p>SSRS is so much easier to use than Visual FoxPro. It&#8217;s easier to learn and the tools are more polished. </p>
<h3>Re-usable Code</h3>
<p>All of these methods essentially boil down to one common denominator, T-SQL. The base T-SQL code is more easily extracted from SSRS, Crystal, etc. than from Visual FoxPro. Also, once you have the T-SQL, you can quickly re-create reports in any of the other methods including Qlickview, Tableau, and Excel. </p>
<p>Also, don&#8217;t forget to <a href="http://www.made2mentor.com/2010/12/database-views-using-powerpivot-with-problem-databases-part-2/">use Database Views</a> to make your code more manageable and easier to upgrade. </p>
<h3>SSRS is Less Expensive Than VFP</h3>
<p>SSRS is free with SQL Server 2005 and above. Did you actually license all of those copies of Visual FoxPro that you most likely have on your server and several workstations? If not, you&#8217;re breaking the law as those licenses cost approximately $500 a pop. </p>
<h3>SSRS Consulting is Less Expensive</h3>
<p>M2M charges $225 an hour for report customization work. One of the reasons they can is because there are relatively few people who are skilled in Visual FoxPro Reporting. SSRS Reporting skills are much more common and the competition drives prices down. Competent SSRS report writers can be hired for anywhere from $100 &#8211; $150 per hour on contract.</p>
<p>The Made2Manage people who recommend VFP Report Writing have three basic reasons that they cite for doing so. </p>
<h3>Using Anything Else is Not Supported</h3>
<p>Yes, this is true. Consona does not support the use of SSRS, Crystal, or even Excel for that matter. <strong>However, they don&#8217;t support their own VFP report customizations either</strong>. Consona&#8217;s contracts generally state that the contracted customization is only guaranteed to work on the version for which it was written. Be prepared, no matter which reporting method you use, to test and possibly edit your custom reports when migrating to a new version of M2M. If you&#8217;re using M2M Customized VFP reports, that may well mean more billing hours at $255 per. </p>
<h3>M2M Version 7 is Imminent</h3>
<p>Really? M2M has just begun to ask for Beta Testing volunteers. That process, especially when migrating to a new major release, will take a long time. And really, even if Version 7 was available today, how soon will most of you migrate anyway? I personally wouldn&#8217;t move until 7.01 (or after several service packs were issued) as new major releases are always problematic. Just ask the poor souls who were early adopters of version 6.0. </p>
<p>Yes, in a future version, M2M will get away from using Visual FoxPro. However, to the best of my knowledge they still haven&#8217;t announced what their new method will be. Even if it is some proprietary product, does it really matter anyway? They certainly aren&#8217;t going to migrate the entire product to Oracle or another database platform. Your SSRS reports will still work, and the time and effort invested in them is not wasted. </p>
<h3>Opening Reports in Another Program is Inconvenient</h3>
<p>You don&#8217;t need to open SSRS to use the reports. Those of you who regularly read this blog know that I&#8217;ve already shared how you can <a href="http://www.made2mentor.com/2011/05/opening-ssrs-reports-automatically-from-other-systems/">launch SSRS reports quickly and easily directly from M2M</a>. I know that people have done the same thing with Crystal Reports as well. </p>
<h3>One Exception&#8230;. </h3>
<p>The only time I edit a M2M VFP Report is when the requested customization is very small and easy to deliver. If a user wants another field from a table in the query, or some other small task, I&#8217;ll edit the current VFP report instead. I only do that when it&#8217;s more efficient than creating an entire report in SSRS or another medium. </p>
<p>What do you think? Anyone disagree with what I&#8217;ve said? What are you using as your reporting method and why? </p>
]]></content:encoded>
			<wfw:commentRss>http://www.made2mentor.com/2011/07/stop-writing-visual-foxpro-reports-today/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Creating a Date Table/Dimension for SQL Server 2008.</title>
		<link>http://www.made2mentor.com/2011/06/creating-a-date-tabledimension-for-sql-server-2008/</link>
		<comments>http://www.made2mentor.com/2011/06/creating-a-date-tabledimension-for-sql-server-2008/#comments</comments>
		<pubDate>Tue, 14 Jun 2011 14:00:50 +0000</pubDate>
		<dc:creator>David</dc:creator>
				<category><![CDATA[Data Warehousing]]></category>
		<category><![CDATA[Made2Manage]]></category>
		<category><![CDATA[SQL]]></category>

		<guid isPermaLink="false">http://www.made2mentor.com/?p=6176</guid>
		<description><![CDATA[
			
				
			
		
<p>In a previous article, I listed the benefits of using a dedicated date table and included a customizable script which enables you to quickly create your own version. One of my readers pointed out that he uses the date datatype, rather than using the smart integer key method, when working with SQL 2008+ databases. The [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: left; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.made2mentor.com%2F2011%2F06%2Fcreating-a-date-tabledimension-for-sql-server-2008%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.made2mentor.com%2F2011%2F06%2Fcreating-a-date-tabledimension-for-sql-server-2008%2F&amp;source=Made2Mentor&amp;style=normal&amp;b=2" height="61" width="50" /><br />
			</a>
		</div>
<p>In a <a href="http://www.made2mentor.com/2011/04/calendar-tables-why-you-need-one/">previous article</a>, I listed the benefits of using a dedicated date table and included a customizable script which enables you to quickly create your own version. One of my readers pointed out that he uses the date datatype, rather than using the smart integer key method, when working with SQL 2008+ databases. The smart date key is recommended by the Kimball Group and others.  </p>
<p>I performed <a href="http://www.made2mentor.com/2011/05/date-vs-integer-datatypes-as-primary-key-for-date-dimensions/">several tests</a> comparing the performance of Date vs. Integer datatype joins and found the Date joins to perform faster as well. </p>
<p>As a result, I&#8217;ve modified my script to create a Date datatype dimension have begun using it. As before, it is in two parts. The first script can be <a href='http://www.made2mentor.com/wp-content/uploads/2011/06/Date-Dimension-Base-Script-for-2008.txt'>found here</a>. Open the script, replace DateDatabase with the database name of your choice, and run it to create the function. </p>
<p>Once again, I need to state that I created this script from a function called <a href="http://www.sqlteam.com/forums/topic.asp?TOPIC_ID=61519">F_TABLE_DATE by Michael Valentine Jones</a> from <a href="http://www.sqlteam.com/">SQLTeam</a> and have since gotten his permission to distribute it. That function is called in the statement below to create the date table/dimension.</p>

<div class="wp_syntax"><div class="code"><pre class="tsql" style="font-family:monospace;"><span style="color: #0000FF;">IF</span> <span style="color: #808080;">EXISTS</span>
     <span style="color: #808080;">&#40;</span><span style="color: #0000FF;">SELECT</span> <span style="color: #000;">1</span>
        <span style="color: #0000FF;">FROM</span> <span style="color: #808080;">IN</span>F<span style="color: #808080;">OR</span>MATION_SCHEMA.<span style="color: #202020;">TABLES</span>
       <span style="color: #0000FF;">WHERE</span> TABLE_TYPE <span style="color: #808080;">=</span> <span style="color: #FF0000;">'BASE TABLE'</span> <span style="color: #808080;">AND</span> TABLE_NAME <span style="color: #808080;">=</span> <span style="color: #FF0000;">'DimDate'</span><span style="color: #808080;">&#41;</span>
  <span style="color: #0000FF;">BEGIN</span>
        <span style="color: #0000FF;">DROP</span> <span style="color: #0000FF;">TABLE</span> dbo.<span style="color: #202020;">DimDate</span>;
  <span style="color: #0000FF;">END</span>
&nbsp;
<span style="color: #0000FF;">SELECT</span> DTE.<span style="color: #0000FF;">Date</span>,
       DTE.<span style="color: #202020;">NextDayDate</span>,
       DTE.<span style="color: #202020;">CalendarYear</span>,
       DTE.<span style="color: #202020;">CalendarYearQuarter</span>,
       DTE.<span style="color: #202020;">CalendarYearMonth</span>,
       DTE.<span style="color: #202020;">CalendarYearDayOfYear</span>,
       DTE.<span style="color: #202020;">CalendarQuarter</span>,
       DTE.<span style="color: #202020;">CalendarMonth</span>,
       DTE.<span style="color: #202020;">CalendarDayOfYear</span>,
       DTE.<span style="color: #202020;">CalendarDayOfMonth</span>,
       DTE.<span style="color: #202020;">CalendarDayOfWeek</span>,
       DTE.<span style="color: #202020;">CalendarYearName</span>,
       DTE.<span style="color: #202020;">CalendarYearQuarterName</span>,
       DTE.<span style="color: #202020;">CalendarYearMonthName</span>,
       DTE.<span style="color: #202020;">CalendarYearMonthNameLong</span>,
       DTE.<span style="color: #202020;">CalendarQuarterName</span>,
       DTE.<span style="color: #202020;">CalendarMonthName</span>,
       DTE.<span style="color: #202020;">CalendarMonthNameLong</span>,
       DTE.<span style="color: #202020;">WeekdayName</span>,
       DTE.<span style="color: #202020;">WeekdayNameLong</span>,
       DTE.<span style="color: #202020;">CalendarStartOfYearDate</span>,
       DTE.<span style="color: #202020;">CalendarEndOfYearDate</span>,
       DTE.<span style="color: #202020;">CalendarStartOfQuarterDate</span>,
       DTE.<span style="color: #202020;">CalendarEndOfQuarterDate</span>,
       DTE.<span style="color: #202020;">CalendarStartOfMonthDate</span>,
       DTE.<span style="color: #202020;">CalendarEndOfMonthDate</span>,
       DTE.<span style="color: #202020;">QuarterSeqNo</span>,
       DTE.<span style="color: #202020;">MonthSeqNo</span>,
       DTE.<span style="color: #202020;">FiscalYearName</span>,
       DTE.<span style="color: #202020;">FiscalYearPeriod</span>,
       DTE.<span style="color: #202020;">FiscalYearDayOfYear</span>,
       DTE.<span style="color: #202020;">FiscalYearWeekName</span>,
       DTE.<span style="color: #202020;">FiscalSemester</span>,
       DTE.<span style="color: #202020;">FiscalQuarter</span>,
       DTE.<span style="color: #202020;">FiscalPeriod</span>,
       DTE.<span style="color: #202020;">FiscalDayOfYear</span>,
       DTE.<span style="color: #202020;">FiscalDayOfPeriod</span>,
       DTE.<span style="color: #202020;">FiscalWeekName</span>,
       DTE.<span style="color: #202020;">FiscalStartOfYearDate</span>,
       DTE.<span style="color: #202020;">FiscalEndOfYearDate</span>,
       DTE.<span style="color: #202020;">FiscalStartOfPeriodDate</span>,
       DTE.<span style="color: #202020;">FiscalEndOfPeriodDate</span>,
       DTE.<span style="color: #202020;">ISODate</span>,
       DTE.<span style="color: #202020;">ISOYearWeekNo</span>,
       DTE.<span style="color: #202020;">ISOWeekNo</span>,
       DTE.<span style="color: #202020;">ISODayOfWeek</span>,
       DTE.<span style="color: #202020;">ISOYearWeekName</span>,
       DTE.<span style="color: #202020;">ISOYearWeekDayOfWeekName</span>,
       DTE.<span style="color: #202020;">DateFormatYYYYMMDD</span>,
       DTE.<span style="color: #202020;">DateFormatYYYYMD</span>,
       DTE.<span style="color: #202020;">DateFormatMMDDYEAR</span>,
       DTE.<span style="color: #202020;">DateFormatMDYEAR</span>,
       DTE.<span style="color: #202020;">DateFormatMMMDYYYY</span>,
       DTE.<span style="color: #202020;">DateFormatMMMMMMMMMDYYYY</span>,
       DTE.<span style="color: #202020;">DateFormatMMDDYY</span>,
       DTE.<span style="color: #202020;">DateFormatMDYY</span>,
       DTE.<span style="color: #202020;">WorkDay</span>,
       DTE.<span style="color: #202020;">IsWorkDay</span>
       <span style="color: #0000FF;">into</span> dbo.<span style="color: #202020;">DimDate</span>
 <span style="color: #0000FF;">From</span> dbo.<span style="color: #202020;">F_TABLE_DATE</span> <span style="color: #808080;">&#40;</span> <span style="color: #FF0000;">'20000101'</span>,<span style="color: #FF0000;">'20351231'</span> <span style="color: #808080;">&#41;</span> DTE
 <span style="color: #0000FF;">order</span> <span style="color: #0000FF;">by</span> <span style="color: #000;">1</span>
 Go
&nbsp;
<span style="color: #0000FF;">ALTER</span> <span style="color: #0000FF;">TABLE</span> dbo.<span style="color: #202020;">DimDate</span>
<span style="color: #0000FF;">ADD</span>  <span style="color: #0000FF;">PRIMARY</span> <span style="color: #0000FF;">KEY</span> <span style="color: #0000FF;">CLUSTERED</span> <span style="color: #808080;">&#40;</span><span style="color: #808080;">&#91;</span><span style="color: #0000FF;">Date</span><span style="color: #808080;">&#93;</span><span style="color: #808080;">&#41;</span>
<span style="color: #0000FF;">WITH</span> <span style="color: #0000FF;">FILLFACTOR</span> <span style="color: #808080;">=</span> <span style="color: #000;">100</span>
GO
&nbsp;
<span style="color: #0000FF;">CREATE</span> <span style="color: #0000FF;">INDEX</span> idx_Dates
<span style="color: #0000FF;">ON</span> dbo.<span style="color: #202020;">DimDate</span> 
	<span style="color: #808080;">&#40;</span>NextDayDate<span style="color: #808080;">&#41;</span>
GO</pre></div></div>

<p>My example above generates every day through 2035, but nearly any date range can be used. As before, if you don&#8217;t want to have such a comprehensive Date Dimension or there are fields you don&#8217;t need, simply comment out items from the Select into query. </p>
<p>Querying against the Date Dimension is done the same way as with my previous script.</p>

<div class="wp_syntax"><div class="code"><pre class="tsql" style="font-family:monospace;"><span style="color: #0000FF;">SELECT</span>
  MY.<span style="color: #0000FF;">date</span>
 ,DTE.<span style="color: #202020;">CalendarYear</span>
 ,DTE.<span style="color: #202020;">CalendarMonthName</span>
<span style="color: #0000FF;">FROM</span>
    MyTable MY
  <span style="color: #0000FF;">INNER</span> <span style="color: #808080;">JOIN</span>
    DateDatabase.<span style="color: #202020;">dbo</span>.<span style="color: #202020;">DimDate</span> DTE
  <span style="color: #0000FF;">ON</span> MY.<span style="color: #0000FF;">date</span> <span style="color: #808080;">&gt;=</span> DTE.<span style="color: #0000FF;">date</span> <span style="color: #808080;">AND</span>
     MY.<span style="color: #0000FF;">date</span> <span style="color: #808080;">&lt;</span> DTE.<span style="color: #202020;">NextDayDate</span></pre></div></div>

<p>Any questions or suggestions for improvement? </p>
]]></content:encoded>
			<wfw:commentRss>http://www.made2mentor.com/2011/06/creating-a-date-tabledimension-for-sql-server-2008/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Opening SSRS Reports Automatically From Other Systems</title>
		<link>http://www.made2mentor.com/2011/05/opening-ssrs-reports-automatically-from-other-systems/</link>
		<comments>http://www.made2mentor.com/2011/05/opening-ssrs-reports-automatically-from-other-systems/#comments</comments>
		<pubDate>Fri, 27 May 2011 14:43:06 +0000</pubDate>
		<dc:creator>David</dc:creator>
				<category><![CDATA[Made2Manage]]></category>
		<category><![CDATA[SSRS]]></category>
		<category><![CDATA[Reports]]></category>
		<category><![CDATA[VBA]]></category>
		<category><![CDATA[Visual Basic]]></category>

		<guid isPermaLink="false">http://www.made2mentor.com/?p=6094</guid>
		<description><![CDATA[
			
				
			
		
<p>Users typically love SQL Server Reporting Services Reports (SSRS), especially if they&#8217;re accustomed to more primitive tools such as Visual FoxPro. However, One of the biggest complaints I hear about SSRS is that users want to be able to launch it directly from their ERP, accounting, and other systems. A conventional way to do this [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: left; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.made2mentor.com%2F2011%2F05%2Fopening-ssrs-reports-automatically-from-other-systems%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.made2mentor.com%2F2011%2F05%2Fopening-ssrs-reports-automatically-from-other-systems%2F&amp;source=Made2Mentor&amp;style=normal&amp;b=2" height="61" width="50" /><br />
			</a>
		</div>
<p>Users typically love SQL Server Reporting Services Reports (SSRS), especially if they&#8217;re accustomed to more primitive tools such as Visual FoxPro. However, One of the biggest complaints I hear about SSRS is that users want to be able to launch it directly from their ERP, accounting, and other systems. A conventional way to do this is through URL (Universal Resource Locator) manipulation.</p>
<p>Depending on the capabilities of the source system, reports can be launch from a button, combo box, list box, etc. and display a specific recordset based upon parameters you specify. The best way I&#8217;ve found to launch SSRS from Made2Manage is through VBA, which is a free optional module that any M2M customer can use. </p>
<h3>Steps to Create a URL Link Customization</h3>
<ol>
<li>Create a basic SSRS report. For this demo, I&#8217;ve created a very simple report which pulls a set of records from the Sales Order Master (SOMast) Table, which will be launched from the Sales Screen (SO). </li>
<p><a href="http://www.made2mentor.com/wp-content/uploads/2011/05/ssrs_sales.png"><img src="http://www.made2mentor.com/wp-content/uploads/2011/05/ssrs_sales.png" alt="" title="ssrs_sales" width="528" height="300" class="aligncenter size-full wp-image-6100" /></a></p>
<li>Determine the actual URL link. I&#8217;m not going to go through each step of obtaining the proper URL because there&#8217;s an excellent <a href="http://www.mssqltips.com/tip.asp?tip=1336">step by step tutorial here.</a> In my case, the URL will be: </li>
<p>http://jeditemple/ReportServer/Pages/ReportViewer.aspx%2fBlog+Projects%2fSales+Details+for+URL+Link&#038;rs:Command=Render</p>
<p>Use the tutorial link instructions to find your URL, and the rest of this article is about how to integrate this into M2M. </p>
<li>Properly install VBA on the systems which will use this link. There are instructions on <a href="http://www.m2mexpert.com">M2MExpert</a> as well as on the M2M Install Disks, but beware that they are confusing and hard to follow. </li>
<li> Customize your M2VEvents.prj file in VBA. There is a downloadable class on M2M&#8217;s website for VBA programming. </li>
<li>You manipulate your M2VEvents.prj file by selecting Tools, Macros, and then Macros or by clicking on the Transfer button and typing VBPROJ. If your VBA project file is empty, you will have to access it by opening a screen in M2M, in this case SO, right clicking on the screen mnemonic, and selecting components. Choose INIT and the VBA Editor will open and the SO module will be created for you. </li>
<p><a href="http://www.made2mentor.com/wp-content/uploads/2011/05/open_vba.png"><img src="http://www.made2mentor.com/wp-content/uploads/2011/05/open_vba.png" alt="" title="open_vba" width="288" height="340" class="aligncenter size-full wp-image-6105" /></a>	</p>
<li>Right click on the Module folder and select Insert and Module.</li>
<p><a href="http://www.made2mentor.com/wp-content/uploads/2011/05/create_defaultmodule.png"><img src="http://www.made2mentor.com/wp-content/uploads/2011/05/create_defaultmodule.png" alt="" title="create_defaultmodule" width="339" height="264" class="aligncenter size-full wp-image-6109" /></a></p>
<li>Click on the new module and change the name to &#8220;DefaultModule&#8221; in the properties box.</li>
<p><a href="http://www.made2mentor.com/wp-content/uploads/2011/05/vba_modules.png"><img src="http://www.made2mentor.com/wp-content/uploads/2011/05/vba_modules.png" alt="" title="vba_modules" width="226" height="257" class="aligncenter size-full wp-image-6106" /></a></p>
<li>Open the default module and paste the following code into it. This is a public function that is called by each module when creating the report URLs. Notice that I&#8217;ve ended it after the Blog Projects folder. My test SSRS Server only has the one folder on it at this time. The point is that this function returns the base portion of the URL for every report you intend to launch from M2M. The reason I&#8217;ve used the DefaultModule is if I decide to commission a new server, with a new name and such, I only need to change this base portion in one place, not in every module of the VBA project. Keep in mind that you will need to customize this code to match your server, folder structure, report names, etc. </li>

<div class="wp_syntax"><div class="code"><pre class="vb" style="font-family:monospace;"><span style="color: #E56717; font-weight: bold;">Public</span> <span style="color: #E56717; font-weight: bold;">Function</span> GetReportString() <span style="color: #151B8D; font-weight: bold;">As</span> <span style="color: #F660AB; font-weight: bold;">String</span>
    GetReportString = <span style="color: #800000;">&quot;http://jeditemple/ReportServer/Pages/ReportViewer.aspx?%2fBlog+Projects%2f&quot;</span>
<span style="color: #8D38C9; font-weight: bold;">End</span> <span style="color: #E56717; font-weight: bold;">Function</span></pre></div></div>

<li>Open the SO Module, press CTRL-A to select all of the text in it and delete that text. Then copy and paste in the following code into the SO module.</li>

<div class="wp_syntax"><div class="code"><pre class="vb" style="font-family:monospace;"><span style="color: #E56717; font-weight: bold;">Public</span> ReportStr <span style="color: #151B8D; font-weight: bold;">As</span> <span style="color: #F660AB; font-weight: bold;">String</span>
<span style="color: #E56717; font-weight: bold;">Public</span> <span style="color: #E56717; font-weight: bold;">Function</span> INIT() <span style="color: #151B8D; font-weight: bold;">As</span> <span style="color: #F660AB; font-weight: bold;">Boolean</span>
&nbsp;
&nbsp;
   <span style="color: #8D38C9; font-weight: bold;">With</span> ThisForm.m2mPageFrame1.page1
     .addobject <span style="color: #800000;">&quot;lstReports&quot;</span>, <span style="color: #800000;">&quot;m2mListBox&quot;</span>
     .lstreports.Top = 300
     .lstreports.Left = 500
     .lstreports.Width = 80
     .lstreports.Height = 39
     .lstreports.Visible = <span style="color: #00C2FF; font-weight: bold;">True</span>
     .lstreports.AddItem <span style="color: #800000;">&quot;Sales&quot;</span>
    <span style="color: #8D38C9; font-weight: bold;">End</span> <span style="color: #8D38C9; font-weight: bold;">With</span>
&nbsp;
   ReportStr = GetReportString()
&nbsp;
    INIT = <span style="color: #00C2FF; font-weight: bold;">True</span>
<span style="color: #8D38C9; font-weight: bold;">End</span> <span style="color: #E56717; font-weight: bold;">Function</span>
&nbsp;
<span style="color: #E56717; font-weight: bold;">Public</span> <span style="color: #E56717; font-weight: bold;">Function</span> M2mpageframe1_Page1_lstReports_CLICK() <span style="color: #151B8D; font-weight: bold;">As</span> <span style="color: #F660AB; font-weight: bold;">Boolean</span>
&nbsp;
<span style="color: #151B8D; font-weight: bold;">Dim</span> Rpt <span style="color: #151B8D; font-weight: bold;">As</span> <span style="color: #F660AB; font-weight: bold;">String</span>, Param <span style="color: #151B8D; font-weight: bold;">As</span> <span style="color: #F660AB; font-weight: bold;">String</span>, lcSomastSono <span style="color: #151B8D; font-weight: bold;">As</span> <span style="color: #F660AB; font-weight: bold;">String</span>, Newsite <span style="color: #151B8D; font-weight: bold;">As</span> <span style="color: #F660AB; font-weight: bold;">Object</span>
&nbsp;
<span style="color: #151B8D; font-weight: bold;">Set</span> Newsite = <span style="color: #E56717; font-weight: bold;">CreateObject</span>(<span style="color: #800000;">&quot;InternetExplorer.application&quot;</span>)
&nbsp;
<span style="color: #8D38C9; font-weight: bold;">Select</span> <span style="color: #8D38C9; font-weight: bold;">Case</span> ThisForm.m2mPageFrame1.page1.lstreports.Value
&nbsp;
    <span style="color: #8D38C9; font-weight: bold;">Case</span> <span style="color: #800000;">&quot;Sales&quot;</span>
            lcSomastSono = Trim(ThisForm.gettablevalue(<span style="color: #800000;">&quot;somast&quot;</span>, <span style="color: #800000;">&quot;fsono&quot;</span>))
            Rpt = <span style="color: #800000;">&quot;Sales+Details+for+URL+Link&amp;rs:Command=Render&quot;</span>
            Param = <span style="color: #800000;">&quot;&amp;SONO=&quot;</span> + lcSomastSono
            Newsite.Navigate (ReportStr &amp; Rpt &amp; Param)
            Newsite.Visible = <span style="color: #00C2FF; font-weight: bold;">True</span>
    <span style="color: #8D38C9; font-weight: bold;">Case</span> <span style="color: #8D38C9; font-weight: bold;">Else</span>
            MsgBox (<span style="color: #800000;">&quot;Problem occured. Contact your administrator for help. &quot;</span>)
<span style="color: #8D38C9; font-weight: bold;">End</span> <span style="color: #8D38C9; font-weight: bold;">Select</span>
    M2mpageframe1_Page1_lstReports_LICK = <span style="color: #00C2FF; font-weight: bold;">True</span>
<span style="color: #8D38C9; font-weight: bold;">End</span> <span style="color: #E56717; font-weight: bold;">Function</span></pre></div></div>

<li>The INIT code draws a listbox on the SO form, assigns it&#8217;s properties, adds a selection to it called &#8220;Sales&#8221;. I chose a listbox because it&#8217;s one of the few controls on an M2M form that isn&#8217;t constrained by the Edit State of the screen. In other words, you can click on it even if you&#8217;re just viewing orders rather than editing them. I&#8217;d like to find a way to create something that looks like a hyperlink, but have not yet been successful.</li>
<li>The second function, which fires when the listbox is clicked, creates the URL from it&#8217;s basic parts. </li>
<ul>
<li>ReportStr as stated before is the base of your URL including your server name and base folder.</li>
<li>Rpt is the URL portion with the name of your report.</li>
<li>Param is the name of your parameter for this specific report. </li>
<li>lcSomastSono contains the record value, in this case the current Sales Order Number.</li>
</ul>
<li>If you&#8217;ve coded it properly, when you open the SO screen in M2M, you should see the following:</li>
<p><a href="http://www.made2mentor.com/wp-content/uploads/2011/05/so_screen_listbox.png"><img src="http://www.made2mentor.com/wp-content/uploads/2011/05/so_screen_listbox.png" alt="" title="so_screen_listbox" width="320" height="220" class="aligncenter size-full wp-image-6129" /></a>
<li>If you&#8217;ve modified the code properly to connect to your SSRS server, then the report should open up to the corresponding sales order. In my case the URL created is shown below. Notice that I&#8217;ve bolded the custom parameter portion. </li>
<p>http://jeditemple/ReportServer/Pages/ReportViewer.aspx?%2fBlog+Projects%2fSales+Details+for+URL+Link&#038;rs:Command=Render<strong>&#038;SONO=000064</strong></p>
<li>There are additional parameter options shown in that tutorial which allow you to suppress the report toolbar, the parameter portion, etc. </li>
</ol>
<p>Although the code may look cumbersome, once you work through it, it&#8217;s very easy to understand and replicate. The <a href='http://www.made2mentor.com/wp-content/uploads/2011/05/VBA-Modules.zip'>VBA Modules</a> are available for download as well. </p>
<p>Any questions or suggestions for improvement? </p>
]]></content:encoded>
			<wfw:commentRss>http://www.made2mentor.com/2011/05/opening-ssrs-reports-automatically-from-other-systems/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Using a Date Table to Track Custom Fiscal Years/Periods</title>
		<link>http://www.made2mentor.com/2011/04/using-a-date-table-to-track-custom-fiscal-yearsperiods/</link>
		<comments>http://www.made2mentor.com/2011/04/using-a-date-table-to-track-custom-fiscal-yearsperiods/#comments</comments>
		<pubDate>Mon, 25 Apr 2011 18:25:11 +0000</pubDate>
		<dc:creator>David</dc:creator>
				<category><![CDATA[Data Warehousing]]></category>
		<category><![CDATA[Made2Manage]]></category>
		<category><![CDATA[Report Customization]]></category>
		<category><![CDATA[SQL]]></category>
		<category><![CDATA[Data Warehouse]]></category>
		<category><![CDATA[How To]]></category>
		<category><![CDATA[Reporting]]></category>

		<guid isPermaLink="false">http://www.made2mentor.com/?p=5918</guid>
		<description><![CDATA[
			
				
			
		
<p>Calendar Tables are only useful if they reflect how your company evaluates its data. Therefore, any company using non-standard financial fiscal years and periods will require customization with their Calendar or Date Table. In this post, I&#8217;ll provide an example of how to do so using the M2M ERP System Database. For those who don&#8217;t [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: left; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.made2mentor.com%2F2011%2F04%2Fusing-a-date-table-to-track-custom-fiscal-yearsperiods%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.made2mentor.com%2F2011%2F04%2Fusing-a-date-table-to-track-custom-fiscal-yearsperiods%2F&amp;source=Made2Mentor&amp;style=normal&amp;b=2" height="61" width="50" /><br />
			</a>
		</div>
<p>Calendar Tables are only useful if they reflect how your company evaluates its data. Therefore, any company using non-standard financial fiscal years and periods will require customization with their <a href="http://www.made2mentor.com/2011/04/calendar-tables-why-you-need-one/">Calendar or Date Table</a>. In this post, I&#8217;ll provide an example of how to do so using the M2M ERP System Database. For those who don&#8217;t use M2M, the notes should serve as an example of how to do so with other systems. </p>
<p>The most effective way to determine the fiscal setup of a company is to determine how its major systems track the data. In M2M the source is the GL Rules and Periods (GLRule) table. There are four primary fields of interest, which I&#8217;ve aliased, and they are listed in the following query and screenshot.</p>

<div class="wp_syntax"><div class="code"><pre class="tsql" style="font-family:monospace;"><span style="color: #0000FF;">SELECT</span> GLR.<span style="color: #202020;">fcname</span> AcctYearName
      ,GLR.<span style="color: #202020;">fnnumber</span> PeriodNo
      ,GLR.<span style="color: #202020;">fdstart</span> FirstDayOfPeriod
      ,GLR.<span style="color: #202020;">fdend</span> LastDayOfPeriod
  <span style="color: #0000FF;">FROM</span> dbo.<span style="color: #202020;">glrule</span> GLR</pre></div></div>

<p><a href="http://www.made2mentor.com/wp-content/uploads/2011/04/acct_year.png"><img src="http://www.made2mentor.com/wp-content/uploads/2011/04/acct_year.png" alt="" title="acct_year" width="422" height="290" class="aligncenter size-full wp-image-5921" /></a></p>
<p>As you can see, there is one record for each fiscal period in GLRule.  FCName is a Char(20) field and typically contains values like &#8220;FY 2005&#8243; or &#8220;Fiscal Year 2005&#8243;. FNNumber contains the period number and is an Int datatype. FDStart and FDEnd are Datetime fields and represent the first and last days of each period. </p>
<p>What follows are the update statements which I use to customize the fiscal periods of my calendar table. For your convenience, you can access the entire script here****. Copy and paste the entire query, replace the database and table name, and run it. I&#8217;ve dissected each step of the script below so those not using M2M can understand my logic and mimic those steps with their own systems. </p>
<p>Six fields are updated by the first statement. Notice that I&#8217;ve joined the Calendar Table to GLRule with a between statement. I&#8217;m using the pattern matching of Patindex to find the four digit number for Fiscal Year. However, if the user entered something like &#8220;Two Thousand Five&#8221; as a Fiscal Year, this method will not work. Start and end of period fields are taken directly out of GLRule as well. FiscalDayOfPeriod is calculated in this step as well for good measure.</p>

<div class="wp_syntax"><div class="code"><pre class="tsql" style="font-family:monospace;"><span style="color: #0000FF;">Use</span> M2MDataXX
GO
<span style="color: #0000FF;">UPDATE</span> TST
   <span style="color: #0000FF;">SET</span> TST.<span style="color: #808080;">&#91;</span>FiscalYearName<span style="color: #808080;">&#93;</span> <span style="color: #808080;">=</span>
        <span style="color: #FF00FF;">substring</span> <span style="color: #808080;">&#40;</span>GLR.<span style="color: #202020;">fcName</span>, <span style="color: #FF00FF;">patindex</span> <span style="color: #808080;">&#40;</span><span style="color: #FF0000;">'%[1,2][9,0,1,2][0-9][0-9]%'</span>, GLR.<span style="color: #202020;">fcName</span><span style="color: #808080;">&#41;</span>, <span style="color: #000;">4</span><span style="color: #808080;">&#41;</span>
      ,TST.<span style="color: #808080;">&#91;</span>FiscalYearPeriod<span style="color: #808080;">&#93;</span> <span style="color: #808080;">=</span>
        <span style="color: #808080;">&#40;</span><span style="color: #FF00FF;">substring</span> <span style="color: #808080;">&#40;</span>GLR.<span style="color: #202020;">fcName</span>, <span style="color: #FF00FF;">patindex</span> <span style="color: #808080;">&#40;</span><span style="color: #FF0000;">'%[1,2][9,0,1,2][0-9][0-9]%'</span>, GLR.<span style="color: #202020;">fcName</span><span style="color: #808080;">&#41;</span>, <span style="color: #000;">4</span><span style="color: #808080;">&#41;</span><span style="color: #808080;">&#41;</span>
        <span style="color: #808080;">+</span> <span style="color: #808080;">+</span> <span style="color: #808080;">&#40;</span>GLR.<span style="color: #202020;">fnnumber</span> <span style="color: #808080;">/</span> <span style="color: #000;">100.00</span><span style="color: #808080;">&#41;</span>
      ,TST.<span style="color: #808080;">&#91;</span>FiscalPeriod<span style="color: #808080;">&#93;</span> <span style="color: #808080;">=</span> GLR.<span style="color: #202020;">fnnumber</span>
      ,TST.<span style="color: #808080;">&#91;</span>FiscalStartOfPeriodDate<span style="color: #808080;">&#93;</span> <span style="color: #808080;">=</span> GLR.<span style="color: #202020;">fdstart</span>
      ,TST.<span style="color: #808080;">&#91;</span>FiscalEndOfPeriodDate<span style="color: #808080;">&#93;</span> <span style="color: #808080;">=</span> GLR.<span style="color: #202020;">fdend</span>
      ,TST.<span style="color: #808080;">&#91;</span>FiscalDayOfPeriod<span style="color: #808080;">&#93;</span> <span style="color: #808080;">=</span> <span style="color: #808080;">&#40;</span><span style="color: #FF00FF;">DATEDIFF</span> <span style="color: #808080;">&#40;</span>dd, GLR.<span style="color: #202020;">fdstart</span>, TST.<span style="color: #808080;">&#91;</span><span style="color: #0000FF;">DATE</span><span style="color: #808080;">&#93;</span><span style="color: #808080;">&#41;</span> <span style="color: #808080;">+</span> <span style="color: #000;">1</span><span style="color: #808080;">&#41;</span>
  <span style="color: #0000FF;">FROM</span>  DateTestStnd.<span style="color: #202020;">dbo</span>.<span style="color: #202020;">DimDate</span> TST
       <span style="color: #0000FF;">INNER</span> <span style="color: #808080;">JOIN</span>
        glrule GLR
       <span style="color: #0000FF;">ON</span> TST.<span style="color: #0000FF;">DATE</span> <span style="color: #808080;">BETWEEN</span> GLR.<span style="color: #202020;">fdstart</span> <span style="color: #808080;">AND</span> GLR.<span style="color: #202020;">fdend</span></pre></div></div>

<p>In this step, I&#8217;ve calculated the beginning and end of Fiscal Years. I group the record set in GLRule by Fiscal Year and then use min/max to determine the first and last day in each group.</p>

<div class="wp_syntax"><div class="code"><pre class="tsql" style="font-family:monospace;"><span style="color: #0000FF;">UPDATE</span> TST
   <span style="color: #0000FF;">SET</span> TST.<span style="color: #808080;">&#91;</span>FiscalStartOfYearDate<span style="color: #808080;">&#93;</span> <span style="color: #808080;">=</span> M2MYEARS.<span style="color: #808080;">&#91;</span>FiscalStartOfYearDate<span style="color: #808080;">&#93;</span>
      ,TST.<span style="color: #808080;">&#91;</span>FiscalEndOfYearDate<span style="color: #808080;">&#93;</span> <span style="color: #808080;">=</span> M2MYEARS.<span style="color: #808080;">&#91;</span>FiscalEndOfYearDate<span style="color: #808080;">&#93;</span>
  <span style="color: #0000FF;">FROM</span>  DateDatabase.<span style="color: #202020;">dbo</span>.<span style="color: #202020;">DimDate</span> TST
       <span style="color: #0000FF;">INNER</span> <span style="color: #808080;">JOIN</span>
        <span style="color: #808080;">&#40;</span><span style="color: #0000FF;">SELECT</span> <span style="color: #FF00FF;">substring</span> <span style="color: #808080;">&#40;</span>GLR.<span style="color: #202020;">fcName</span>, <span style="color: #FF00FF;">patindex</span> <span style="color: #808080;">&#40;</span><span style="color: #FF0000;">'%[1,2][9,0,1,2][0-9][0-9]%'</span>, GLR.<span style="color: #202020;">fcName</span><span style="color: #808080;">&#41;</span>, <span style="color: #000;">4</span><span style="color: #808080;">&#41;</span>
                 FiscalYearName
               ,<span style="color: #FF00FF;">min</span> <span style="color: #808080;">&#40;</span>GLR.<span style="color: #202020;">fdstart</span><span style="color: #808080;">&#41;</span> <span style="color: #808080;">&#91;</span>FiscalStartOfYearDate<span style="color: #808080;">&#93;</span>
               ,<span style="color: #FF00FF;">max</span> <span style="color: #808080;">&#40;</span>GLR.<span style="color: #202020;">fdend</span><span style="color: #808080;">&#41;</span> <span style="color: #808080;">&#91;</span>FiscalEndOfYearDate<span style="color: #808080;">&#93;</span>
           <span style="color: #0000FF;">FROM</span> glrule GLR
         <span style="color: #0000FF;">GROUP</span> <span style="color: #0000FF;">BY</span> GLR.<span style="color: #202020;">fcname</span><span style="color: #808080;">&#41;</span> M2MYEARS
       <span style="color: #0000FF;">ON</span> TST.<span style="color: #202020;">FiscalYearName</span> <span style="color: #808080;">=</span> M2MYEARS.<span style="color: #202020;">FiscalYearName</span></pre></div></div>

<p>In the next step, I calculate the FiscalDayofYear and FiscalYearDayOfYear field. While I could have included this code in the previous step, it&#8217;s much easier to read and understand as a separate step. The FiscalDayOfYear calculation is simple and is simply the number of days between the current record and the first day Fiscal Year calculated previously. The FiscalYearDayOfYear is the same calculation, but I convert the integer (day) to a decimal and add it to the Fiscal Year integer. This makes drill down and grouping easier.</p>

<div class="wp_syntax"><div class="code"><pre class="tsql" style="font-family:monospace;"><span style="color: #0000FF;">UPDATE</span> TST
   <span style="color: #0000FF;">SET</span> TST.<span style="color: #808080;">&#91;</span>FiscalDayOfYear<span style="color: #808080;">&#93;</span> <span style="color: #808080;">=</span> <span style="color: #808080;">&#40;</span><span style="color: #FF00FF;">DATEDIFF</span> <span style="color: #808080;">&#40;</span>dd, <span style="color: #808080;">&#91;</span>FiscalStartOfYearDate<span style="color: #808080;">&#93;</span>, TST.<span style="color: #808080;">&#91;</span><span style="color: #0000FF;">DATE</span><span style="color: #808080;">&#93;</span><span style="color: #808080;">&#41;</span> <span style="color: #808080;">+</span> <span style="color: #000;">1</span><span style="color: #808080;">&#41;</span>
      ,TST.<span style="color: #808080;">&#91;</span>FiscalYearDayOfYear<span style="color: #808080;">&#93;</span> <span style="color: #808080;">=</span>
        <span style="color: #808080;">&#40;</span><span style="color: #FF00FF;">datepart</span> <span style="color: #808080;">&#40;</span><span style="color: #0000FF;">year</span>, TST.<span style="color: #808080;">&#91;</span><span style="color: #0000FF;">DATE</span><span style="color: #808080;">&#93;</span><span style="color: #808080;">&#41;</span>
         <span style="color: #808080;">+</span> <span style="color: #0000FF;">cast</span> <span style="color: #808080;">&#40;</span>
            <span style="color: #808080;">&#40;</span><span style="color: #FF00FF;">datediff</span> <span style="color: #808080;">&#40;</span>dd, <span style="color: #FF00FF;">dateadd</span> <span style="color: #808080;">&#40;</span>yy, <span style="color: #FF00FF;">datediff</span> <span style="color: #808080;">&#40;</span>yy, <span style="color: #000;">0</span>, TST.<span style="color: #808080;">&#91;</span><span style="color: #0000FF;">DATE</span><span style="color: #808080;">&#93;</span><span style="color: #808080;">&#41;</span>, <span style="color: #000;">0</span><span style="color: #808080;">&#41;</span>, TST.<span style="color: #808080;">&#91;</span><span style="color: #0000FF;">DATE</span><span style="color: #808080;">&#93;</span><span style="color: #808080;">&#41;</span> <span style="color: #808080;">+</span> <span style="color: #000;">1</span><span style="color: #808080;">&#41;</span>
            <span style="color: #808080;">/</span> <span style="color: #000;">1000.00</span> <span style="color: #0000FF;">AS</span> <span style="color: #0000FF;">NUMERIC</span> <span style="color: #808080;">&#40;</span><span style="color: #000;">3</span>, <span style="color: #000;">3</span><span style="color: #808080;">&#41;</span><span style="color: #808080;">&#41;</span><span style="color: #808080;">&#41;</span>
   <span style="color: #0000FF;">FROM</span>  DateDatabase.<span style="color: #202020;">dbo</span>.<span style="color: #202020;">DimDate</span> TST</pre></div></div>

<p>The next section looks complex because I have to determine whether the number of Fiscal Periods can be broken into Quarters and Semesters. If a company used 10 Fiscal Periods per year, the concept of Quarters doesn&#8217;t make sense, but Semesters do. To make the code easier to understand, I&#8217;ve numbered the sections. </p>
<p>Section 1 checks whether the number of periods per fiscal year can be divided into quarters and semesters and the number of periods in each. Section 2 includes the period start and end dates so that the values of quarter and semester can be related back to the date table. Values for quarter or semester will be set to 0 if they aren&#8217;t valid in a particular M2M install.</p>

<div class="wp_syntax"><div class="code"><pre class="tsql" style="font-family:monospace;"><span style="color: #0000FF;">UPDATE</span> TST
   <span style="color: #0000FF;">SET</span> <span style="color: #808080;">&#91;</span>FiscalQuarter<span style="color: #808080;">&#93;</span> <span style="color: #808080;">=</span>
        <span style="color: #0000FF;">CASE</span> M2MYEARS.<span style="color: #202020;">Quarterific</span>
         <span style="color: #0000FF;">WHEN</span> <span style="color: #FF0000;">'Yes'</span> <span style="color: #0000FF;">THEN</span> <span style="color: #808080;">&#40;</span><span style="color: #FF00FF;">ceiling</span> <span style="color: #808080;">&#40;</span><span style="color: #0000FF;">CAST</span> <span style="color: #808080;">&#40;</span>M2MYEARS.<span style="color: #202020;">PeriodNo</span> <span style="color: #0000FF;">AS</span> <span style="color: #0000FF;">DECIMAL</span> <span style="color: #808080;">&#40;</span><span style="color: #000;">4</span>, <span style="color: #000;">2</span><span style="color: #808080;">&#41;</span><span style="color: #808080;">&#41;</span> <span style="color: #808080;">/</span> M2MYEARS.<span style="color: #202020;">QuarterSize</span><span style="color: #808080;">&#41;</span><span style="color: #808080;">&#41;</span>
         <span style="color: #0000FF;">ELSE</span> <span style="color: #000;">0</span>
        <span style="color: #0000FF;">END</span>
      ,<span style="color: #808080;">&#91;</span>FiscalSemester<span style="color: #808080;">&#93;</span> <span style="color: #808080;">=</span>
        <span style="color: #0000FF;">CASE</span> M2MYEARS.<span style="color: #202020;">Semesterific</span>
         <span style="color: #0000FF;">WHEN</span> <span style="color: #FF0000;">'Yes'</span> <span style="color: #0000FF;">THEN</span> <span style="color: #808080;">&#40;</span><span style="color: #FF00FF;">ceiling</span> <span style="color: #808080;">&#40;</span><span style="color: #0000FF;">CAST</span> <span style="color: #808080;">&#40;</span>M2MYEARS.<span style="color: #202020;">PeriodNo</span> <span style="color: #0000FF;">AS</span> <span style="color: #0000FF;">DECIMAL</span> <span style="color: #808080;">&#40;</span><span style="color: #000;">4</span>, <span style="color: #000;">2</span><span style="color: #808080;">&#41;</span><span style="color: #808080;">&#41;</span> <span style="color: #808080;">/</span> M2MYEARS.<span style="color: #202020;">SemesterSize</span><span style="color: #808080;">&#41;</span><span style="color: #808080;">&#41;</span>
         <span style="color: #0000FF;">ELSE</span> <span style="color: #000;">0</span>
        <span style="color: #0000FF;">END</span> 
  <span style="color: #0000FF;">FROM</span>  DateTestStnd.<span style="color: #202020;">dbo</span>.<span style="color: #202020;">DimDate</span> TST
       <span style="color: #0000FF;">INNER</span> <span style="color: #808080;">JOIN</span>
 <span style="color: #008080;">-------------- 2. Include Start and End of Period Values. </span>
        <span style="color: #808080;">&#40;</span><span style="color: #0000FF;">SELECT</span> fcname FYName
               ,fdstart PeriodStart
               ,fdend PeriodEnd
               ,fnnumber PeriodNo
               ,GLRAGG.<span style="color: #202020;">QuarterSize</span>
               ,GLRAGG.<span style="color: #202020;">Quarterific</span>
               ,GLRAGG.<span style="color: #202020;">SemesterSize</span>
               ,GLRAGG.<span style="color: #202020;">Semesterific</span>
           <span style="color: #0000FF;">FROM</span>  dbo.<span style="color: #202020;">glrule</span> GLR
                <span style="color: #0000FF;">INNER</span> <span style="color: #808080;">JOIN</span>
  <span style="color: #008080;">-------------- 1. Calculate whether Quarters and Semesters are Valid (and their values)</span>
                 <span style="color: #808080;">&#40;</span><span style="color: #0000FF;">SELECT</span> fcname AGGFYName
                        ,<span style="color: #FF00FF;">MAX</span> <span style="color: #808080;">&#40;</span>fnnumber<span style="color: #808080;">&#41;</span> PeriodCount
                        , <span style="color: #808080;">&#40;</span><span style="color: #FF00FF;">Max</span> <span style="color: #808080;">&#40;</span>fnnumber<span style="color: #808080;">&#41;</span> <span style="color: #808080;">/</span> <span style="color: #000;">4</span><span style="color: #808080;">&#41;</span> QuarterSize
                        ,<span style="color: #0000FF;">CASE</span> <span style="color: #0000FF;">WHEN</span> <span style="color: #FF00FF;">Max</span> <span style="color: #808080;">&#40;</span>fnnumber<span style="color: #808080;">&#41;</span> <span style="color: #808080;">%</span> <span style="color: #000;">4</span> <span style="color: #808080;">=</span> <span style="color: #000;">0</span> <span style="color: #0000FF;">THEN</span> <span style="color: #FF0000;">'Yes'</span> <span style="color: #0000FF;">ELSE</span> <span style="color: #FF0000;">'No'</span> <span style="color: #0000FF;">END</span> <span style="color: #0000FF;">AS</span> Quarterific
                        , <span style="color: #808080;">&#40;</span><span style="color: #FF00FF;">Max</span> <span style="color: #808080;">&#40;</span>fnnumber<span style="color: #808080;">&#41;</span> <span style="color: #808080;">/</span> <span style="color: #000;">2</span><span style="color: #808080;">&#41;</span> SemesterSize
                        ,<span style="color: #0000FF;">CASE</span> <span style="color: #0000FF;">WHEN</span> <span style="color: #FF00FF;">Max</span> <span style="color: #808080;">&#40;</span>fnnumber<span style="color: #808080;">&#41;</span> <span style="color: #808080;">%</span> <span style="color: #000;">2</span> <span style="color: #808080;">=</span> <span style="color: #000;">0</span> <span style="color: #0000FF;">THEN</span> <span style="color: #FF0000;">'Yes'</span> <span style="color: #0000FF;">ELSE</span> <span style="color: #FF0000;">'No'</span> <span style="color: #0000FF;">END</span> <span style="color: #0000FF;">AS</span> Semesterific
                    <span style="color: #0000FF;">FROM</span> dbo.<span style="color: #202020;">glrule</span>
                  <span style="color: #0000FF;">GROUP</span> <span style="color: #0000FF;">BY</span> fcname<span style="color: #808080;">&#41;</span> GLRAGG
                <span style="color: #0000FF;">ON</span> GLR.<span style="color: #202020;">FCNAME</span> <span style="color: #808080;">=</span> GLRAGG.<span style="color: #202020;">AGGFYNAME</span><span style="color: #808080;">&#41;</span> M2MYEARS
 <span style="color: #008080;">-------------- End of 1</span>
       <span style="color: #0000FF;">ON</span> TST.<span style="color: #0000FF;">DATE</span> <span style="color: #808080;">&gt;=</span> M2MYEARS.<span style="color: #202020;">PeriodStart</span> <span style="color: #808080;">AND</span> TST.<span style="color: #0000FF;">DATE</span> <span style="color: #808080;">&lt;=</span> M2MYEARS.<span style="color: #202020;">PeriodEnd</span>
  <span style="color: #008080;">-------------- End of 2</span></pre></div></div>

<p>Workday calculation is also somewhat difficult to understand. In M2M this information is kept in the Production Calendar (SCCALN) table. The fields we care about are: </p>
<ul>
<li>fcYrMon &#8211; Year and month in the format of YYYY/MM (2011/02). Unfortunately these are not per Fiscal Year or Period, they are by Calendar Year and Month. </li>
<li>fcShifts &#8211; A Varchar (31) field with the number of Shifts per day. </li>
</ul>
<p><a href="http://www.made2mentor.com/wp-content/uploads/2011/04/Workdays.png"><img src="http://www.made2mentor.com/wp-content/uploads/2011/04/Workdays.png" alt="" title="Workdays" width="254" height="316" class="aligncenter size-full wp-image-5942" /></a><br />
Needless to say, we need an easier way than parsing through this table every time we need to calculate work days. The join is a little strange because the Date Table CalendarYear and CalendarMonth fields are SmallInt and need to be cast as Varchar. I&#8217;ve used a left join because many M2M companies don&#8217;t use the Production Calendar so SCCALN may lack records for fiscal periods. </p>
<p>Basically the code checks for a corresponding record in SCCALN. If one does not exist, then the typical Monday through Friday work week is used by default. If it does exist the fcShifts field is parsed, and if there are one or more shifts for a particular day, then the date is designated a work day.</p>

<div class="wp_syntax"><div class="code"><pre class="tsql" style="font-family:monospace;"><span style="color: #0000FF;">UPDATE</span> TST
   <span style="color: #0000FF;">SET</span> WorkDay <span style="color: #808080;">=</span>
        <span style="color: #0000FF;">CASE</span>
         <span style="color: #0000FF;">WHEN</span> wc.<span style="color: #202020;">fcShifts</span> <span style="color: #0000FF;">IS</span> <span style="color: #808080;">NULL</span> <span style="color: #0000FF;">THEN</span>
           <span style="color: #0000FF;">CASE</span> <span style="color: #0000FF;">WHEN</span> TST.<span style="color: #202020;">CalendarDayOfWeek</span> <span style="color: #808080;">IN</span> <span style="color: #808080;">&#40;</span><span style="color: #000;">1</span>, <span style="color: #000;">7</span><span style="color: #808080;">&#41;</span> <span style="color: #0000FF;">THEN</span> <span style="color: #FF0000;">'No Work'</span> <span style="color: #0000FF;">ELSE</span> <span style="color: #FF0000;">'Work Day'</span> <span style="color: #0000FF;">END</span>
         <span style="color: #0000FF;">ELSE</span>
           <span style="color: #0000FF;">CASE</span>
            <span style="color: #0000FF;">WHEN</span> <span style="color: #FF00FF;">substring</span> <span style="color: #808080;">&#40;</span>WC.<span style="color: #202020;">fcShifts</span>, TST.<span style="color: #202020;">CalendarDayOfMonth</span>, <span style="color: #000;">1</span><span style="color: #808080;">&#41;</span> <span style="color: #808080;">=</span> <span style="color: #FF0000;">'0'</span> <span style="color: #0000FF;">THEN</span> <span style="color: #FF0000;">'No Work'</span>
            <span style="color: #0000FF;">ELSE</span> <span style="color: #FF0000;">'Work Day'</span>
           <span style="color: #0000FF;">END</span>
        <span style="color: #0000FF;">END</span>
      ,IsWorkDay <span style="color: #808080;">=</span>
        <span style="color: #0000FF;">CASE</span>
         <span style="color: #0000FF;">WHEN</span> WC.<span style="color: #202020;">fcShifts</span> <span style="color: #0000FF;">IS</span> <span style="color: #808080;">NULL</span> <span style="color: #0000FF;">THEN</span> 
           <span style="color: #0000FF;">CASE</span> <span style="color: #0000FF;">WHEN</span> TST.<span style="color: #202020;">CalendarDayOfWeek</span> <span style="color: #808080;">IN</span> <span style="color: #808080;">&#40;</span><span style="color: #000;">1</span>, <span style="color: #000;">7</span><span style="color: #808080;">&#41;</span> <span style="color: #0000FF;">THEN</span> <span style="color: #000;">0</span> <span style="color: #0000FF;">ELSE</span> <span style="color: #000;">1</span> <span style="color: #0000FF;">END</span>
         <span style="color: #0000FF;">ELSE</span> 
           <span style="color: #0000FF;">CASE</span> <span style="color: #0000FF;">WHEN</span> <span style="color: #FF00FF;">substring</span> <span style="color: #808080;">&#40;</span>WC.<span style="color: #202020;">fcShifts</span>, TST.<span style="color: #202020;">CalendarDayOfMonth</span>, <span style="color: #000;">1</span><span style="color: #808080;">&#41;</span> <span style="color: #808080;">=</span> <span style="color: #FF0000;">'0'</span> <span style="color: #0000FF;">THEN</span> <span style="color: #000;">0</span> <span style="color: #0000FF;">ELSE</span> <span style="color: #000;">1</span> 
           <span style="color: #0000FF;">END</span>
        <span style="color: #0000FF;">END</span>
  <span style="color: #0000FF;">FROM</span>  DateDatabase.<span style="color: #202020;">dbo</span>.<span style="color: #202020;">DimDate</span> TST
       <span style="color: #0000FF;">LEFT</span> <span style="color: #808080;">JOIN</span>
        dbo.<span style="color: #202020;">ScCaln</span> WC
       <span style="color: #0000FF;">ON</span> WC.<span style="color: #202020;">fcYrMon</span> <span style="color: #808080;">=</span> <span style="color: #0000FF;">cast</span> <span style="color: #808080;">&#40;</span>TST.<span style="color: #202020;">CalendarYear</span> <span style="color: #0000FF;">AS</span> <span style="color: #0000FF;">Varchar</span> <span style="color: #808080;">&#40;</span><span style="color: #000;">4</span><span style="color: #808080;">&#41;</span><span style="color: #808080;">&#41;</span>
           <span style="color: #808080;">+</span> <span style="color: #FF0000;">'/'</span>
           <span style="color: #808080;">+</span> <span style="color: #0000FF;">right</span> <span style="color: #808080;">&#40;</span><span style="color: #FF0000;">'0'</span> <span style="color: #808080;">+</span> <span style="color: #0000FF;">cast</span> <span style="color: #808080;">&#40;</span>TST.<span style="color: #202020;">CalendarMonth</span> <span style="color: #0000FF;">AS</span> <span style="color: #0000FF;">Varchar</span> <span style="color: #808080;">&#40;</span><span style="color: #000;">2</span><span style="color: #808080;">&#41;</span><span style="color: #808080;">&#41;</span>, <span style="color: #000;">2</span><span style="color: #808080;">&#41;</span></pre></div></div>

<p>The final bit of code updates the FiscalWeekName and FiscalYearWeekName. This code is <strong>tailored to my current employer, and I consider it optional</strong> because it may not pertain to you. The logic is as follows: </p>
<ol>
<li>The first fiscal week starts on the first day of the fiscal period.</li>
<li>Fiscal weeks end on Friday and begin on Saturday.</li>
<li>A &#8220;partial week&#8221; where the week starts on a day other than Saturday is added to the next full week. Partial weeks ending a period are considered their own week.</li>
<li>Week names follow the pattern of [FiscalPeriod].[WeekNumber] both of which are integers. For example, the second week of the fifth period would be designated as &#8220;5.2&#8243;. </li>
</ol>
<p>Again, this is a specific requirement and it may not apply to most companies.</p>

<div class="wp_syntax"><div class="code"><pre class="tsql" style="font-family:monospace;"><span style="color: #0000FF;">UPDATE</span> TST
   <span style="color: #0000FF;">SET</span> FiscalWeekName <span style="color: #808080;">=</span>
        TST.<span style="color: #202020;">FiscalPeriod</span>
        <span style="color: #808080;">+</span> <span style="color: #0000FF;">CASE</span> <span style="color: #808080;">&#40;</span> <span style="color: #808080;">&#40;</span><span style="color: #0000FF;">SELECT</span> <span style="color: #FF00FF;">count</span> <span style="color: #808080;">&#40;</span><span style="color: #808080;">*</span><span style="color: #808080;">&#41;</span>
                    <span style="color: #0000FF;">FROM</span> DateDatabase.<span style="color: #202020;">dbo</span>.<span style="color: #202020;">DimDate</span> TMP
                   <span style="color: #0000FF;">WHERE</span> TMP.<span style="color: #202020;">CalendarDayOfWeek</span> <span style="color: #808080;">=</span> <span style="color: #000;">7</span>
                         <span style="color: #808080;">AND</span> TMP.<span style="color: #0000FF;">Date</span> <span style="color: #808080;">BETWEEN</span> TST.<span style="color: #202020;">FiscalStartOfPeriodDate</span> <span style="color: #808080;">AND</span> TST.<span style="color: #0000FF;">Date</span><span style="color: #808080;">&#41;</span>
                <span style="color: #808080;">/</span> <span style="color: #000;">10.0</span><span style="color: #808080;">&#41;</span>
           <span style="color: #0000FF;">WHEN</span> <span style="color: #000;">0</span> <span style="color: #0000FF;">THEN</span>
            .1
           <span style="color: #0000FF;">ELSE</span>
            <span style="color: #808080;">&#40;</span> <span style="color: #808080;">&#40;</span><span style="color: #0000FF;">SELECT</span> <span style="color: #FF00FF;">count</span> <span style="color: #808080;">&#40;</span><span style="color: #808080;">*</span><span style="color: #808080;">&#41;</span>
                 <span style="color: #0000FF;">FROM</span> DateDatabase.<span style="color: #202020;">dbo</span>.<span style="color: #202020;">DimDate</span> TMP
                <span style="color: #0000FF;">WHERE</span> TMP.<span style="color: #202020;">CalendarDayOfWeek</span> <span style="color: #808080;">=</span> <span style="color: #000;">7</span>
                      <span style="color: #808080;">AND</span> TMP.<span style="color: #0000FF;">Date</span> <span style="color: #808080;">BETWEEN</span> TST.<span style="color: #202020;">FiscalStartOfPeriodDate</span> <span style="color: #808080;">AND</span> TST.<span style="color: #0000FF;">Date</span><span style="color: #808080;">&#41;</span>
             <span style="color: #808080;">/</span> <span style="color: #000;">10.0</span><span style="color: #808080;">&#41;</span>
          <span style="color: #0000FF;">END</span>
  <span style="color: #0000FF;">FROM</span> DateDatabase.<span style="color: #202020;">dbo</span>.<span style="color: #202020;">DimDate</span> TST
<span style="color: #008080;">-- Updates FiscalYearWeekName from FiscalWeekName</span>
<span style="color: #0000FF;">UPDATE</span> TST
   <span style="color: #0000FF;">SET</span> TST.<span style="color: #202020;">FiscalYearWeekName</span> <span style="color: #808080;">=</span>
          <span style="color: #0000FF;">cast</span> <span style="color: #808080;">&#40;</span>TST.<span style="color: #202020;">FiscalYearName</span> <span style="color: #0000FF;">AS</span> <span style="color: #0000FF;">CHAR</span> <span style="color: #808080;">&#40;</span><span style="color: #000;">4</span><span style="color: #808080;">&#41;</span><span style="color: #808080;">&#41;</span>
        <span style="color: #808080;">+</span> <span style="color: #FF0000;">'.'</span>
        <span style="color: #808080;">+</span> <span style="color: #808080;">&#40;</span><span style="color: #0000FF;">CASE</span> <span style="color: #FF00FF;">len</span> <span style="color: #808080;">&#40;</span>TST.<span style="color: #202020;">FiscalWeekName</span><span style="color: #808080;">&#41;</span> <span style="color: #0000FF;">WHEN</span> <span style="color: #000;">3</span> <span style="color: #0000FF;">THEN</span> <span style="color: #FF0000;">'0'</span> <span style="color: #0000FF;">ELSE</span> <span style="color: #FF0000;">''</span> <span style="color: #0000FF;">END</span><span style="color: #808080;">&#41;</span>
        <span style="color: #808080;">+</span> <span style="color: #0000FF;">cast</span> <span style="color: #808080;">&#40;</span>TST.<span style="color: #202020;">FiscalWeekName</span> <span style="color: #0000FF;">AS</span> <span style="color: #0000FF;">CHAR</span> <span style="color: #808080;">&#40;</span><span style="color: #000;">4</span><span style="color: #808080;">&#41;</span><span style="color: #808080;">&#41;</span>
  <span style="color: #0000FF;">FROM</span> DateDatabase.<span style="color: #202020;">dbo</span>.<span style="color: #202020;">DimDate</span> TST</pre></div></div>

<p>In most systems, new fiscal years and periods are added once a year. The update script will need to be run after that happens. With Made2Manage, and presumably other systems, triggers could be used to detect those changes and then run the update script. In my own situation, I&#8217;ve chosen to save this update script as a scheduled job which runs weekly. This may seem wasteful, but the update script completes very quickly. </p>
<p>Technically, I could have integrated this script with the <a href="http://www.made2mentor.com/2011/04/calendar-tables-why-you-need-one/">one I posted previously</a> which would have been faster and more efficient. However, I use two scripts for several reasons. First, this method is more flexible as I can create any Fiscal Update script I want without editing the main calendar script. Second, the Fiscal Update script will need to be run periodically to get updates and dropping/recreating the entire date table would be wasteful. Finally, most systems do not track Fiscal Years and Periods a decade or more into the future. Therefore, the first script is required to set default values for the Fiscal fields and only those that exist in the source system are updated. The user will not receive an error on a report because a future fiscal date value was not supplied.  </p>
<p>Well, there you have it. The last two articles have described how I create date tables and customize the Fiscal fields from a source system, in this case Made2Manage. </p>
<p>Any questions or suggestions to make the process better? </p>
]]></content:encoded>
			<wfw:commentRss>http://www.made2mentor.com/2011/04/using-a-date-table-to-track-custom-fiscal-yearsperiods/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Calendar Tables and Why You Need One.</title>
		<link>http://www.made2mentor.com/2011/04/calendar-tables-why-you-need-one/</link>
		<comments>http://www.made2mentor.com/2011/04/calendar-tables-why-you-need-one/#comments</comments>
		<pubDate>Thu, 21 Apr 2011 15:00:11 +0000</pubDate>
		<dc:creator>David</dc:creator>
				<category><![CDATA[Data Warehousing]]></category>
		<category><![CDATA[Made2Manage]]></category>
		<category><![CDATA[Report Customization]]></category>
		<category><![CDATA[SQL]]></category>
		<category><![CDATA[Data Warehouse]]></category>

		<guid isPermaLink="false">http://www.made2mentor.com/?p=5870</guid>
		<description><![CDATA[
			
				
			
		
What is a Date (Calendar) Table?
<p>For the purposes of this article a Date Table is a dedicated table containing a single record for each day in a defined range. They include fields with descriptive attributes for each day such as Year, Month, Week, and whether a particular day is a work day or not. Date [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: left; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.made2mentor.com%2F2011%2F04%2Fcalendar-tables-why-you-need-one%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.made2mentor.com%2F2011%2F04%2Fcalendar-tables-why-you-need-one%2F&amp;source=Made2Mentor&amp;style=normal&amp;b=2" height="61" width="50" /><br />
			</a>
		</div>
<h3>What is a Date (Calendar) Table?</h3>
<p>For the purposes of this article a Date Table is a dedicated table containing a single record for each day in a defined range. They include fields with descriptive attributes for each day such as Year, Month, Week, and whether a particular day is a work day or not. Date Tables (Dimensions) are an integral part of every Data Warehouse, but they can be used with a regular (OLTP) database as well. </p>
<h3>Why do I need a Date Table?</h3>
<p>There are several situations in which a date table is extremely helpful. Let&#8217;s consider just a few. Suppose you need to&#8230;. </p>
<ul>
<li>Generate a running sales total per day and include days in which you have no sales such as weekends. </li>
<li>Calculate the number of workdays between two dates. </li>
<li>Calculate projected ship dates for products based upon lead times. </li>
<li>Aggregate data by non-standard Fiscal Years or Periods. Perhaps your company uses the Fiscal Year of the US Government which runs from October 1st until September 30th. My current employer uses <a href="http://en.wikipedia.org/wiki/4-4-5_Calendar">the 4-4-5 Calendar</a> methodology, which is what originally led me to create this Date Table script. </li>
<li>Need to track data by seasons, whatever that means to your company. For example, if you manufactured bicycles you&#8217;d certainly want to compare sales figures in the spring versus fall.</li>
<li>Need to compare data using rolling months/periods. Suppose your company wants to know how March sales for this year compared to March for the past 5 years. Or you want to compare sales which occurred on Fridays to each other to look for trends. </li>
<li>Need to create <a href="http://en.wikipedia.org/wiki/Gantt_chart">Gantt Charts</a>.</li>
</ul>
<p>While many of these issues can be handled by writing T-SQL code, they&#8217;re much easier with a dedicated date table. Also, the Date Table can be customized to track anything about a particular day you want. </p>
<h3>What about Space Considerations?</h3>
<p>One concern that people have when creating a Date Table is the &#8220;wasted&#8221; space since each day is its own record. The space used is negligible, especially when compared to the benefits of having a dedicated date table. For example, when I execute my script for the years 2000 through 20035 the space used is less than 250MB. </p>
<h3>How do I create a Date Table?</h3>
<p><strong>Kimball Date Dimensions</strong><br />
In the <a href="http://www.amazon.com/gp/product/0470640383?ie=UTF8&#038;tag=made2-20&#038;linkCode=as2&#038;camp=1789&#038;creative=9325&#038;creativeASIN=0470640383">The Microsoft Data Warehouse Toolkit: With SQL Server 2008 R2</a><img src="http://www.assoc-amazon.com/e/ir?t=made2-20&#038;l=as2&#038;o=1&#038;a=0470640383" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />and the previous 2005 version, the Kimball Group recommends that you create a Date Dimension using Excel. In the latest book, they provide a Date Dimension Spreadsheet which is <a href="http://www.kimballgroup.com/html/booksMDWTtools.html">available for Download</a> and utilizes VBA to generate the table. They recommend you create a SSIS package to load that data into SQL Server. </p>
<p>While this will work, and some non-technical people might prefer this method, I prefer to use SQL Script, because I may not always have access to SSIS.</p>
<p><strong>Using a SQL Script</strong><br />
When I searched for a Date Table Script a few years ago, I couldn&#8217;t find something suitable for my needs. Most of them include only one set of fields (regular Calendar) and I to report via custom fiscal calendars. </p>
<p>I created this script from a function called <a href="http://www.sqlteam.com/forums/topic.asp?TOPIC_ID=61519">F_TABLE_DATE by Michael Valentine Jones</a> from <a href="http://www.sqlteam.com/">SQLTeam</a> and have since gotten his permission to distribute it. I&#8217;ve modified the script so that it generates a Kimball style date dimension and it&#8217;s very comprehensive, yet simple to use and customize. </p>
<ol>
<li>Create a database called DateDatabase or whatever you&#8217;d like to call it. We&#8217;ll install F_TABLE_DATE in it and presumably the Date Table as well. </li>
<li><a href='http://www.made2mentor.com/wp-content/uploads/2011/04/Master-Date-Dimension-Script-Base-Ver-5.1-.txt'>Open the following script</a> and replace &#8220;DateDatabase&#8221; (Find and Replace) with whatever database name you chose in step 1. </li>
<li>Run the Script to create the function. </li>
</ol>
<p>Your database should now contain the function used to create Date Tables. As a test, run the following script:</p>

<div class="wp_syntax"><div class="code"><pre class="tsql" style="font-family:monospace;"><span style="color: #0000FF;">SELECT</span> <span style="color: #808080;">*</span> <span style="color: #0000FF;">FROM</span> dbo.<span style="color: #202020;">F_TABLE_DATE</span> <span style="color: #808080;">&#40;</span><span style="color: #FF0000;">'20000101'</span>, <span style="color: #FF0000;">'20101231'</span><span style="color: #808080;">&#41;</span>
<span style="color: #0000FF;">ORDER</span> <span style="color: #0000FF;">BY</span> <span style="color: #000;">1</span></pre></div></div>

<p>You should receive 4019 Rows, 11 years worth of days plus a record for unknown dates. Notice the extensive list of fields built into the function. All of them are documented in the script. </p>
<p>Use a Select Into statement to create the Date Table like so. Replace dbo.DimDate with whatever you&#8217;d like to call your Date Table.</p>

<div class="wp_syntax"><div class="code"><pre class="tsql" style="font-family:monospace;"><span style="color: #0000FF;">IF</span> <span style="color: #808080;">EXISTS</span>
     <span style="color: #808080;">&#40;</span><span style="color: #0000FF;">SELECT</span> <span style="color: #000;">1</span>
        <span style="color: #0000FF;">FROM</span> <span style="color: #808080;">IN</span>F<span style="color: #808080;">OR</span>MATION_SCHEMA.<span style="color: #202020;">TABLES</span>
       <span style="color: #0000FF;">WHERE</span> TABLE_TYPE <span style="color: #808080;">=</span> <span style="color: #FF0000;">'BASE TABLE'</span> <span style="color: #808080;">AND</span> TABLE_NAME <span style="color: #808080;">=</span> <span style="color: #FF0000;">'DimDate'</span><span style="color: #808080;">&#41;</span>
  <span style="color: #0000FF;">BEGIN</span>
        <span style="color: #0000FF;">DROP</span> <span style="color: #0000FF;">TABLE</span> dbo.<span style="color: #202020;">DimDate</span>;
  <span style="color: #0000FF;">END</span>
&nbsp;
<span style="color: #0000FF;">Select</span>
  DateId
 ,<span style="color: #0000FF;">Date</span>
 ,NextDayDate
 ,CalendarYear
 ,CalendarYearQuarter
 ,CalendarYearMonth
 ,CalendarYearDayOfYear
 ,CalendarQuarter
 ,CalendarMonth
 ,CalendarDayOfYear
 ,CalendarDayOfMonth
 ,CalendarDayOfWeek
 ,CalendarYearName
 ,CalendarYearQuarterName
 ,CalendarYearMonthName
 ,CalendarYearMonthNameLong
 ,CalendarQuarterName
 ,CalendarMonthName
 ,CalendarMonthNameLong
 ,WeekdayName
 ,WeekdayNameLong
 ,CalendarStartOfYearDate
 ,CalendarEndOfYearDate
 ,CalendarStartOfQuarterDate
 ,CalendarEndOfQuarterDate
 ,CalendarStartOfMonthDate
 ,CalendarEndOfMonthDate
 ,QuarterSeqNo
 ,MonthSeqNo
 ,FiscalYearName
 ,FiscalYearPeriod
 ,FiscalYearDayOfYear
 ,FiscalYearWeekName
 ,FiscalSemester
 ,FiscalQuarter
 ,FiscalPeriod
 ,FiscalDayOfYear
 ,FiscalDayOfPeriod
 ,FiscalWeekName
 ,FiscalStartOfYearDate
 ,FiscalEndOfYearDate
 ,FiscalStartOfPeriodDate
 ,FiscalEndOfPeriodDate
 ,ISODate
 ,ISOYearWeekNo
 ,ISOWeekNo
 ,ISODayOfWeek
 ,ISOYearWeekName
 ,ISOYearWeekDayOfWeekName
 ,DateFormatYYYYMMDD
 ,DateFormatYYYYMD
 ,DateFormatMMDDYEAR
 ,DateFormatMDYEAR
 ,DateFormatMMMDYYYY
 ,DateFormatMMMMMMMMMDYYYY
 ,DateFormatMMDDYY
 ,DateFormatMDYY
 ,WorkDay
 ,IsWorkDay
<span style="color: #0000FF;">into</span>
  dbo.<span style="color: #202020;">DimDate</span> <span style="color: #008080;">-- Choose whatever name you like for your table.</span>
<span style="color: #0000FF;">From</span>
  dbo.<span style="color: #202020;">F_TABLE_DATE</span><span style="color: #808080;">&#40;</span><span style="color: #FF0000;">'20000101'</span>,<span style="color: #FF0000;">'20251231'</span><span style="color: #808080;">&#41;</span> <span style="color: #008080;">-- Edit the parameters for a custom date range.</span>
  <span style="color: #0000FF;">Order</span> <span style="color: #0000FF;">By</span> <span style="color: #000;">1</span></pre></div></div>

<p>Don&#8217;t panic, you don&#8217;t need to use all of the fields which is why this script is so highly customizable. Any fields you don&#8217;t want can be commented out before running the Select Into statement, which allows you to create your own custom Date Table. </p>
<p>The final step is to add a Primary Key to the DateID and an index for the Date and NextDayDate fields. As I can&#8217;t predict the usage patterns for your date table, you&#8217;ll have to implement further indexing if necessary.</p>

<div class="wp_syntax"><div class="code"><pre class="tsql" style="font-family:monospace;"><span style="color: #0000FF;">ALTER</span> <span style="color: #0000FF;">TABLE</span> <span style="color: #808080;">&#91;</span>dbo<span style="color: #808080;">&#93;</span>.<span style="color: #808080;">&#91;</span>DimDate<span style="color: #808080;">&#93;</span>
<span style="color: #0000FF;">ADD</span>  <span style="color: #0000FF;">PRIMARY</span> <span style="color: #0000FF;">KEY</span> <span style="color: #0000FF;">CLUSTERED</span> <span style="color: #808080;">&#40;</span><span style="color: #808080;">&#91;</span>DateId<span style="color: #808080;">&#93;</span><span style="color: #808080;">&#41;</span>
<span style="color: #0000FF;">WITH</span> <span style="color: #0000FF;">FILLFACTOR</span> <span style="color: #808080;">=</span> <span style="color: #000;">100</span>
 <span style="color: #0000FF;">ON</span> <span style="color: #808080;">&#91;</span><span style="color: #0000FF;">PRIMARY</span><span style="color: #808080;">&#93;</span>
GO
&nbsp;
<span style="color: #0000FF;">CREATE</span> <span style="color: #0000FF;">INDEX</span> id_Dates
<span style="color: #0000FF;">ON</span> DateDatabase.<span style="color: #202020;">dbo</span>.<span style="color: #202020;">DimDate</span> 
	<span style="color: #808080;">&#40;</span><span style="color: #0000FF;">Date</span>, 
	 NextDayDate<span style="color: #808080;">&#41;</span></pre></div></div>

<h3>How do I use the Date Table? </h3>
<p>Using the date table is simple, you simply link to it from the query from your source system. Use the following template.</p>

<div class="wp_syntax"><div class="code"><pre class="tsql" style="font-family:monospace;"><span style="color: #0000FF;">SELECT</span>
  MY.<span style="color: #0000FF;">date</span>
 ,DTE.<span style="color: #202020;">CalendarYear</span>
 ,DTE.<span style="color: #202020;">CalendarMonthName</span>
<span style="color: #0000FF;">FROM</span>
    MyTable MY
  <span style="color: #0000FF;">INNER</span> <span style="color: #808080;">JOIN</span>
    DateDatabase.<span style="color: #202020;">dbo</span>.<span style="color: #202020;">DimDate</span> DTE
  <span style="color: #0000FF;">ON</span> MY.<span style="color: #0000FF;">date</span> <span style="color: #808080;">&gt;=</span> DTE.<span style="color: #0000FF;">date</span> <span style="color: #808080;">AND</span>
     MY.<span style="color: #0000FF;">date</span> <span style="color: #808080;">&lt;</span> DTE.<span style="color: #202020;">NextDayDate</span></pre></div></div>

<p>Both DTE.Date and DTE.NextDayDate represent midnight of the two consecutive days. Therefore the time portion of a Datetime field can be ignored. </p>
<h3> What about the fiscal fields?</h3>
<p>After running these scripts, and examining the Date Table, you&#8217;ll notice that the fiscal fields mostly mirror the calendar fields. This is by design. <a href="http://www.made2mentor.com/2011/04/using-a-date-table-to-track-custom-fiscal-yearsperiods/">In the next article</a> I&#8217;ll explain how to customize the fiscal fields and a script to extract the fiscal information out of Made2Manage. Even if you don&#8217;t use M2M, you can still use the fiscal script as an example of how to do it. </p>
<p>Any questions? </p>
]]></content:encoded>
			<wfw:commentRss>http://www.made2mentor.com/2011/04/calendar-tables-why-you-need-one/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
		<item>
		<title>SQL Saturday Dallas Reflections</title>
		<link>http://www.made2mentor.com/2011/04/sql-saturday-dallas-reflections/</link>
		<comments>http://www.made2mentor.com/2011/04/sql-saturday-dallas-reflections/#comments</comments>
		<pubDate>Fri, 15 Apr 2011 13:38:19 +0000</pubDate>
		<dc:creator>David</dc:creator>
				<category><![CDATA[Made2Manage]]></category>
		<category><![CDATA[Personal]]></category>
		<category><![CDATA[SQL]]></category>
		<category><![CDATA[Community]]></category>
		<category><![CDATA[Networking]]></category>
		<category><![CDATA[SQL Saturday]]></category>

		<guid isPermaLink="false">http://www.made2mentor.com/?p=5775</guid>
		<description><![CDATA[
			
				
			
		
<p>SQL Saturday Dallas, which was our third, went off without a hitch. While there were a few items we&#8217;ve identified as needing work, overall the event was swimmingly successful. </p>
<p class="wp-caption-text">Kevin Kline - Troubleshooting and Performance Tuning Microsoft  SQLServer with Dynamic Management Views (DMVs)</p>
<p>The festivities started on Friday with our three Pre-Con events. Kevin [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: left; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.made2mentor.com%2F2011%2F04%2Fsql-saturday-dallas-reflections%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.made2mentor.com%2F2011%2F04%2Fsql-saturday-dallas-reflections%2F&amp;source=Made2Mentor&amp;style=normal&amp;b=2" height="61" width="50" /><br />
			</a>
		</div>
<p>SQL Saturday Dallas, which was our third, went off without a hitch. While there were a few items we&#8217;ve identified as needing work, overall the event was swimmingly successful. </p>
<div id="attachment_5808" class="wp-caption aligncenter" style="width: 650px"><a href="http://www.made2mentor.com/wp-content/uploads/2011/04/pre_con_kevin.jpg"><img src="http://www.made2mentor.com/wp-content/uploads/2011/04/pre_con_kevin.jpg" alt="" title="pre_con_kevin" width="640" height="480" class="size-full wp-image-5808" /></a><p class="wp-caption-text">Kevin Kline - Troubleshooting and Performance Tuning Microsoft  SQLServer with Dynamic Management Views (DMVs)</p></div>
<p>The festivities started on Friday with our three Pre-Con events. Kevin Kline (<a href="http://kevinekline.com/">Blog</a>/<a href="http://twitter.com/KEKLINE">Twitter</a>), Jessica Moss (<a href="http://jessicammoss.blogspot.com/">Blog</a>/<a href="http://twitter.com/jessicammoss">Twitter</a>), and Randy Dyess from <a href="http://blogs.solidq.com/Pages/Home.aspx">Solid Quality Mentors</a>.</p>
<p>I attended parts of each and impressed by all of them. For the price you couldn&#8217;t beat the educational value of the <a href="http://northtexas.sqlpass.org/">North Texas SQL Server User Group</a> Pre-Cons.</p>
<p>After the Pre-Cons the core volunteers went to the <a href="http://www.region10.org/">Region 10 Educational Center</a> (great facility by the way) to set up for the event.<br />
<div id="attachment_5791" class="wp-caption aligncenter" style="width: 658px"><a href="http://www.made2mentor.com/wp-content/uploads/2011/04/sql_sat_63_blind_leading.jpg"><img src="http://www.made2mentor.com/wp-content/uploads/2011/04/sql_sat_63_blind_leading.jpg" alt="" title="sql_sat_63_blind_leading" width="648" height="432" class="size-full wp-image-5791" /></a><p class="wp-caption-text">The blind leading the blind.</p></div></p>
<p>A special thanks to Heather Sullivan (<a href="http://twitter.com/h_sullivan">Twitter</a>), Head of SQL Server Tools for <a href="http://www.idera.com/Content/Home.aspx">Idera Software</a>, for bringing so many people to volunteer. I think the total number was 8 and those folks worked their butts off.<br />
<div id="attachment_5794" class="wp-caption aligncenter" style="width: 658px"><a href="http://www.made2mentor.com/wp-content/uploads/2011/04/sql_sat_63_set_up.jpg"><img src="http://www.made2mentor.com/wp-content/uploads/2011/04/sql_sat_63_set_up.jpg" alt="" title="sql_sat_63_set_up" width="648" height="432" class="size-full wp-image-5794" /></a><p class="wp-caption-text">Natural Born Leader</p></div></p>
<p>Have I mentioned lately how much I love SQL Saturday Events? I&#8217;d love to be able to present more often. Attention SQL Vendors and Sponsors, that was a hint. <img src='http://www.made2mentor.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  </p>
<p>After that we went to the speaker&#8217;s dinner, which was held at Dave and Buster&#8217;s and a great time was had by all. Where else can you spend hours talking to Steve Jones  (<a href="http://www.sqlservercentral.com/blogs/steve_jones/default.aspx">Blog/<a href="http://twitter.com/way0utwest">Twitter</a>), Jessica Moss (<a href="http://jessicammoss.blogspot.com/">Blog</a>/<a href="http://twitter.com/jessicammoss">Twitter</a>), Andy Warren (</a><a href="http://www.sqlandy.com/">Blog</a>/<a href="http://twitter.com/sqlandy">Twitter</a>), Wes Brown (<a href="http://sqlserverio.com/">Blog</a>/<a href="http://twitter.com/WesBrownSQL">Twitter</a>), etc.<br />
<div id="attachment_5801" class="wp-caption aligncenter" style="width: 658px"><a href="http://www.made2mentor.com/wp-content/uploads/2011/04/sql_sat_63_pool.jpg"><img src="http://www.made2mentor.com/wp-content/uploads/2011/04/sql_sat_63_pool.jpg" alt="" title="sql_sat_63_pool" width="648" height="432" class="size-full wp-image-5801" /></a><p class="wp-caption-text">Scott Whigham and I playing pool. If you squint hard, I almost look like Tom Cruise in The Color of Money. </p></div></p>
<p>SQL Saturday always starts early when you are a volunteer. One of my responsibilities was registration, and everything went well. The success is mostly due to having so many committed volunteers, and they made me look good once again.<br />
<a href="http://www.made2mentor.com/wp-content/uploads/2011/04/sql_sat_63_registration.jpg"><img src="http://www.made2mentor.com/wp-content/uploads/2011/04/sql_sat_63_registration.jpg" alt="" title="sql_sat_63_registration" width="648" height="432" class="aligncenter size-full wp-image-5805" /></a></p>
<p>Throughout the day, things continued to go well. Speaker shirts were well received, the food and the Paciugo Gelato (fancy ice cream) were a big hit. </p>
<p>I want to give special thanks to a few people and groups. I apologize for leaving anyone out. </p>
<ul>
<li>I really appreciate <a href="http://www.sqlsaturday.com/63/sponsors.aspx">the sponsors</a> who make these events possible. </li>
<li>Tim Mitchell (<a href="http://www.timmitchell.net/">Blog</a>/<a href="http://twitter.com/tim_mitchell">Twitter</a>) who was not only a core volunteer and a presenter, but took the pictures as well.</li>
<li>All of the volunteers, especially our core team.</li>
<li>All of the presenters, many of whom traveled to speak at the event at their own cost. </li>
</ul>
<p>Because I was so busy, I only attended a couple of presentations. Sean McCown (<a href="http://www.midnightdba.com/DBARant/">Blog</a>) presented &#8220;How to Curse in an Interview&#8221; and it was one of the most intense talks I&#8217;ve ever seen in a technical setting. I also watched Sri Sridhara (<a href="http://sqlrocks.com/">Blog</a>/<a href="http://twitter.com/sqlrocks">Twitter</a>), NTSSUG President, present &#8220;Turbo charge your DBA career&#8221; and he had the crowd mesmerized. </p>
<p>I presented <strong>&#8220;T-SQL Programming to Survive a Zombie Database&#8221;</strong> and it went very well. I love teaching, and I think it shows. In fact, Jen McCown (<a href="http://www.midnightdba.com/Jen/">Blog</a>/<a href="http://twitter.com/midnightdba">Twitter</a>), who&#8217;s opinion I greatly respect, attended and tweeted the following:<br />
<div id="attachment_5813" class="wp-caption aligncenter" style="width: 501px"><a href="http://www.made2mentor.com/wp-content/uploads/2011/04/jen_tweet.png"><img src="http://www.made2mentor.com/wp-content/uploads/2011/04/jen_tweet.png" alt="" title="jen_tweet" width="491" height="145" class="size-full wp-image-5813" /></a><p class="wp-caption-text">Awesomesauce!</p></div><br />
If you missed the session, I will be presenting an extended version of it at the <a href="http://northtexas.sqlpass.org/">NTSSUG Meeting</a> next Thursday 10/21 and the downloads for the session have been <a href="http://www.made2mentor.com/zombie/">posted here</a>.</p>
<p>Of course I went to the party after the event and spent quality time with community members. Everyone should attend the after parties. There&#8217;s a wealth of help available there for free, not to mention those folks are fun to hang out with as well. Where else can you ask for free help like this?</p>
<ul>
<li>Adam Saxton (<a href="http://social.msdn.microsoft.com/profile/adam%20w.%20saxton/">Blog</a>/<a href="http://twitter.com/awsaxton">Twitter</a>), Senior Escalation Engineer for SQL Server Support, about SSRS problems.</li>
<li>Steve Jones or Andy Warren about branding.</li>
<li>Tim Mitchell or Sean McCown about SSIS.</li>
<li>Wes Brown about SQL Server storage.</li>
<li>Jessica Moss about Microsoft BI. </li>
<li>Tim Costello (<a href="http://www.timcost.com/">Blog</a>/<a href="http://twitter.com/TimCost">Twitter</a>) about data visualization and Tableau.</li>
<li>Trevor Barkhouse (<a href="http://sqlserversleuth.com/">Blog</a>) about performance tuning.</li>
<li>Ryan Adams (<a href="http://www.ryanjadams.com/">Blog</a>/<a href="http://twitter.com/ryanjadams">Twitter</a>) about mirroring.</li>
<li>Kevin Kline about&#8230; well everything.</li>
</ul>
<p>These events are free sources of SQL education, but that&#8217;s not the most important aspect. They&#8217;re about people, great people who share your profession and interests. How did I meet all of these great people? I joined PASS, participated in my local SQL server user group, and went the extra mile to be social. </p>
<p>You can do it too. Throw caution to the wind and talk to people, we don&#8217;t bite. Well, I&#8217;m not so sure about Sean. </p>
]]></content:encoded>
			<wfw:commentRss>http://www.made2mentor.com/2011/04/sql-saturday-dallas-reflections/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>SQL Saturday Chicago Highlights</title>
		<link>http://www.made2mentor.com/2011/04/sql-saturday-chicago-highlights/</link>
		<comments>http://www.made2mentor.com/2011/04/sql-saturday-chicago-highlights/#comments</comments>
		<pubDate>Tue, 12 Apr 2011 18:30:59 +0000</pubDate>
		<dc:creator>David</dc:creator>
				<category><![CDATA[Data Warehousing]]></category>
		<category><![CDATA[Made2Manage]]></category>
		<category><![CDATA[Personal]]></category>
		<category><![CDATA[SQL]]></category>

		<guid isPermaLink="false">http://www.made2mentor.com/?p=5709</guid>
		<description><![CDATA[
			
				
			
		
<p>It&#8217;s been a crazy few weeks. As I mentioned previously, I presented at two SQL Saturday Events in back to back weeks. I&#8217;m on the core committee for the North Texas SQL Server User Group SQL Saturday, so I was overwhelmed with things to do and couldn&#8217;t stop to blog. </p>
<p>So, now that I&#8217;ve taken [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: left; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.made2mentor.com%2F2011%2F04%2Fsql-saturday-chicago-highlights%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.made2mentor.com%2F2011%2F04%2Fsql-saturday-chicago-highlights%2F&amp;source=Made2Mentor&amp;style=normal&amp;b=2" height="61" width="50" /><br />
			</a>
		</div>
<p>It&#8217;s been a crazy few weeks. As I <a href="http://www.made2mentor.com/2011/03/come-see-me-present-at-sql-saturday-chicago-and-dallas/">mentioned previously</a>, I presented at two SQL Saturday Events in back to back weeks. I&#8217;m on the core committee for the <a href="http://northtexas.sqlpass.org/">North Texas SQL Server User Group</a> SQL Saturday, so I was overwhelmed with things to do and couldn&#8217;t stop to blog. </p>
<p>So, now that I&#8217;ve taken a few days to catch up and relax I&#8217;ll share some of the highlights of both experiences. </p>
<h3>SQL Saturday Chicago</h3>
<p>I had a great time at this event put on by both the <a href="http://chicago.sqlpass.org/">Chicago SQL Server User Group</a> and the <a href="http://www.chicagosuburban.sqlpass.org/">Chicago Suburban SQL Server User Group</a>. I flew in early Friday to attend my second Freecon event. <a href="http://www.brentozar.com/archive/2010/11/my-latest-experiment-sqlpass-freecon/">Freecon</a> is a free event put on by Brent Ozar (<a href="http://www.brentozar.com/">Blog</a>/<a href="http://twitter.com/#!/brento">Twitter</a>) in which he invites a small group of bloggers/presenters from the SQL Community to discuss issues important to us and the community. My Freecon experiences have been excellent, and I&#8217;ll go into those in more depth in a future post. I simply can&#8217;t thank Master O enough for including me. Oh, and the atmosphere at the <a href="http://www.catalystranch.com/">The Catalyst Ranch</a> was amazing too. </p>
<p>So, why mention it? Well, I learned an important lesson. I am never, ever flying out at 5:30am again. I was so exhausted after getting up at 3am that I never caught up. SQL Saturday events are packed with activity, especially if you&#8217;re volunteering or speaking. After the Freecon, Erin Stellato (<a href="http://erinstellato.com/">Blog</a>/<a href="https://twitter.com/erinstellato">Twitter</a>) was kind enough to cart Karen Lopez aka DataChick (<a href="http://www.infoadvisors.com/">Site</a>/<a href="http://blog.infoadvisors.com/index.php/tag/datachick/">Blog</a>/<a href="http://twitter.com/datachick">Twitter</a>), her hubby <a href="https://twitter.com/projmgr">Rob Drysdale</a>, and I to and from our hotel which was a bit of a distance from SQL Saturday. </p>
<p><a href="http://www.sqlsentry.com/">SQL Sentry</a> hosted the speaker&#8217;s dinner. The food was excellent and there were so many amazing database people to meet including  Aaron Bertrand (<a href="http://twitter.com/aaronbertrand">Twitter</a>) who works for SQL Sentry. SQL Saturday Chicago provided personalized shirts for the speakers with our names on the front. It was a classy touch which I intend to suggest to my local group. The problem with personalized shirts is the risk of typos. </p>
<p>Thomas LaRock (<a href="http://thomaslarock.com/">Blog</a>/<a href="http://twitter.com/SQLRockstar">Twitter</a>) was a good sport about being called RockSar all weekend.<br />
<a href="http://www.made2mentor.com/wp-content/uploads/2011/04/Rockstar.jpg"><img src="http://www.made2mentor.com/wp-content/uploads/2011/04/Rockstar.jpg" alt="" title="SQL Rocksar" width="640" height="424" class="aligncenter size-full wp-image-5734" /></a></p>
<p>I got up <del datetime="2011-04-10T19:48:40+00:00">bright</del> blurry eyed Saturday morning, scarfed some breakfast, and headed to the event. It was obvious that this was not the Chicago groups&#8217; first rodeo as they knew what they were doing. Wendy Pastrick (<a href="http://wendyverse.blogspot.com/">Blog</a>/<a href="http://twitter.com/wendy_dance">Twitter</a>) and her group had everything running smoothly. Noel McKinney (<a href="http://noelmckinney.com/">Blog</a>/<a href="http://twitter.com/NoelMcKinney">Twitter</a>), whom I had met on Friday, had me through the check in process and I never saw a line up. </p>
<p>Unfortunately I didn&#8217;t attend many presentations because I was having laptop problems and had to re-build part of my demo. This was my second important lesson of the trip. I need better contingency plans so I&#8217;ve purchased VMWare Workstation and every one of my demos will be done that way. I&#8217;ll keep a backup copy of the VM on a USB hard drive so I can use another laptop at a moment&#8217;s notice. </p>
<p>I did see Grant Fritchey (<a href="http://www.scarydba.com/">Blog</a>/<a href="https://twitter.com/gfritchey">Twitter</a>) present &#8220;The Optimizer, Statistics, and Indexes.&#8221; Honestly, I think everyone saw him. The room was packed so full that people were standing along the walls and SQL Rockstar sat right next to him. Grant is amazing, if you ever get the chance to see him present, do not pass it up. In the speaker&#8217;s room after the presentation, we were laughing because one of the attendees commented that the &#8220;Sidekick in the corner was distracting&#8221; because Tom and Grant bantered back and forth a bit during his presentation. Hilarious. </p>
<p>Grant took this <a href='http://buto.tv/M3SYJ' >short video of me</a> in the speaker&#8217;s room. It should be worth a laugh. </p>
<p>An old friend came to see me at the event. She used to work for Made2Manage support and she&#8217;s one of the many people I&#8217;ve encouraged to get out into the much larger world of SQL Server. Anyway as she and I were talking in the hallway, Grant Fritchey walked by and I introduced him as &#8220;The Scary DBA.&#8221; My friend scoffed and said that when she worked in support my phone calls would sometimes bring her to tears. Grant thought it was hilarious, but I was a wee bit embarrassed.<br />
<a href="http://www.made2mentor.com/wp-content/uploads/2011/04/dave_medium.jpg"><img src="http://www.made2mentor.com/wp-content/uploads/2011/04/dave_medium.jpg" alt="http://www.flickr.com/photos/m-i-k-e/5563407238/in/set-72157626362555312/" title="dave_medium" width="640" height="424" class="size-full wp-image-5755" /></a><br />
My presentation went well, and I had more than 40 attendees. Not bad considering I was scheduled at the same time as Brent Ozar, Datachick, Jes Borland, and others. </p>
<p>As promised the downloadable scripts and presentation can be <a href="http://www.made2mentor.com/thebobs/">downloaded here</a>. </p>
<p>I learned something else from this trip. I normally take a lot of time creating geeky/funny Abstracts and Titles like &#8220;Data Warehousing &#8211; How to convince &#8216;The Bobs&#8217;.&#8221; However, when I asked how many people had seen &#8220;Office Space,&#8221; which is the underlying theme of the presentation, less than 10% had seen it. Ugh. I&#8217;m going to have to re-think my Title and Abstract Strategy and go with something closer to &#8220;Creating a Data Warehouse Proof of Concept&#8221; which has more widespread appeal.  </p>
<p>I went to the after party and had a great time talking with Jose Chinchilla (<a href="http://sqljoe.wordpress.com/">Blog</a>/<a href="http://twitter.com/sqljoe">Twitter</a>) as the dude is hilarious. I hope to get him back down to Dallas to present again soon. I also succumbed to peer pressure and had a drink with Jose, Datachick + 1, and Noel McKinney and his wife. Apparently I get really funny even after having one drink. Anyway, I ended up at SQL Karoake, but wasn&#8217;t up to embarassing myself like I did at <a href="http://www.made2mentor.com/2010/11/pass-vacation/">PASS last year</a>, so I just watched with Datachick + 1.</p>
<p>I will tell you that SQL People let their hair down like no other at SQL Karoake. Jes Borland (<a href="http://blogs.lessthandot.com/index.php/All/?author=420">Blog</a>/<a href="http://twitter.com/grrl_geek">Twitter</a>), who has more energy than any three people I know, and Jason Strate (<a href="http://www.jasonstrate.com/">Blog</a>/<a href="http://twitter.com/stratesql">Twitter</a>) belted out a duet and everyone had a good time. </p>
<p>I have no idea why more people don&#8217;t attend the after parties. It&#8217;s fun, and a great way to network with some of the best in the SQL profession. </p>
<p>What I want you to take from this is simple. Attending SQL Saturday Events is a lot of fun and great for your career. Take full advantage of them, including the after party. </p>
<p>Come Join Us. </p>
]]></content:encoded>
			<wfw:commentRss>http://www.made2mentor.com/2011/04/sql-saturday-chicago-highlights/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>

