<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-8585649008635531444</id><updated>2012-02-01T21:40:44.093+05:30</updated><category term='Denali'/><category term='Admin'/><category term='Linked Server'/><category term='Downloads'/><category term='FAQ'/><category term='T-SQL'/><category term='Reporting Services'/><title type='text'>SQL With Mangal</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://mangalpardeshi.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8585649008635531444/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://mangalpardeshi.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Mangal Pardeshi</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_weIRgO4yuTo/SzSmWMjAwJI/AAAAAAAAAKs/DgpUWlN5KZY/S220/y1m_Ev9g6OBzqJR8Z6lhdhzgWZ-bl8WwBuhHkrErOHngc14s42YU23gTajpglsbRjABGlnSHh-wUfbGievoo7soxuBY9uSp1K1I.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>45</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-8585649008635531444.post-2594927349441742105</id><published>2010-11-14T00:14:00.001+05:30</published><updated>2010-11-14T00:21:29.182+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Denali'/><category scheme='http://www.blogger.com/atom/ns#' term='T-SQL'/><title type='text'>ORDER BY Enhancements in SQL Server Denali</title><content type='html'>&lt;p&gt;Today I am going to talk about one new feature that is been introduced in the SQL Server Denali.&amp;#160;&amp;#160; And that is:&amp;#160; one interesting enhancement in ORDER BY clause.&amp;#160; Now with ORDER BY clause you can also specify the OFFSET and FETCH options.&amp;#160; &lt;/p&gt;  &lt;p&gt;From &lt;a href="http://msdn.microsoft.com/en-us/library/bb418432(v=SQL.10).aspx" target="_blank"&gt;Books Online of Denali&lt;/a&gt;:     &lt;br /&gt;OFFSET: Specifies the number of rows to skip before it starts to return rows from the query expression. The value can be an integer constant or expression that is greater than or equal to zero.&lt;/p&gt;  &lt;p&gt;FETCH: Specifies the number of rows to return after the OFFSET clause has been processed. The value can be an integer constant or expression that is greater than or equal to one. &lt;/p&gt;  &lt;p&gt;This is how the new syntax of ORDER BY clause looks like in SQL Server Denali:    &lt;br /&gt;------------------------------------------------------------------------------------------------------     &lt;br /&gt;&lt;font face="Verdana"&gt;ORDER BY order_by_expression      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; [ COLLATE collation_name ]       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; [ ASC | DESC ]       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; [ ,...n ]       &lt;br /&gt;[ &amp;lt;offset_fetch&amp;gt; ]       &lt;br /&gt;&amp;lt;offset_fetch&amp;gt; ::=       &lt;br /&gt;{       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; OFFSET { integer_constant | offset_row_count_expression } { ROW | ROWS }       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; [       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; FETCH { FIRST | NEXT } {integer_constant | fetch_row_count_expression } { ROW | ROWS } ONLY       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; ]       &lt;br /&gt;}&lt;/font&gt;     &lt;br /&gt;------------------------------------------------------------------------------------------------------&lt;/p&gt;  &lt;p&gt;Take a look at following example: &lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;------------------------------------------------------------------------------------------------------      &lt;br /&gt;&lt;font size="1" face="Verdana"&gt;&lt;font color="#0000ff"&gt;USE&lt;/font&gt; AdventureWorks         &lt;br /&gt;&lt;font color="#0000ff"&gt;GO          &lt;br /&gt;SELECT&lt;/font&gt; VendorID         &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; ,Name         &lt;br /&gt;&lt;font color="#0000ff"&gt;FROM&lt;/font&gt; Purchasing.Vendor         &lt;br /&gt;&lt;font color="#0000ff"&gt;ORDER BY&lt;/font&gt; VendorID &lt;font color="#008040"&gt;OFFSET&lt;/font&gt; 5 &lt;font color="#0000ff"&gt;ROWS&lt;/font&gt;         &lt;br /&gt;&lt;font color="#0000ff"&gt;GO&lt;/font&gt;&lt;/font&gt;       &lt;br /&gt;------------------------------------------------------------------------------------------------------ &lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Output: &lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/_weIRgO4yuTo/TN7chBtIg1I/AAAAAAAAAN0/9AkktF2ERYA/s1600-h/Offset%5B8%5D.jpg"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="Offset" border="0" alt="Offset" src="http://lh5.ggpht.com/_weIRgO4yuTo/TN7ch4iv7QI/AAAAAAAAAN4/iiNa9iD1Yek/Offset_thumb%5B6%5D.jpg?imgmax=800" width="572" height="241" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;In the example I wrote &lt;font face="Verdana"&gt;5&lt;/font&gt; as OFFSET.&amp;#160; You can see in the output 1st five rows are skipped and we got VendorIds starting from &lt;font face="Verdana"&gt;6.&lt;/font&gt;&amp;#160; Here SQL Server &lt;font face="Verdana"&gt;1&lt;/font&gt;st orders the data on the Column specified in ORDER BY clause(i.e. VendorID).&amp;#160; The next query uses the clause OFFSET &lt;font face="Vani"&gt;5&lt;/font&gt; ROWS to skip the first &lt;font face="Verdana"&gt;5&lt;/font&gt; rows and return all remaining rows.&lt;/p&gt;  &lt;p&gt;Now lets see the example of FETCH:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;------------------------------------------------------------------------------------------------------      &lt;br /&gt;&lt;font size="1" face="Verdana"&gt;&lt;font color="#0000ff"&gt;USE&lt;/font&gt; AdventureWorks         &lt;br /&gt;&lt;font color="#0000ff"&gt;GO          &lt;br /&gt;SELECT&lt;/font&gt; VendorID         &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; ,Name         &lt;br /&gt;&lt;font color="#0000ff"&gt;FROM&lt;/font&gt; Purchasing.Vendor         &lt;br /&gt;&lt;font color="#0000ff"&gt;ORDER BY&lt;/font&gt; VendorID &lt;font color="#008040"&gt;OFFSET&lt;/font&gt; 5 &lt;font color="#0000ff"&gt;ROWS          &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; FETCH NEXT &lt;/font&gt;3&lt;font color="#0000ff"&gt; ROWS ONLY          &lt;br /&gt;GO&lt;/font&gt;&lt;/font&gt;&lt;font color="#0000ff"&gt;        &lt;br /&gt;&lt;/font&gt;------------------------------------------------------------------------------------------------------ &lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Output: &lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/_weIRgO4yuTo/TN7cihv1DCI/AAAAAAAAAN8/I3eDYwxSOd0/s1600-h/FETCH%5B3%5D.jpg"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="FETCH" border="0" alt="FETCH" src="http://lh6.ggpht.com/_weIRgO4yuTo/TN7cjSSO0QI/AAAAAAAAAOA/_GwcHZ8eKGA/FETCH_thumb%5B1%5D.jpg?imgmax=800" width="579" height="241" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;As you can SQL Server has fetched only&lt;font face="Verdana"&gt; 3&lt;/font&gt; rows and that also after skipping&lt;font face="Verdana"&gt; 1&lt;/font&gt;st five rows.&amp;#160; That is because I specified &lt;font face="Verdana"&gt;5&lt;/font&gt; as OFFSET and&lt;font face="Verdana"&gt; 3&lt;/font&gt; as FETCH NEXT.&amp;#160; Here FETCH NEXT &lt;font face="Verdana"&gt;3&lt;/font&gt; ROWS ONLY to limit the rows returned to &lt;font face="Verdana"&gt;3&lt;/font&gt; rows from the sorted result set.&lt;/p&gt;  &lt;p&gt;Also:    &lt;br /&gt;&lt;font face="Verdana"&gt;1.&lt;/font&gt; offset_row_count_expression can be a variable, parameter, or constant scalar subquery. When a subquery is used, it cannot reference any columns defined in the outer query scope. That is, it cannot be correlated with the outer query.&lt;/p&gt;  &lt;p&gt;&lt;font face="Verdana"&gt;2.&lt;/font&gt; ROW and ROWS are synonyms and are provided for ANSI compatibility.&lt;/p&gt;  &lt;p&gt;&lt;font face="Verdana"&gt;3.&lt;/font&gt; In query execution plans, the offset row count value is displayed in the &lt;strong&gt;Offset&lt;/strong&gt; attribute of the TOP query operator.&lt;/p&gt;  &lt;p&gt;You can find all this information and more on: &lt;a href="http://msdn.microsoft.com/en-us/library/ms188385(v=SQL.110).aspx" target="_blank"&gt;ORDER BY Clause (Transact-SQL)&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Thanks    &lt;br /&gt;Mangal&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8585649008635531444-2594927349441742105?l=mangalpardeshi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mangalpardeshi.blogspot.com/feeds/2594927349441742105/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://mangalpardeshi.blogspot.com/2010/11/order-by-enhancements-in-sql-server.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8585649008635531444/posts/default/2594927349441742105'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8585649008635531444/posts/default/2594927349441742105'/><link rel='alternate' type='text/html' href='http://mangalpardeshi.blogspot.com/2010/11/order-by-enhancements-in-sql-server.html' title='ORDER BY Enhancements in SQL Server Denali'/><author><name>Mangal Pardeshi</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_weIRgO4yuTo/SzSmWMjAwJI/AAAAAAAAAKs/DgpUWlN5KZY/S220/y1m_Ev9g6OBzqJR8Z6lhdhzgWZ-bl8WwBuhHkrErOHngc14s42YU23gTajpglsbRjABGlnSHh-wUfbGievoo7soxuBY9uSp1K1I.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh5.ggpht.com/_weIRgO4yuTo/TN7ch4iv7QI/AAAAAAAAAN4/iiNa9iD1Yek/s72-c/Offset_thumb%5B6%5D.jpg?imgmax=800' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8585649008635531444.post-3949073742161481378</id><published>2010-09-01T09:17:00.001+05:30</published><updated>2010-09-01T09:17:50.421+05:30</updated><title type='text'>Some Things About VIEWS</title><content type='html'>&lt;p&gt;Everybody has different views about VIEWS, that’s what make them interesting topic to discuss.&amp;#160; Other thing is if you make some assumptions about VIEWS, they can lead you to problems.&amp;#160; As my target audience is SQL beginners, today I’ll talk about few things about VIEWS so some of the obvious mistakes can be avoided.&amp;#160;&amp;#160; Actually there are so many things we can talk about VIEWS, but I leave them for future posts.&lt;/p&gt;  &lt;p&gt;Today I’ll show what happens when you create a view using “SELECT * FROM TableName” and then ALTER the underlying table used in the VIEW.&amp;#160;&amp;#160; The normal assumption most of the SQL beginners make is:&amp;#160; If you create a VIEW using “SELECT * FROM TableName”, all the changes made in the underlying table will automatically reflect in the VIEW as well. &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Case &lt;font face="Verdana"&gt;1&lt;/font&gt;: You add a column to the table.&amp;#160; &lt;br /&gt;&lt;/strong&gt;Now here is a question for you:&amp;#160; If you have a table named Employees and a VIEW created&amp;#160; top of it with simple query “SELECT * FROM Employees”.&amp;#160; Now if I add one column to Employees table, will that column appear in result if I execute query “SELECT * FROM View”?&lt;/p&gt;  &lt;p&gt;I had ask this question many times in interviews; &lt;font face="Verdana"&gt;80%&lt;/font&gt; of time I heard a thumping “Yes”.&amp;#160; And most of the candidate were having experience of well over&lt;font face="Verdana"&gt; 3&lt;/font&gt; years.&amp;#160; Answer to above question is BIG NO.&amp;#160; Let me explain this with actual example, &lt;font face="Verdana"&gt;1&lt;/font&gt;st lets create some sample data.&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;------------------------------------------------------------------------------------------------------ &lt;/p&gt;    &lt;p&gt;&lt;font size="1" face="Verdana"&gt;&lt;font color="#0000ff"&gt;&lt;font color="#008000"&gt;-- Create the table with 4 columns&lt;/font&gt;           &lt;br /&gt;CREATE TABLE&lt;/font&gt; Employees         &lt;br /&gt;(         &lt;br /&gt;EmpID &lt;font color="#0000ff"&gt;INT&lt;/font&gt;,         &lt;br /&gt;FirstName &lt;font color="#0000ff"&gt;VARCHAR&lt;/font&gt;(6),         &lt;br /&gt;LastName &lt;font color="#0000ff"&gt;VARCHAR&lt;/font&gt;(20),         &lt;br /&gt;ManagerID &lt;font color="#0000ff"&gt;INT&lt;/font&gt; &lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font size="1" face="Verdana"&gt;)        &lt;br /&gt;&lt;font color="#0000ff"&gt;GO&lt;/font&gt; &lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font size="1" face="Verdana"&gt;&lt;font color="#008000"&gt;-- Populate the table with sample data&lt;/font&gt;         &lt;br /&gt;&lt;font color="#0000ff"&gt;INSERT INTO&lt;/font&gt; Employees &lt;font color="#0000ff"&gt;SELECT&lt;/font&gt;         &lt;br /&gt;1, &lt;font color="#ff0000"&gt;'Mangal'&lt;/font&gt;,&lt;font color="#ff0000"&gt; 'Pardeshi'&lt;/font&gt;, 0 &lt;font color="#0000ff"&gt;UNION&lt;/font&gt; ALL &lt;font color="#0000ff"&gt;SELECT&lt;/font&gt;         &lt;br /&gt;2, &lt;font color="#ff0000"&gt;'Rahul'&lt;/font&gt;, &lt;font color="#ff0000"&gt;'Sharma'&lt;/font&gt;, 1 &lt;font color="#0000ff"&gt;UNION&lt;/font&gt; ALL &lt;font color="#0000ff"&gt;SELECT&lt;/font&gt;         &lt;br /&gt;3, &lt;font color="#ff0000"&gt;'Ajay'&lt;/font&gt;, &lt;font color="#ff0000"&gt;'Varma'&lt;/font&gt;,2         &lt;br /&gt;GO &lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font size="1" face="Verdana"&gt;&lt;font color="#008000"&gt;-- Create a View with wild card *          &lt;br /&gt;&lt;/font&gt;&lt;font color="#0000ff"&gt;CREATE VIEW&lt;/font&gt; Emp &lt;font color="#0000ff"&gt;AS&lt;/font&gt;         &lt;br /&gt;&lt;font color="#0000ff"&gt;SELECT&lt;/font&gt; *         &lt;br /&gt;&lt;font color="#0000ff"&gt;FROM&lt;/font&gt; Employees         &lt;br /&gt;&lt;font color="#0000ff"&gt;GO&lt;/font&gt; &lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font size="1" face="Verdana"&gt;&lt;font color="#0000ff"&gt;&lt;font color="#008000"&gt;-- Verify the data in the table and view&lt;/font&gt;           &lt;br /&gt;SELECT&lt;/font&gt; *         &lt;br /&gt;&lt;font color="#0000ff"&gt;FROM&lt;/font&gt; Employees         &lt;br /&gt;&lt;font color="#0000ff"&gt;GO&lt;/font&gt;         &lt;br /&gt;&lt;font color="#0000ff"&gt;SELECT&lt;/font&gt; *         &lt;br /&gt;&lt;font color="#0000ff"&gt;FROM&lt;/font&gt; Emp         &lt;br /&gt;&lt;font color="#0000ff"&gt;GO&lt;/font&gt;&lt;/font&gt;       &lt;br /&gt;------------------------------------------------------------------------------------------------------&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Data in the table and view:    &lt;br /&gt;&lt;a href="http://lh6.ggpht.com/_weIRgO4yuTo/TH3MrwuNZ5I/AAAAAAAAANM/EK9PBthui1Q/s1600-h/testdata3.jpg"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="test data" border="0" alt="test data" src="http://lh3.ggpht.com/_weIRgO4yuTo/TH3MtdZcdNI/AAAAAAAAANQ/e_2Fa5cKdpw/testdata_thumb1.jpg?imgmax=800" width="469" height="235" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;As you can see the data&amp;#160; in the Table and View is identical, so are the number of columns.&amp;#160; Now lets add one column HireDate in the table and see what happens. &lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;------------------------------------------------------------------------------------------------------      &lt;br /&gt;&lt;font size="1" face="Verdana"&gt;&lt;font color="#008000"&gt;-- Add HireDate Column in Employees Table&lt;/font&gt;         &lt;br /&gt;&lt;font color="#0000ff"&gt;ALTER TABLE&lt;/font&gt; Employees &lt;font color="#0000ff"&gt;ADD&lt;/font&gt; HireDate &lt;font color="#0000ff"&gt;DATETIME&lt;/font&gt;         &lt;br /&gt;&lt;font color="#0000ff"&gt;GO&lt;/font&gt; &lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font size="1" face="Verdana"&gt;&lt;font color="#008000"&gt;-- Update the HireDate column with some date          &lt;br /&gt;&lt;/font&gt;&lt;font color="#0000ff"&gt;UPDATE&lt;/font&gt; Employees         &lt;br /&gt;&lt;font color="#0000ff"&gt;SET&lt;/font&gt; HireDate =&lt;font color="#ff0000"&gt; '20100827'          &lt;br /&gt;&lt;/font&gt;&lt;font color="#0000ff"&gt;GO&lt;/font&gt; &lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font size="1" face="Verdana"&gt;&lt;font color="#008000"&gt;-- Again Verify the data in table and View&lt;/font&gt;         &lt;br /&gt;&lt;font color="#0000ff"&gt;SELECT&lt;/font&gt; *         &lt;br /&gt;&lt;font color="#0000ff"&gt;FROM&lt;/font&gt; Employees         &lt;br /&gt;&lt;font color="#0000ff"&gt;GO&lt;/font&gt;         &lt;br /&gt;&lt;font color="#0000ff"&gt;SELECT&lt;/font&gt; *         &lt;br /&gt;&lt;font color="#0000ff"&gt;FROM&lt;/font&gt; Emp         &lt;br /&gt;&lt;font color="#0000ff"&gt;GO&lt;/font&gt;         &lt;br /&gt;&lt;/font&gt;------------------------------------------------------------------------------------------------------&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/_weIRgO4yuTo/TH3Mu0i_GII/AAAAAAAAANU/C2UwCKMyeIk/s1600-h/addcolumn14.jpg"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="add column" border="0" alt="add column" src="http://lh4.ggpht.com/_weIRgO4yuTo/TH3Mwet50YI/AAAAAAAAANY/HP-kNLJ__YQ/addcolumn_thumb10.jpg?imgmax=800" width="516" height="221" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;As you see HireDate column didn’t appear in VIEW.&amp;#160; So question arises: &lt;strong&gt;Why a VIEW doesn't get refresh when I add a column to the table?&amp;#160; &lt;/strong&gt;    &lt;br /&gt;Short answer is when you create the VIEW, the column information/definition of VIEW(metadata of VIEW) gets stored in system tables at the time of creation of VIEW.&amp;#160; And that metadata doesn’t get refresh when you alter the underlying table.&amp;#160; You have to explicitly refresh the metadata of VIEW.&amp;#160; &lt;br /&gt;So next question is: &lt;strong&gt;How to refresh the VIEW once you modified the underlying table?&lt;/strong&gt;     &lt;br /&gt;There are&lt;font face="Verdana"&gt; 2&lt;/font&gt; ways to refresh the VIEW:     &lt;br /&gt;&lt;font face="Verdana"&gt;1.&lt;/font&gt;&amp;#160; &lt;strong&gt;Using the system stored procedure&lt;/strong&gt; &lt;a href="http://msdn.microsoft.com/en-us/library/ms187821.aspx" target="_blank"&gt;sp_refreshview&lt;/a&gt;     &lt;br /&gt;&lt;strong&gt;From Books Online - sp_refreshview:&lt;/strong&gt; Updates the metadata for the specified non-schema-bound view. Persistent metadata for a view can become outdated because of changes to the underlying objects upon which the view depends.     &lt;br /&gt;&lt;strong&gt;Syntax:&lt;/strong&gt; EXECUTE sp_refreshview ‘viewname’&lt;/p&gt;  &lt;p&gt;&lt;font face="Verdana"&gt;2.&lt;/font&gt; Or by executing ALTER VIEW statement.&amp;#160; When you ALTER the VIEW, SQL Server will pick the latest column definition from underlying table and will update the VIEW metadata.&lt;/p&gt;  &lt;p&gt;So in our case we can refresh the VIEW Emp by:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;------------------------------------------------------------------------------------------------------      &lt;br /&gt;&lt;font size="1"&gt;&lt;font face="Verdana"&gt;&lt;font color="#008000"&gt;-- 1. using system stored procedure sp_refreshview&lt;/font&gt;           &lt;br /&gt;&lt;font color="#0000ff"&gt;EXECUTE&lt;/font&gt;&lt;font color="#800000"&gt; sp_refreshview&lt;/font&gt;&lt;font color="#ff0000"&gt; 'Emp'            &lt;br /&gt;&lt;/font&gt;&lt;font color="#0000ff"&gt;GO&lt;/font&gt;           &lt;br /&gt;&lt;font color="#008000"&gt;-- 2. Or by executing the ALTER statement&lt;/font&gt;           &lt;br /&gt;&lt;font color="#0000ff"&gt;ALTER VIEW&lt;/font&gt; Emp           &lt;br /&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="1"&gt;&lt;font face="Verdana"&gt;&lt;font color="#0000ff"&gt;AS            &lt;br /&gt;SELECT&lt;/font&gt; *           &lt;br /&gt;&lt;font color="#0000ff"&gt;FROM&lt;/font&gt; Employees           &lt;br /&gt;&lt;font color="#0000ff"&gt;GO&lt;/font&gt; &lt;/font&gt;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font size="1"&gt;&lt;font face="Verdana"&gt;&lt;font color="#008000"&gt;-- Verify the data in View&lt;/font&gt;           &lt;br /&gt;&lt;font color="#0000ff"&gt;SELECT&lt;/font&gt; *           &lt;br /&gt;&lt;font color="#0000ff"&gt;FROM&lt;/font&gt; Emp           &lt;br /&gt;&lt;font color="#0000ff"&gt;GO&lt;/font&gt;           &lt;br /&gt;&lt;/font&gt;&lt;/font&gt;------------------------------------------------------------------------------------------------------&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Note you don’t need to execute both the queries, either of the above can do the trick for you.&amp;#160; Now you can see the HireDate column in Emp view as well:    &lt;br /&gt;&lt;a href="http://lh4.ggpht.com/_weIRgO4yuTo/TH3MxoEcPmI/AAAAAAAAANc/hnTgZ0OseE0/s1600-h/view3.jpg"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="view" border="0" alt="view" src="http://lh5.ggpht.com/_weIRgO4yuTo/TH3MzLPHSyI/AAAAAAAAANg/CMCFgB--2V4/view_thumb1.jpg?imgmax=800" width="485" height="128" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Case &lt;font face="Verdana"&gt;2&lt;/font&gt;: You drop a column from the table. &lt;/strong&gt;    &lt;br /&gt;Similarly when you drop a column from the table, the VIEW definition doesn’t get updated even though you have used wild card “*” in VIEW definition.&amp;#160; Now lets drop the column HireDate from the table and see what happens:     &lt;br /&gt;Note: In previous step I refreshed the View after adding the HireDate, so now HireDate is part of Emp view as well.&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;------------------------------------------------------------------------------------------------------      &lt;br /&gt;&lt;font size="1" face="Verdana"&gt;&lt;font color="#008000"&gt;-- First Verify the data before dropping column&lt;/font&gt;         &lt;br /&gt;&lt;font color="#0000ff"&gt;SELECT&lt;/font&gt; *         &lt;br /&gt;&lt;font color="#0000ff"&gt;FROM&lt;/font&gt; Employees         &lt;br /&gt;&lt;font color="#0000ff"&gt;GO&lt;/font&gt;         &lt;br /&gt;&lt;font color="#0000ff"&gt;SELECT&lt;/font&gt; *         &lt;br /&gt;&lt;font color="#0000ff"&gt;FROM&lt;/font&gt; Emp &lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font size="1" face="Verdana"&gt;&lt;font color="#008000"&gt;-- Drop HireDate column from Table          &lt;br /&gt;&lt;/font&gt;&lt;font color="#0000ff"&gt;ALTER TABLE&lt;/font&gt; Employees &lt;font color="#0000ff"&gt;DROP COLUMN&lt;/font&gt; Hiredate         &lt;br /&gt;&lt;font color="#0000ff"&gt;GO&lt;/font&gt; &lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font size="1" face="Verdana"&gt;&lt;font color="#008000"&gt;-- Verify the data after dropping the column.          &lt;br /&gt;&lt;/font&gt;&lt;font color="#0000ff"&gt;SELECT&lt;/font&gt; *         &lt;br /&gt;&lt;font color="#0000ff"&gt;FROM&lt;/font&gt; Employees         &lt;br /&gt;&lt;font color="#0000ff"&gt;GO&lt;/font&gt;         &lt;br /&gt;&lt;font color="#0000ff"&gt;SELECT&lt;/font&gt; *         &lt;br /&gt;&lt;font color="#0000ff"&gt;FROM&lt;/font&gt; Emp         &lt;br /&gt;&lt;font color="#0000ff"&gt;GO&lt;/font&gt;&lt;/font&gt;       &lt;br /&gt;------------------------------------------------------------------------------------------------------&lt;/p&gt;    &lt;p&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Now in this case HireDate column will get removed from table but the metadata of the VIEW still have its information stored so you will get the following error on selecting data from VIEW.    &lt;br /&gt;&lt;font color="#ff0000"&gt;Msg 4502, Level 16, State 1, Line 1      &lt;br /&gt;View or function 'Emp' has more column names specified than columns defined.&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;The solution is, again refresh the VIEW definition by executing:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;------------------------------------------------------------------------------------------------------      &lt;br /&gt;&lt;font face="Verdana"&gt;&lt;font size="1"&gt;&lt;font color="#0000ff"&gt;EXECUTE&lt;/font&gt; &lt;font color="#800000"&gt;sp_refreshview&lt;/font&gt;&lt;font color="#ff0000"&gt; 'Emp'&lt;/font&gt;           &lt;br /&gt;&lt;font color="#0000ff"&gt;GO&lt;/font&gt;&lt;/font&gt;         &lt;br /&gt;&lt;/font&gt;------------------------------------------------------------------------------------------------------&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Now you won’t get the same error.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Case &lt;font face="Verdana"&gt;3&lt;/font&gt;: You drop one or more columns and add equal or more number columns to the table. &lt;/strong&gt;    &lt;br /&gt;This case is even more dangerous as User selecting data from the VIEW can get wrong data under wrong columns and can create confusion.&amp;#160; I won’t explain this in detail, just execute following queries and you will realize what I’m saying.&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;------------------------------------------------------------------------------------------------------      &lt;br /&gt;&lt;font size="1" face="Verdana"&gt;&lt;font color="#008000"&gt;-- Drop column LastName from table&lt;/font&gt;         &lt;br /&gt;&lt;font color="#0000ff"&gt;ALTER TABLE&lt;/font&gt; Employees &lt;font color="#0000ff"&gt;DROP COLUMN&lt;/font&gt; LastName         &lt;br /&gt;&lt;font color="#0000ff"&gt;GO&lt;/font&gt;         &lt;br /&gt;&lt;font color="#008000"&gt;-- Add Column DeptName with default value 'IT'          &lt;br /&gt;&lt;/font&gt;&lt;font color="#0000ff"&gt;ALTER TABLE&lt;/font&gt; Employees &lt;font color="#0000ff"&gt;ADD&lt;/font&gt; DeptName &lt;font color="#0000ff"&gt;VARCHAR&lt;/font&gt;(10) NOT NULL &lt;font color="#0000ff"&gt;DEFAULT&lt;/font&gt;&lt;font color="#ff0000"&gt; 'IT'&lt;/font&gt;         &lt;br /&gt;GO &lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font size="1" face="Verdana"&gt;&lt;font color="#008000"&gt;-- Verify the data          &lt;br /&gt;&lt;/font&gt;&lt;font color="#0000ff"&gt;SELECT&lt;/font&gt; *         &lt;br /&gt;&lt;font color="#0000ff"&gt;FROM&lt;/font&gt; Employees         &lt;br /&gt;&lt;font color="#0000ff"&gt;GO&lt;/font&gt;         &lt;br /&gt;&lt;font color="#0000ff"&gt;SELECT&lt;/font&gt; *         &lt;br /&gt;&lt;font color="#0000ff"&gt;FROM&lt;/font&gt; Emp         &lt;br /&gt;&lt;font color="#0000ff"&gt;GO&lt;/font&gt;         &lt;br /&gt;&lt;/font&gt;------------------------------------------------------------------------------------------------------&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/_weIRgO4yuTo/TH3M0h1xUMI/AAAAAAAAANk/NCQz3--2Q5M/s1600-h/Final6.jpg"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="Final" border="0" alt="Final" src="http://lh5.ggpht.com/_weIRgO4yuTo/TH3M2Bh_vBI/AAAAAAAAANo/YVLPwXklLfs/Final_thumb2.jpg?imgmax=800" width="496" height="231" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;Now if you see, the LastName column is not present in the table and you can also see the DeptName column in the table.&amp;#160; And interesting observation with VIEW is, though the data is exactly matching with the table but columns names are not correct.&amp;#160; We again need to refresh the VIEW to correct it. &lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;------------------------------------------------------------------------------------------------------      &lt;br /&gt;&lt;font size="1" face="Verdana"&gt;&lt;font color="#0000ff"&gt;EXECUTE&lt;/font&gt; &lt;font color="#800000"&gt;sp_refreshview&lt;/font&gt; &lt;font color="#ff0000"&gt;'Emp'&lt;/font&gt;         &lt;br /&gt;&lt;font color="#0000ff"&gt;GO&lt;/font&gt; &lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font size="1" face="Verdana"&gt;&lt;font color="#008000"&gt;-- Verify the data          &lt;br /&gt;&lt;/font&gt;&lt;font color="#0000ff"&gt;SELECT&lt;/font&gt; *         &lt;br /&gt;&lt;font color="#0000ff"&gt;FROM&lt;/font&gt; Emp         &lt;br /&gt;&lt;font color="#0000ff"&gt;GO&lt;/font&gt;         &lt;br /&gt;&lt;/font&gt;------------------------------------------------------------------------------------------------------&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Back to normal now:    &lt;br /&gt;&lt;a href="http://lh4.ggpht.com/_weIRgO4yuTo/TH3M3YH9irI/AAAAAAAAANs/X38fPz80J7s/s1600-h/Last3.jpg"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="Last" border="0" alt="Last" src="http://lh4.ggpht.com/_weIRgO4yuTo/TH3M47lT1qI/AAAAAAAAANw/rEa41gYDRIg/Last_thumb1.jpg?imgmax=800" width="334" height="129" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;What is the solution?&lt;/strong&gt;&amp;#160; &lt;br /&gt;Obvious prevention is don’t use wild card “*” while creating VIEWS.&amp;#160; But even listing out columns is just a prevention or I’d say it is a good practice.&amp;#160;&amp;#160; Because even after listing out the columns, if you drop a column from the table that has been used in any VIEW you will still face problems.&lt;/p&gt;  &lt;p&gt;&lt;font face="Verdana"&gt;&lt;font face="Georgia"&gt;The solution is creating the view using “WITH SCHEMABINDING” option.        &lt;br /&gt;&lt;strong&gt;From Books Online:&amp;#160; &lt;/strong&gt;Binds the view to the schema of the underlying table or tables. When SCHEMABINDING is specified, the base table or tables cannot be modified in a way that would affect the view definition. The view definition itself must first be modified or dropped to remove dependencies on the table that is to be modified. When you use SCHEMABINDING, the select_statement must include the two-part names (schema&lt;strong&gt;.&lt;/strong&gt;object) of tables, views, or user-defined functions that are referenced. All referenced objects must be in the same database.&lt;/font&gt; &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;Views or tables that participate in a view created with the SCHEMABINDING clause cannot be dropped unless that view is dropped or changed so that it no longer has schema binding. Otherwise, the Database Engine raises an error. Also, executing ALTER TABLE statements on tables that participate in views that have schema binding fail when these statements affect the view definition. &lt;/p&gt;  &lt;p&gt;Let me show you one example with SCHEMABINDING:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;------------------------------------------------------------------------------------------------------      &lt;br /&gt;&lt;font size="1" face="Verdana"&gt;&lt;font color="#008000"&gt;-- Create View with SCHEMABINDING&lt;/font&gt;         &lt;br /&gt;&lt;font color="#0000ff"&gt;CREATE VIEW&lt;/font&gt; NewEmp         &lt;br /&gt;&lt;font color="#0000ff"&gt;WITH SCHEMABINDING          &lt;br /&gt;AS           &lt;br /&gt;SELECT&lt;/font&gt; EmpID,         &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; FirstName         &lt;br /&gt;&lt;font color="#0000ff"&gt;FROM&lt;/font&gt; dbo.Employees         &lt;br /&gt;GO &lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font size="1" face="Verdana"&gt;&lt;font color="#008000"&gt;-- Verify the data&lt;/font&gt;         &lt;br /&gt;&lt;font color="#0000ff"&gt;SELECT&lt;/font&gt; *         &lt;br /&gt;&lt;font color="#0000ff"&gt;FROM&lt;/font&gt; NewEmp         &lt;br /&gt;&lt;font color="#0000ff"&gt;GO&lt;/font&gt; &lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font size="1" face="Verdana"&gt;&lt;font color="#008000"&gt;-- Now try to alter the table          &lt;br /&gt;&lt;/font&gt;&lt;font color="#0000ff"&gt;ALTER TABLE&lt;/font&gt; Employees &lt;font color="#0000ff"&gt;DROP COLUMN&lt;/font&gt; EmpID         &lt;br /&gt;&lt;font color="#0000ff"&gt;GO&lt;/font&gt;         &lt;br /&gt;&lt;/font&gt;------------------------------------------------------------------------------------------------------&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Now you will get the error:    &lt;br /&gt;&lt;font color="#ff0000"&gt;Msg 5074, Level 16, State 1, Line 2      &lt;br /&gt;The object 'NewEmp' is dependent on column 'EmpID'.       &lt;br /&gt;Msg 4922, Level 16, State 9, Line 2       &lt;br /&gt;ALTER TABLE DROP COLUMN EmpID failed because one or more objects access this column.&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;Basically&amp;#160; WITH SCHEMABINDING has prevented the change that would affect the view definition.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Additional Information:&lt;/strong&gt;&amp;#160; &lt;br /&gt;A] If you want see the all the dependant objects on particular table you can use following script:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;------------------------------------------------------------------------------------------------------      &lt;br /&gt;&lt;font size="1" face="Verdana"&gt;&lt;font color="#0000ff"&gt;SELECT&lt;/font&gt; *         &lt;br /&gt;&lt;/font&gt;&lt;/p&gt;   &lt;font size="1"&gt;&lt;font face="Verdana"&gt;&lt;font color="#0000ff"&gt;FROM&lt;/font&gt; &lt;font color="#008000"&gt;sys.objects&lt;/font&gt; AS so         &lt;br /&gt;INNER JOIN&lt;font color="#008000"&gt; sys.sql_expression_dependencies&lt;/font&gt; &lt;font color="#0000ff"&gt;AS&lt;/font&gt; sed         &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;font color="#0000ff"&gt;ON&lt;/font&gt; so.object_id = sed.referencing_id         &lt;br /&gt;&lt;font color="#0000ff"&gt;WHERE&lt;/font&gt; so.type =&lt;font color="#ff0000"&gt; 'V'&lt;/font&gt; AND sed.referenced_id = &lt;font color="#ff0000"&gt;OBJECT_ID&lt;/font&gt;(&lt;font color="#ff0000"&gt;'dbo.employees'&lt;/font&gt;)&lt;/font&gt;&lt;/font&gt;     &lt;p&gt;&lt;font size="1" face="Verdana"&gt;&lt;font color="#0000ff"&gt;GO&lt;/font&gt;         &lt;br /&gt;&lt;/font&gt;------------------------------------------------------------------------------------------------------&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;B] The following example creates a script that refreshes the metadata for all views that have a dependency on table dbo.employees:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;------------------------------------------------------------------------------------------------------      &lt;br /&gt;&lt;font size="1" face="Verdana"&gt;&lt;font color="#0000ff"&gt;SELECT DISTINCT&lt;/font&gt;&lt;font color="#ff0000"&gt; 'EXEC sp_refreshview '''&lt;/font&gt; + name +&lt;font color="#ff0000"&gt; ''''          &lt;br /&gt;&lt;/font&gt;&lt;font color="#0000ff"&gt;FROM&lt;/font&gt; &lt;font color="#008000"&gt;sys.objects&lt;/font&gt; AS so         &lt;br /&gt;INNER JOIN&lt;font color="#008000"&gt; sys.sql_expression_dependencies&lt;/font&gt; &lt;font color="#0000ff"&gt;AS&lt;/font&gt; sed         &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;font color="#0000ff"&gt;ON&lt;/font&gt; so.object_id = sed.referencing_id         &lt;br /&gt;&lt;font color="#0000ff"&gt;WHERE&lt;/font&gt; so.type =&lt;font color="#ff0000"&gt; 'V'&lt;/font&gt; AND sed.referenced_id = &lt;font color="#ff0000"&gt;OBJECT_ID&lt;/font&gt;(&lt;font color="#ff0000"&gt;'dbo.employees'&lt;/font&gt;)         &lt;br /&gt;&lt;font color="#0000ff"&gt;GO&lt;/font&gt;&lt;/font&gt;       &lt;br /&gt;------------------------------------------------------------------------------------------------------&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Source:    &lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms187956.aspx" target="_blank"&gt;CREATE VIEW (Transact-SQL)&lt;/a&gt;     &lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms187821.aspx" target="_blank"&gt;sp_refreshview (Transact-SQL)&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Namaste!    &lt;br /&gt;- Mangal&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8585649008635531444-3949073742161481378?l=mangalpardeshi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mangalpardeshi.blogspot.com/feeds/3949073742161481378/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://mangalpardeshi.blogspot.com/2010/09/some-things-about-views.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8585649008635531444/posts/default/3949073742161481378'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8585649008635531444/posts/default/3949073742161481378'/><link rel='alternate' type='text/html' href='http://mangalpardeshi.blogspot.com/2010/09/some-things-about-views.html' title='Some Things About VIEWS'/><author><name>Mangal Pardeshi</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_weIRgO4yuTo/SzSmWMjAwJI/AAAAAAAAAKs/DgpUWlN5KZY/S220/y1m_Ev9g6OBzqJR8Z6lhdhzgWZ-bl8WwBuhHkrErOHngc14s42YU23gTajpglsbRjABGlnSHh-wUfbGievoo7soxuBY9uSp1K1I.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh3.ggpht.com/_weIRgO4yuTo/TH3MtdZcdNI/AAAAAAAAANQ/e_2Fa5cKdpw/s72-c/testdata_thumb1.jpg?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8585649008635531444.post-8230104945993580254</id><published>2010-08-24T23:05:00.001+05:30</published><updated>2010-08-26T09:07:25.680+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='FAQ'/><category scheme='http://www.blogger.com/atom/ns#' term='T-SQL'/><title type='text'>Convert Seconds to HH:MM:SS</title><content type='html'>&lt;p&gt;Today 2 of my colleagues from reporting team had this requirement. They had one table where Seconds were stored as INT and in report they wanted to convert the seconds to HH:MM:SS format.&amp;#160; They already had&lt;font face="Verdana"&gt; 1&lt;/font&gt; solution ready with them.&amp;#160;&amp;#160; It was something like: &lt;/p&gt;  &lt;blockquote bgcolor="#f4f4f4"&gt;   &lt;p&gt;---------------------------------------------------------------------------------------------------------------&lt;/p&gt;    &lt;p&gt;&lt;font size="1"&gt;&lt;font face="Verdana"&gt;&lt;font color="#0000ff"&gt;DECLARE&lt;/font&gt; @Seconds &lt;font color="#0000ff"&gt;INT&lt;/font&gt;           &lt;br /&gt;&lt;font color="#0000ff"&gt;SET&lt;/font&gt; @Seconds = 3800 &lt;/font&gt;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font size="1" face="Verdana"&gt;&lt;font color="#0000ff"&gt;SELECT&lt;/font&gt; &lt;font color="#ff00ff"&gt;CONVERT&lt;/font&gt;(&lt;font color="#0000ff"&gt;VARCHAR&lt;/font&gt;(10),@Seconds/3600)&amp;#160; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; +&lt;font color="#ff0000"&gt;':'&lt;/font&gt;         &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; + RIGHT(&lt;font color="#ff0000"&gt;'00'&lt;/font&gt;+&lt;font color="#ff00ff"&gt;CONVERT&lt;/font&gt;(&lt;font color="#0000ff"&gt;VARCHAR&lt;/font&gt;(2),(@Seconds%3600)/60),2)         &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; +&lt;font color="#ff0000"&gt;':'&lt;/font&gt;         &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; + RIGHT(&lt;font color="#ff0000"&gt;'00'&lt;/font&gt;+&lt;font color="#ff00ff"&gt;CONVERT&lt;/font&gt;(&lt;font color="#0000ff"&gt;VARCHAR&lt;/font&gt;(2),@Seconds%60),2) &lt;font color="#0000ff"&gt;AS&lt;/font&gt; [HH:MM:SS]         &lt;br /&gt;&amp;#160; &lt;font color="#000080"&gt;GO&lt;/font&gt;&lt;/font&gt;       &lt;br /&gt;---------------------------------------------------------------------------------------------------------------&lt;font color="#004000"&gt;-- The output--        &lt;br /&gt;&lt;/font&gt;&lt;strong&gt;&lt;font face="Verdana"&gt;01:03:20&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;It was working fine, but my colleagues were looking for something different, something elegant.&amp;#160; And I jumped on to help them.&amp;#160; Now a days I hardly get any chance to write SQL, so i don’t let such opportunities go.&amp;#160; I had one solution in mind using &lt;a href="http://msdn.microsoft.com/en-us/library/ms187928.aspx" target="_blank"&gt;CONVERT and Style 108&lt;/a&gt;&lt;font face="Verdana"&gt;&lt;/font&gt;:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;--------------------------------------------------------------------------------------------------------------- &lt;font size="1" face="Verdana"&gt;&lt;font color="#0000ff"&gt;DECLARE&lt;/font&gt; @Seconds &lt;font color="#0000ff"&gt;INT&lt;/font&gt;         &lt;br /&gt;&lt;font color="#0000ff"&gt;SET&lt;/font&gt; @Seconds = 3800         &lt;br /&gt;&lt;font color="#0000ff"&gt;SELECT&lt;/font&gt; &lt;font color="#ff00ff"&gt;CONVERT&lt;/font&gt;(&lt;font color="#0000ff"&gt;VARCHAR&lt;/font&gt;(8), &lt;font color="#ff00ff"&gt;DATEADD&lt;/font&gt;(SS,@Seconds,0),108) &lt;font color="#0000ff"&gt;AS&lt;/font&gt; [HH:MM:SS]         &lt;br /&gt;GO&lt;/font&gt;       &lt;br /&gt;---------------------------------------------------------------------------------------------------------------&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;But problem with the above query is, it fails when number of seconds are more than &lt;font face="Verdana"&gt;86399&lt;/font&gt;(there are total &lt;font face="Verdana"&gt;86400&lt;/font&gt; seconds in a day).&amp;#160; So if number of seconds are &lt;font face="Verdana"&gt;86400;&lt;/font&gt; above query will show &lt;font face="Verdana"&gt;00&lt;/font&gt; hours instead of showing 24 hours.&amp;#160; See following example: &lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;--------------------------------------------------------------------------------------------------------------- &lt;font size="1" face="Verdana"&gt;&lt;font color="#0000ff"&gt;DECLARE&lt;/font&gt; @Seconds &lt;font color="#0000ff"&gt;INT&lt;/font&gt;         &lt;br /&gt;&lt;font color="#0000ff"&gt;SET&lt;/font&gt; @Seconds = 86500         &lt;br /&gt;&lt;font color="#0000ff"&gt;SELECT&lt;/font&gt; &lt;font color="#ff00ff"&gt;CONVERT&lt;/font&gt;(&lt;font color="#0000ff"&gt;VARCHAR&lt;/font&gt;(8), &lt;font color="#ff00ff"&gt;DATEADD&lt;/font&gt;(SS,@Seconds,0),108)&amp;#160; &lt;font color="#0000ff"&gt;AS&lt;/font&gt; [HH:MM:SS]         &lt;br /&gt;&lt;font color="#0000ff"&gt;GO&lt;/font&gt;&lt;/font&gt;       &lt;br /&gt;---------------------------------------------------------------------------------------------------------------&lt;/p&gt;    &lt;p&gt;&lt;font color="#004000"&gt;-- The output--&lt;/font&gt;       &lt;br /&gt;&lt;strong&gt;&lt;font face="Verdana"&gt;00:01:40 &lt;/font&gt;&lt;/strong&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Here the expected output was &lt;font face="Verdana"&gt;24:01:40&lt;/font&gt;.&amp;#160; So I modified the above query a little and I came up with this:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;---------------------------------------------------------------------------------------------------------------&lt;font size="1" face="Verdana"&gt;&lt;font color="#0000ff"&gt;DECLARE&lt;/font&gt; @Seconds &lt;font color="#0000ff"&gt;INT&lt;/font&gt;,@Hour &lt;font color="#0000ff"&gt;VARCHAR&lt;/font&gt;(10)         &lt;br /&gt;&lt;font color="#0000ff"&gt;SET&lt;/font&gt; @Seconds = 86500         &lt;br /&gt;&lt;font color="#0000ff"&gt;SET&lt;/font&gt; @Hour = &lt;font color="#ff00ff"&gt;DATEDIFF&lt;/font&gt;(HH, 0, &lt;font color="#ff00ff"&gt;DATEADD&lt;/font&gt;(SS,@Seconds,0))         &lt;br /&gt;&lt;font color="#0000ff"&gt;SELECT&lt;/font&gt; &lt;font color="#ff00ff"&gt;STUFF&lt;/font&gt;(&lt;font color="#ff00ff"&gt;CONVERT&lt;/font&gt;(&lt;font color="#0000ff"&gt;VARCHAR&lt;/font&gt;(8), &lt;font color="#ff00ff"&gt;DATEADD&lt;/font&gt;(SS,@Seconds,0),108),1,2,@Hour)&amp;#160; &lt;font color="#0000ff"&gt;AS&lt;/font&gt; [HH:MM:SS]         &lt;br /&gt;&lt;font color="#0000ff"&gt;GO&lt;/font&gt;&lt;/font&gt;       &lt;br /&gt;---------------------------------------------------------------------------------------------------------------&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;font color="#004000"&gt;-- The output--&lt;/font&gt;       &lt;br /&gt;&lt;strong&gt;&lt;font face="Verdana"&gt;24:01:40&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Just in case you want to run above query on table: &lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;---------------------------------------------------------------------------------------------------------------&lt;font size="1" face="Verdana"&gt;&lt;font color="#0000ff"&gt; SELECT&lt;/font&gt; &lt;font color="#ff00ff"&gt;STUFF&lt;/font&gt;(&lt;font color="#ff00ff"&gt;CONVERT&lt;/font&gt;(&lt;font color="#0000ff"&gt;VARCHAR&lt;/font&gt;(8), &lt;font color="#ff00ff"&gt;DATEADD&lt;/font&gt;(SS, Seconds,0),108),1,2, &lt;font color="#ff00ff"&gt;DATEDIFF&lt;/font&gt;(HH, 0, &lt;font color="#ff00ff"&gt;DATEADD&lt;/font&gt;(SS, Seconds,0)))&amp;#160; &lt;font color="#0000ff"&gt;AS&lt;/font&gt; [HH:MM:SS]         &lt;br /&gt;&lt;font color="#0000ff"&gt;FROM&lt;/font&gt; TableName         &lt;br /&gt;&lt;font color="#0000ff"&gt;GO&lt;/font&gt;&lt;/font&gt;       &lt;br /&gt;---------------------------------------------------------------------------------------------------------------&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;I don’t know which approach is better, rather you tell me which one you liked.&amp;#160; Looking at them I think both the queries will give almost identical performance, just that &lt;font face="Verdana"&gt;1&lt;/font&gt;st query looks like a Mathematical solution while my approach looks like a SQL solution.&amp;#160; If you know any other approach please feel free to share.&lt;/p&gt;  &lt;p&gt;Namaste!    &lt;br /&gt;- Mangal&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8585649008635531444-8230104945993580254?l=mangalpardeshi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mangalpardeshi.blogspot.com/feeds/8230104945993580254/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://mangalpardeshi.blogspot.com/2010/08/convert-seconds-to-hhmmss.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8585649008635531444/posts/default/8230104945993580254'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8585649008635531444/posts/default/8230104945993580254'/><link rel='alternate' type='text/html' href='http://mangalpardeshi.blogspot.com/2010/08/convert-seconds-to-hhmmss.html' title='Convert Seconds to HH:MM:SS'/><author><name>Mangal Pardeshi</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_weIRgO4yuTo/SzSmWMjAwJI/AAAAAAAAAKs/DgpUWlN5KZY/S220/y1m_Ev9g6OBzqJR8Z6lhdhzgWZ-bl8WwBuhHkrErOHngc14s42YU23gTajpglsbRjABGlnSHh-wUfbGievoo7soxuBY9uSp1K1I.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8585649008635531444.post-3912687582974910321</id><published>2010-08-20T23:54:00.001+05:30</published><updated>2010-08-21T21:11:55.263+05:30</updated><title type='text'>SQL Myth: Primary Key and Clustered Index</title><content type='html'>&lt;p&gt;After remaining quiet for almost a year I’m back with what I enjoy the most, talking about SQL and sharing whatever little knowledge I have.&amp;#160;&amp;#160; Many SQL Developers have this misconception:&amp;#160; “Primary key =&amp;gt; Clustered Index: Only a Clustered Index can exist on a Primary key column”.&amp;#160;&amp;#160;&amp;#160;&amp;#160; On numerous occasions I had tough times explaining that this is not the case every time, you can create a Non-Clustered Index on a primary key column.&amp;#160; But if this hot discussion is going on across a coffee table and I’m away from Computer I get helpless.&amp;#160; So finally I decided to write about this.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;You can create a Non-Clustered Index on primary key column.&lt;/strong&gt;&amp;#160;&amp;#160; Or if I try to put this in Myth Buster words “A primary key column can exist/survive without a Clustered Index”&amp;#160; Yes it is a fact that PRIMARY KEY constraints default to CLUSTERED Index.&amp;#160;&amp;#160; But it doesn’t mean that you CAN’T create a non-clustered index on a Primary Key Column.&amp;#160; And also you can create a Clustered Index on a non-primary key column.&amp;#160; Let me show you this with some simple examples.&amp;#160; &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Case 1:&lt;/strong&gt;&amp;#160; 1st lets see what happens when you specify only PRIMARY KEY and nothing else.&amp;#160; In this case YES, by default Clustered Index will be created on Primary Key Column. &lt;/p&gt;  &lt;table cellspacing="0" cellpadding="0" width="100%" bgcolor="#f4f4f4"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;th align="left"&gt;&lt;/th&gt;        &lt;th align="right"&gt;&lt;tabindex bgcolor="#f6f6f2" ="0"&gt;&lt;/span&gt;&lt;font size="1" face="ver"&gt;&lt;/font&gt;&lt;/th&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td colspan="2"&gt;         &lt;p&gt;&lt;font size="1"&gt;&lt;font face="Verdana"&gt;&lt;font color="#0000ff"&gt;USE&lt;/font&gt; tempdb                 &lt;br /&gt;&lt;font color="#0000ff"&gt;GO&lt;/font&gt; &lt;/font&gt;&lt;/font&gt;&lt;/p&gt;          &lt;p&gt;&lt;font size="1"&gt;&lt;font face="Verdana"&gt;&lt;font color="#0000ff"&gt;CREATE TABLE&lt;/font&gt; MyTable1                 &lt;br /&gt;(                 &lt;br /&gt;Id&lt;font color="#0000ff"&gt; INT PRIMARY KEY&lt;/font&gt;,                 &lt;br /&gt;Dates &lt;font color="#0000ff"&gt;DATETIME&lt;/font&gt;                 &lt;br /&gt;)                 &lt;br /&gt;&lt;font color="#0000ff"&gt;GO&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;You can see as expected a clustered Index got created on ID column.&lt;a href="http://lh6.ggpht.com/_weIRgO4yuTo/TG7ISfXmlSI/AAAAAAAAAME/0qdVN7fCLkI/s1600-h/13.jpg"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="1" border="0" alt="1" src="http://lh5.ggpht.com/_weIRgO4yuTo/TG7IUB7WraI/AAAAAAAAAMI/Po4LgDL8OI4/1_thumb1.jpg?imgmax=800" width="577" height="136" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Case 2:&lt;/strong&gt;&amp;#160; But by just adding a NONCLUSTERED word in front of primary key you can tell SQL Server to create a Non Clustered Index instead of a default Clustered one.&lt;/p&gt;  &lt;p&gt;Here you go:    &lt;table cellspacing="0" cellpadding="0" width="100%" bgcolor="#f4f4f4"&gt;&lt;tbody&gt;       &lt;tr&gt;         &lt;th align="left"&gt;&lt;font face="Verdana"&gt;&lt;/font&gt;&lt;/th&gt;          &lt;th align="right"&gt;&lt;font face="Verdana"&gt;&lt;tabindex bgcolor="#f6f6f2" ="0"&gt;&lt;/span&gt;&lt;/font&gt;&lt;/th&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td colspan="2"&gt;           &lt;p&gt;&lt;font size="1" face="Verdana"&gt;&lt;font color="#0000ff"&gt;USE&lt;/font&gt; tempdb                 &lt;br /&gt;&lt;font color="#0000ff"&gt;GO&lt;/font&gt; &lt;/font&gt;&lt;/p&gt;            &lt;p&gt;&lt;font size="1" face="Verdana"&gt;&lt;font color="#0000ff"&gt;CREATE TABLE&lt;/font&gt; MyTable2                 &lt;br /&gt;(                 &lt;br /&gt;Id &lt;font color="#0000ff"&gt;INT PRIMARY KEY NONCLUSTERED&lt;/font&gt;,                 &lt;br /&gt;Dates &lt;font color="#0000ff"&gt;DATETIME&lt;/font&gt;                 &lt;br /&gt;)                 &lt;br /&gt;GO&lt;/font&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;     &lt;/tbody&gt;&lt;/table&gt; &lt;/p&gt;  &lt;p&gt;As you can clearly see in the image a non-clustered index got created on ID column which is also a primary key.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/_weIRgO4yuTo/TG7IVTThg0I/AAAAAAAAAMM/ijvGZi1rzew/s1600-h/25.jpg"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="2" border="0" alt="2" src="http://lh4.ggpht.com/_weIRgO4yuTo/TG7IW9aaoEI/AAAAAAAAAMQ/qZWRqFq29-E/2_thumb3.jpg?imgmax=800" width="590" height="155" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Case 3:&lt;/strong&gt;&amp;#160; Now here is the small trick, you can force SQL Server to create a non-clustered index on a primary key column even without writing NONCLUSTERED in front of it.&amp;#160; Yes, there is exception to the rule&amp;#160;&amp;#160; “PRIMARY KEY constraints default to CLUSTERED Index” even if you don’t specify NONCLUSTERED.&amp;#160;&amp;#160; Question is, How?&amp;#160; Well by simply creating a Clustered Index on another column while creating the table.&lt;/p&gt;  &lt;table cellspacing="0" cellpadding="0" width="100%" bgcolor="#f4f4f4"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;th align="left"&gt;&lt;/th&gt;        &lt;th align="right"&gt;&lt;tabindex bgcolor="#f6f6f2" ="0"&gt;&lt;/span&gt;&lt;font size="1" face="Verdana"&gt;&lt;/font&gt;&lt;/th&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td colspan="2"&gt;         &lt;p&gt;&lt;font size="1" face="Verdana"&gt;&lt;font color="#0000ff"&gt;USE&lt;/font&gt; tempdb               &lt;br /&gt;&lt;font color="#0000ff"&gt;GO&lt;/font&gt; &lt;/font&gt;&lt;/p&gt;          &lt;p&gt;&lt;font size="1" face="Verdana"&gt;&lt;font color="#0000ff"&gt;CREATE TABLE&lt;/font&gt; MyTable3               &lt;br /&gt;(               &lt;br /&gt;Id &lt;font color="#0000ff"&gt;INT PRIMARY KEY&lt;/font&gt;,               &lt;br /&gt;Dates&lt;font color="#0000ff"&gt; DATETIME UNIQUE CLUSTERED&lt;/font&gt;               &lt;br /&gt;)               &lt;br /&gt;&lt;font color="#0000ff"&gt;GO&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;See the Image, a Non Clustered got created on ID column and a Clustered on Dates column. &lt;a href="http://lh3.ggpht.com/_weIRgO4yuTo/TG7IYe0HzAI/AAAAAAAAAMU/tAUH5kFIDjM/s1600-h/315.jpg"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="3" border="0" alt="3" src="http://lh4.ggpht.com/_weIRgO4yuTo/TG7IZ2aOFHI/AAAAAAAAAMY/JX3R5pBZoq4/3_thumb9.jpg?imgmax=800" width="531" height="170" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;The obvious question will be, why SQL Server didn’t create the Clustered on Id column this time?&amp;#160; Answer is very simple, if you know the basic rule “You can have only one Clustered Index on a table”.&amp;#160; And since in the CREATE statement you forced SQL Server to create a clustered index on dates columns SQL Server had no choice but to create a non clustered on Id column.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;What we learned today?&lt;/strong&gt;     &lt;br /&gt;Honestly speaking, I didn’t tell anything new.&amp;#160; Experts/people with good knowledge about SQL Server already knew this.&amp;#160; But interesting thing we can learn here – yes there are some DEFAULTs set by SQL Server, but that doesn’t stop you from telling SQL Server “Boss enough of your DEFAULTs, now let me take the control”.&amp;#160; Actually in early days of learning SQL we all get into&amp;#160; this habit of relying on DEFAULTs set by SQL Server.&amp;#160; And we get so used to them that we start considering them as RULES that can’t be broken. &lt;/p&gt;  &lt;p&gt;Actually I think there is no harm in taking little bit extra effort and writing some extra keywords and telling SQL Server this is what I want or this is what is expected.&lt;/p&gt;  &lt;p&gt;You also learned how to create a Clustered Index on a column of your choice.&amp;#160; This can be very useful when you don’t want a Clustered Index on a primary key especially in cases like where you are using GUID as a primary key(I hate them) and you want Clustered Index to be created on some other column.&lt;/p&gt;  &lt;p&gt;Namaste!    &lt;br /&gt;- Mangal.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8585649008635531444-3912687582974910321?l=mangalpardeshi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mangalpardeshi.blogspot.com/feeds/3912687582974910321/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://mangalpardeshi.blogspot.com/2010/08/sql-myth-primary-key-and-clustered.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8585649008635531444/posts/default/3912687582974910321'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8585649008635531444/posts/default/3912687582974910321'/><link rel='alternate' type='text/html' href='http://mangalpardeshi.blogspot.com/2010/08/sql-myth-primary-key-and-clustered.html' title='SQL Myth: Primary Key and Clustered Index'/><author><name>Mangal Pardeshi</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_weIRgO4yuTo/SzSmWMjAwJI/AAAAAAAAAKs/DgpUWlN5KZY/S220/y1m_Ev9g6OBzqJR8Z6lhdhzgWZ-bl8WwBuhHkrErOHngc14s42YU23gTajpglsbRjABGlnSHh-wUfbGievoo7soxuBY9uSp1K1I.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh5.ggpht.com/_weIRgO4yuTo/TG7IUB7WraI/AAAAAAAAAMI/Po4LgDL8OI4/s72-c/1_thumb1.jpg?imgmax=800' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8585649008635531444.post-5400259890548089371</id><published>2009-08-12T18:36:00.001+05:30</published><updated>2009-08-12T18:37:05.629+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Downloads'/><title type='text'>Microsoft SQL Server 2008 R2 CTP</title><content type='html'>&lt;p&gt;&lt;font face="Verdana"&gt;The first community technology preview (CTP) of Microsoft SQL Server 2008 R2 available for download for &lt;/font&gt;&lt;a href="http://msdn.microsoft.com/subscriptions/securedownloads/default.aspx"&gt;&lt;font face="Verdana"&gt;MSDN&lt;/font&gt;&lt;/a&gt;&lt;font face="Verdana"&gt; and &lt;/font&gt;&lt;a href="http://technet.microsoft.com/subscriptions/securedownloads/default.aspx"&gt;&lt;font face="Verdana"&gt;TechNet&lt;/font&gt;&lt;/a&gt;&lt;font face="Verdana"&gt; subscribers. &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Verdana"&gt;For more details about SQL Server 2008 R2 and for other related links See - &lt;/font&gt;&lt;a title="http://www.microsoft.com/sqlserver/2008/en/us/R2.aspx" href="http://www.microsoft.com/sqlserver/2008/en/us/R2.aspx"&gt;&lt;font face="Verdana"&gt;http://www.microsoft.com/sqlserver/2008/en/us/R2.aspx&lt;/font&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Verdana"&gt;If you have any questions regarding SQL Server 2008 R2 you can visit the forums - &lt;a title="http://social.msdn.microsoft.com/Forums/en-US/category/sqlserverprerelease" href="http://social.msdn.microsoft.com/Forums/en-US/category/sqlserverprerelease"&gt;http://social.msdn.microsoft.com/Forums/en-US/category/sqlserverprerelease&lt;/a&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Verdana"&gt;&lt;/font&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8585649008635531444-5400259890548089371?l=mangalpardeshi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mangalpardeshi.blogspot.com/feeds/5400259890548089371/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://mangalpardeshi.blogspot.com/2009/08/microsoft-sql-server-2008-r2-ctp.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8585649008635531444/posts/default/5400259890548089371'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8585649008635531444/posts/default/5400259890548089371'/><link rel='alternate' type='text/html' href='http://mangalpardeshi.blogspot.com/2009/08/microsoft-sql-server-2008-r2-ctp.html' title='Microsoft SQL Server 2008 R2 CTP'/><author><name>Mangal Pardeshi</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_weIRgO4yuTo/SzSmWMjAwJI/AAAAAAAAAKs/DgpUWlN5KZY/S220/y1m_Ev9g6OBzqJR8Z6lhdhzgWZ-bl8WwBuhHkrErOHngc14s42YU23gTajpglsbRjABGlnSHh-wUfbGievoo7soxuBY9uSp1K1I.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8585649008635531444.post-7809054988438827972</id><published>2009-08-11T12:51:00.001+05:30</published><updated>2009-08-11T12:51:12.447+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='T-SQL'/><title type='text'>ROLLUP and ORDER BY</title><content type='html'>&lt;font face="Georgia"&gt;   &lt;p&gt;&lt;font face="Verdana"&gt;In one of my previous posts, I discussed on how useful GROUPING function is while writing a ROLLUP/CUBE query.&amp;#160; One more way GROUPING function can help you is – in ordering the results returned by ROLLUP/CUBE queries.&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Verdana"&gt;The reason I’m writing this post is, sometime back I seen somebody writing a weird ORDER BY statement to get the desired ordering after writing a query using a ROLLUP operator.&amp;#160; First he didn’t use the GROUPING function in SELECT statement and 2nd his ORDER BY was something like : &lt;/font&gt;      &lt;table cellspacing="0" cellpadding="0" width="100%" bgcolor="#f4f4f4"&gt;&lt;tbody&gt;         &lt;tr&gt;           &lt;th align="left"&gt;&lt;font face="Verdana"&gt;&lt;/font&gt;&lt;/th&gt;            &lt;th align="right"&gt;&lt;font face="Verdana"&gt;&lt;tabindex  ="0" bgcolor="#f6f6f2"&gt;&lt;/span&gt;&lt;/font&gt;&lt;/th&gt;         &lt;/tr&gt;          &lt;tr&gt;           &lt;td colspan="2"&gt;             &lt;p&gt;&lt;font face="Verdana" size="1"&gt;&lt;font color="#0000ff"&gt;ORDER BY&lt;/font&gt; &lt;font color="#0000ff"&gt;CASE&lt;/font&gt; ColumnName                   &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;font color="#0000ff"&gt;WHEN&lt;/font&gt; &lt;font color="#ff0000"&gt;'Total Of ColumnName'&lt;/font&gt;                   &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;font color="#0000ff"&gt;THEN&lt;/font&gt; &lt;font color="#ff0000"&gt;'Zzzzzzzz'&lt;/font&gt;                   &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;font color="#0000ff"&gt;ELSE&lt;/font&gt; ColumnName                   &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;font color="#0000ff"&gt;END&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;           &lt;/td&gt;         &lt;/tr&gt;       &lt;/tbody&gt;&lt;/table&gt;   &lt;/p&gt;    &lt;p&gt;&lt;font face="Verdana"&gt;Just to get sub total returned by ROLLUP at the bottom of result set.&amp;#160; Well of course if he had the knowledge about GROUPING then he wouldn’t have written such CASE statement in ORDER BY.&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Verdana"&gt;As you may know that GROUPING function returns 1 when the row is added by either the CUBE or ROLLUP operator, and 0 when the row is not the result of CUBE or ROLLUP.&amp;#160; So you can easily use this property of the GROUPING for ordering the result set.&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Verdana"&gt;Lets have a look at the following example, 1st create some sample data.&lt;/font&gt;&amp;#160;&amp;#160; &lt;table cellspacing="0" cellpadding="0" width="100%" bgcolor="#f4f4f4"&gt;&lt;tbody&gt;         &lt;tr&gt;           &lt;th align="left"&gt;&lt;font face="Verdana"&gt;&lt;/font&gt;&lt;/th&gt;            &lt;th align="right"&gt;&lt;font face="Verdana"&gt;&lt;tabindex  ="0" bgcolor="#f6f6f2"&gt;&lt;/span&gt;&lt;/font&gt;&lt;/th&gt;         &lt;/tr&gt;          &lt;tr&gt;           &lt;td colspan="2"&gt;             &lt;p&gt;&lt;font face="Verdana" size="1"&gt;&lt;font color="#008000"&gt;-- create sample table Sales&lt;/font&gt; &lt;/font&gt;&lt;/p&gt;              &lt;p&gt;&lt;font face="Verdana" size="1"&gt;&lt;font color="#0000ff"&gt;CREATE TABLE&lt;/font&gt; Sales                   &lt;br /&gt;(                   &lt;br /&gt;ID &lt;font color="#0000ff"&gt;INT&lt;/font&gt;,                   &lt;br /&gt;FName &lt;font color="#0000ff"&gt;VARCHAR(30), &lt;/font&gt;                  &lt;br /&gt;Zone &lt;font color="#0000ff"&gt;VARCHAR(30)&lt;/font&gt;,                   &lt;br /&gt;Sale &lt;font color="#0000ff"&gt;INT&lt;/font&gt;                   &lt;br /&gt;)                   &lt;br /&gt;GO &lt;/font&gt;&lt;/p&gt;              &lt;p&gt;&lt;font face="Verdana" size="1"&gt;&lt;font color="#008000"&gt;-- Load sample data&lt;/font&gt; &lt;/font&gt;&lt;/p&gt;              &lt;p&gt;&lt;font face="Verdana" size="1"&gt;&lt;font color="#0000ff"&gt;INSERT INTO&lt;/font&gt; Sales &lt;font color="#0000ff"&gt;SELECT&lt;/font&gt;                   &lt;br /&gt;1, &lt;font color="#ff0000"&gt;'Mangal'&lt;/font&gt;, &lt;font color="#ff0000"&gt;'East'&lt;/font&gt;, 20 &lt;font color="#0000ff"&gt;UNION ALL SELECT                    &lt;br /&gt;&lt;/font&gt;2, &lt;font color="#ff0000"&gt;'Mangal'&lt;/font&gt;,&lt;font color="#ff0000"&gt; 'East'&lt;/font&gt;, 150&lt;font color="#0000ff"&gt; UNION ALL SELECT                    &lt;br /&gt;&lt;/font&gt;3, &lt;font color="#ff0000"&gt;'Mangal'&lt;/font&gt;,&lt;font color="#ff0000"&gt; 'West'&lt;/font&gt;, 50 &lt;font color="#0000ff"&gt;UNION ALL SELECT&lt;/font&gt;                   &lt;br /&gt;4, &lt;font color="#ff0000"&gt;'Ram'&lt;/font&gt;,&lt;font color="#ff0000"&gt; 'East'&lt;/font&gt;, 45 &lt;font color="#0000ff"&gt;UNION ALL SELECT                    &lt;br /&gt;&lt;/font&gt;5, '&lt;font color="#ff0000"&gt;Ram'&lt;/font&gt;, NULL, 80 &lt;font color="#0000ff"&gt;UNION ALL SELECT                    &lt;br /&gt;&lt;/font&gt;6, &lt;font color="#ff0000"&gt;'Ram'&lt;/font&gt;, NULL, 40&lt;font color="#0000ff"&gt; UNION ALL SELECT                    &lt;br /&gt;&lt;/font&gt;7, &lt;font color="#ff0000"&gt;'Sachin'&lt;/font&gt;,&lt;font color="#ff0000"&gt; 'West'&lt;/font&gt;, 50&lt;font color="#0000ff"&gt; UNION ALL SELECT                    &lt;br /&gt;&lt;/font&gt;8,&lt;font color="#ff0000"&gt; 'Sachin'&lt;/font&gt;,&lt;font color="#ff0000"&gt; 'West'&lt;/font&gt;, 40                   &lt;br /&gt;GO &lt;/font&gt;&lt;/p&gt;              &lt;p&gt;&lt;font face="Verdana" size="1"&gt;&lt;font color="#008000"&gt;-- Test sample data&lt;/font&gt; &lt;/font&gt;&lt;/p&gt;              &lt;p&gt;&lt;font face="Verdana" size="1"&gt;&lt;font color="#0000ff"&gt;SELECT&lt;/font&gt; Id, FName, Zone, Sale                   &lt;br /&gt;&lt;font color="#0000ff"&gt;FROM&lt;/font&gt; Sales                   &lt;br /&gt;GO&lt;/font&gt;&lt;/p&gt;           &lt;/td&gt;         &lt;/tr&gt;       &lt;/tbody&gt;&lt;/table&gt; &lt;/span&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Verdana"&gt;The sample data : &lt;/font&gt;      &lt;table bordercolor="#000000" bordercolordark="#c0c0c0" width="341" align="center" bgcolor="#ffffff" bordercolorlight="#808080" border="1"&gt;&lt;tbody&gt;         &lt;tr bgcolor="#c6c3b5"&gt;           &lt;td width="39"&gt;&lt;strong&gt;&lt;font face="Verdana"&gt;ID&lt;/font&gt;&lt;/strong&gt;&lt;/td&gt;            &lt;td width="107"&gt;&lt;strong&gt;&lt;font face="Verdana"&gt;FName&lt;/font&gt;&lt;/strong&gt;&lt;/td&gt;            &lt;td width="90"&gt;&lt;strong&gt;&lt;font face="Verdana"&gt;Zone&lt;/font&gt;&lt;/strong&gt;&lt;/td&gt;            &lt;td width="103"&gt;&lt;strong&gt;&lt;font face="Verdana"&gt;Sale&lt;/font&gt;&lt;/strong&gt;&lt;/td&gt;         &lt;/tr&gt;          &lt;tr&gt;           &lt;td width="39"&gt;&lt;font face="Verdana"&gt;1&lt;/font&gt;&lt;/td&gt;            &lt;td width="107"&gt;&lt;font face="Verdana"&gt;Mangal&lt;/font&gt;&lt;/td&gt;            &lt;td width="90"&gt;&lt;font face="Verdana"&gt;East&lt;/font&gt;&lt;/td&gt;            &lt;td width="103"&gt;&lt;font face="Verdana"&gt;20&lt;/font&gt;&lt;/td&gt;         &lt;/tr&gt;          &lt;tr&gt;           &lt;td width="39"&gt;&lt;font face="Verdana"&gt;2&lt;/font&gt;&lt;/td&gt;            &lt;td width="107"&gt;&lt;font face="Verdana"&gt;Mangal&lt;/font&gt;&lt;/td&gt;            &lt;td width="90"&gt;&lt;font face="Verdana"&gt;East&lt;/font&gt;&lt;/td&gt;            &lt;td width="103"&gt;&lt;font face="Verdana"&gt;150&lt;/font&gt;&lt;/td&gt;         &lt;/tr&gt;          &lt;tr&gt;           &lt;td width="39"&gt;&lt;font face="Verdana"&gt;3&lt;/font&gt;&lt;/td&gt;            &lt;td width="107"&gt;&lt;font face="Verdana"&gt;Mangal&lt;/font&gt;&lt;/td&gt;            &lt;td width="90"&gt;&lt;font face="Verdana"&gt;West&lt;/font&gt;&lt;/td&gt;            &lt;td width="103"&gt;&lt;font face="Verdana"&gt;50&lt;/font&gt;&lt;/td&gt;         &lt;/tr&gt;          &lt;tr&gt;           &lt;td width="39"&gt;&lt;font face="Verdana"&gt;4&lt;/font&gt;&lt;/td&gt;            &lt;td width="107"&gt;&lt;font face="Verdana"&gt;Ram&lt;/font&gt;&lt;/td&gt;            &lt;td width="90"&gt;&lt;font face="Verdana"&gt;East&lt;/font&gt;&lt;/td&gt;            &lt;td width="103"&gt;&lt;font face="Verdana"&gt;45&lt;/font&gt;&lt;/td&gt;         &lt;/tr&gt;          &lt;tr&gt;           &lt;td width="39"&gt;&lt;font face="Verdana"&gt;5&lt;/font&gt;&lt;/td&gt;            &lt;td width="107"&gt;&lt;font face="Verdana"&gt;Ram&lt;/font&gt;&lt;/td&gt;            &lt;td width="90"&gt;&lt;font face="Verdana"&gt;NULL&lt;/font&gt;&lt;/td&gt;            &lt;td width="103"&gt;&lt;font face="Verdana"&gt;80&lt;/font&gt;&lt;/td&gt;         &lt;/tr&gt;          &lt;tr&gt;           &lt;td width="39"&gt;&lt;font face="Verdana"&gt;6&lt;/font&gt;&lt;/td&gt;            &lt;td width="107"&gt;&lt;font face="Verdana"&gt;Ram&lt;/font&gt;&lt;/td&gt;            &lt;td width="90"&gt;&lt;font face="Verdana"&gt;NULL&lt;/font&gt;&lt;/td&gt;            &lt;td width="103"&gt;&lt;font face="Verdana"&gt;40&lt;/font&gt;&lt;/td&gt;         &lt;/tr&gt;          &lt;tr&gt;           &lt;td width="39"&gt;&lt;font face="Verdana"&gt;7&lt;/font&gt;&lt;/td&gt;            &lt;td width="107"&gt;&lt;font face="Verdana"&gt;Sachin&lt;/font&gt;&lt;/td&gt;            &lt;td width="90"&gt;&lt;font face="Verdana"&gt;West&lt;/font&gt;&lt;/td&gt;            &lt;td width="103"&gt;&lt;font face="Verdana"&gt;50&lt;/font&gt;&lt;/td&gt;         &lt;/tr&gt;          &lt;tr&gt;           &lt;td width="39"&gt;&lt;font face="Verdana"&gt;8&lt;/font&gt;&lt;/td&gt;            &lt;td width="107"&gt;&lt;font face="Verdana"&gt;Sachin&lt;/font&gt;&lt;/td&gt;            &lt;td width="90"&gt;&lt;font face="Verdana"&gt;West&lt;/font&gt;&lt;/td&gt;            &lt;td width="103"&gt;&lt;font face="Verdana"&gt;40&lt;/font&gt;&lt;/td&gt;         &lt;/tr&gt;       &lt;/tbody&gt;&lt;/table&gt;   &lt;/p&gt;    &lt;p&gt;&lt;font face="Verdana"&gt;And here is &lt;strong&gt;the expected output&lt;/strong&gt; :&lt;/font&gt;       &lt;table bordercolor="#000000" bordercolordark="#c0c0c0" width="324" align="center" bgcolor="#ffffff" bordercolorlight="#808080" border="1"&gt;&lt;tbody&gt;         &lt;tr bgcolor="#c6c3b5"&gt;           &lt;td width="117"&gt;&lt;strong&gt;&lt;font face="Verdana"&gt;FName&lt;/font&gt;&lt;/strong&gt;&lt;/td&gt;            &lt;td width="97"&gt;&lt;strong&gt;&lt;font face="Verdana"&gt;Zone&lt;/font&gt;&lt;/strong&gt;&lt;/td&gt;            &lt;td width="108"&gt;&lt;strong&gt;&lt;font face="Verdana"&gt;Total&lt;/font&gt;&lt;/strong&gt;&lt;/td&gt;         &lt;/tr&gt;          &lt;tr&gt;           &lt;td width="120"&gt;&lt;font face="Verdana"&gt;Mangal&lt;/font&gt;&lt;/td&gt;            &lt;td width="99"&gt;&lt;font face="Verdana"&gt;East&lt;/font&gt;&lt;/td&gt;            &lt;td width="109"&gt;&lt;font face="Verdana"&gt;170&lt;/font&gt;&lt;/td&gt;         &lt;/tr&gt;          &lt;tr&gt;           &lt;td width="121"&gt;&lt;font face="Verdana"&gt;Mangal&lt;/font&gt;&lt;/td&gt;            &lt;td width="100"&gt;&lt;font face="Verdana"&gt;West&lt;/font&gt;&lt;/td&gt;            &lt;td width="109"&gt;&lt;font face="Verdana"&gt;50&lt;/font&gt;&lt;/td&gt;         &lt;/tr&gt;          &lt;tr&gt;           &lt;td width="121"&gt;&lt;font face="Verdana"&gt;Mangal&lt;/font&gt;&lt;/td&gt;            &lt;td width="101"&gt;&lt;font face="Verdana"&gt;All Zone&lt;/font&gt;&lt;/td&gt;            &lt;td width="109"&gt;&lt;font face="Verdana"&gt;220&lt;/font&gt;&lt;/td&gt;         &lt;/tr&gt;          &lt;tr&gt;           &lt;td width="120"&gt;&lt;font face="Verdana"&gt;Ram&lt;/font&gt;&lt;/td&gt;            &lt;td width="102"&gt;&lt;font face="Verdana"&gt;East&lt;/font&gt;&lt;/td&gt;            &lt;td width="108"&gt;&lt;font face="Verdana"&gt;45&lt;/font&gt;&lt;/td&gt;         &lt;/tr&gt;          &lt;tr&gt;           &lt;td width="121"&gt;&lt;font face="Verdana"&gt;Ram&lt;/font&gt;&lt;/td&gt;            &lt;td width="102"&gt;&lt;font face="Verdana"&gt;Unknown&lt;/font&gt;&lt;/td&gt;            &lt;td width="108"&gt;&lt;font face="Verdana"&gt;120&lt;/font&gt;&lt;/td&gt;         &lt;/tr&gt;          &lt;tr&gt;           &lt;td width="121"&gt;&lt;font face="Verdana"&gt;Ram&lt;/font&gt;&lt;/td&gt;            &lt;td width="102"&gt;&lt;font face="Verdana"&gt;All Zone&lt;/font&gt;&lt;/td&gt;            &lt;td width="108"&gt;&lt;font face="Verdana"&gt;165&lt;/font&gt;&lt;/td&gt;         &lt;/tr&gt;          &lt;tr&gt;           &lt;td width="121"&gt;&lt;font face="Verdana"&gt;Sachin&lt;/font&gt;&lt;/td&gt;            &lt;td width="102"&gt;&lt;font face="Verdana"&gt;West&lt;/font&gt;&lt;/td&gt;            &lt;td width="108"&gt;&lt;font face="Verdana"&gt;90&lt;/font&gt;&lt;/td&gt;         &lt;/tr&gt;          &lt;tr&gt;           &lt;td width="121"&gt;&lt;font face="Verdana"&gt;Sachin&lt;/font&gt;&lt;/td&gt;            &lt;td width="102"&gt;&lt;font face="Verdana"&gt;All Zone&lt;/font&gt;&lt;/td&gt;            &lt;td width="108"&gt;&lt;font face="Verdana"&gt;90&lt;/font&gt;&lt;/td&gt;         &lt;/tr&gt;          &lt;tr&gt;           &lt;td width="121"&gt;&lt;font face="Verdana"&gt;&lt;strong&gt;All Names&lt;/strong&gt;&lt;/font&gt;&lt;/td&gt;            &lt;td width="102"&gt;&lt;font face="Verdana"&gt;&lt;strong&gt;All Zone&lt;/strong&gt;&lt;/font&gt;&lt;/td&gt;            &lt;td width="108"&gt;&lt;strong&gt;475&lt;/strong&gt;&lt;/td&gt;         &lt;/tr&gt;       &lt;/tbody&gt;&lt;/table&gt;   &lt;/p&gt;    &lt;p&gt;&lt;font face="Verdana"&gt;As you can see in the expected output, all the FNames are ordered in ascending order and their total SUM is at the bottom, same for the Zone column.&amp;#160; For ordering the result in that way just use the GROUPING(column_name) in ORDER BY just before the column_name.&amp;#160; See the following query, esp the &lt;strong&gt;ORDER BY&lt;/strong&gt; clause:&lt;/font&gt;       &lt;table cellspacing="0" cellpadding="0" width="100%" bgcolor="#f4f4f4"&gt;&lt;tbody&gt;         &lt;tr&gt;           &lt;th align="left"&gt;&lt;font face="Verdana"&gt;&lt;/font&gt;&lt;/th&gt;            &lt;th align="right"&gt;&lt;font face="Verdana"&gt;&lt;tabindex  ="0" bgcolor="#f6f6f2"&gt;&lt;/span&gt;&lt;/font&gt;&lt;/th&gt;         &lt;/tr&gt;          &lt;tr&gt;           &lt;td colspan="2"&gt;             &lt;p&gt;&lt;font face="Verdana" size="1"&gt;&lt;font color="#0000ff"&gt;SELECT&lt;/font&gt; &lt;font color="#0000ff"&gt;CASE&lt;/font&gt; GROUPING(fname)                   &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;font color="#0000ff"&gt;WHEN&lt;/font&gt; 1 THEN 'All Names'                   &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;font color="#0000ff"&gt;ELSE&lt;/font&gt; ISNULL(Fname, 'Unknown')                   &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;font color="#0000ff"&gt;END&lt;/font&gt; AS FName,                   &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;font color="#0000ff"&gt;CASE&lt;/font&gt; GROUPING(Zone)                   &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;font color="#0000ff"&gt;WHEN&lt;/font&gt; 1 THEN 'All Zone'                   &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; ELSE ISNULL(Zone, 'Unknown') END as Zone,                   &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; SUM(Sale) AS Total                   &lt;br /&gt;FROM Sales                   &lt;br /&gt;GROUP BY Fname, Zone WITH ROLLUP                   &lt;br /&gt;&lt;strong&gt;ORDER BY&amp;#160; GROUPING(fname),FName,GROUPING(Zone),Zone&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;           &lt;/td&gt;         &lt;/tr&gt;       &lt;/tbody&gt;&lt;/table&gt;   &lt;/p&gt;    &lt;p&gt;&lt;font face="Verdana"&gt;Simple, isn’t it?&amp;#160; Now you don’t need to write a CASE statement in ORDER BY, just use the GROUPING function.&amp;#160; If you will be doing the ORDERING in application layer, then you will need to get in the GROUPING(fname) and GROUPING(zone) column in the SELECT list as well.&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font face="Verdana"&gt;Mangal&lt;/font&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8585649008635531444-7809054988438827972?l=mangalpardeshi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mangalpardeshi.blogspot.com/feeds/7809054988438827972/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://mangalpardeshi.blogspot.com/2009/08/rollup-and-order-by.html#comment-form' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8585649008635531444/posts/default/7809054988438827972'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8585649008635531444/posts/default/7809054988438827972'/><link rel='alternate' type='text/html' href='http://mangalpardeshi.blogspot.com/2009/08/rollup-and-order-by.html' title='ROLLUP and ORDER BY'/><author><name>Mangal Pardeshi</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_weIRgO4yuTo/SzSmWMjAwJI/AAAAAAAAAKs/DgpUWlN5KZY/S220/y1m_Ev9g6OBzqJR8Z6lhdhzgWZ-bl8WwBuhHkrErOHngc14s42YU23gTajpglsbRjABGlnSHh-wUfbGievoo7soxuBY9uSp1K1I.jpg'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8585649008635531444.post-1287317450699704557</id><published>2009-08-07T22:27:00.001+05:30</published><updated>2009-08-10T11:24:40.179+05:30</updated><title type='text'>TSQL Challenges</title><content type='html'>&lt;p&gt;&lt;font face="Verdana"&gt;I just like to thank Jacob Sebastian who is a fellow SQL Server MVP and founder of the &lt;/font&gt;&lt;a href="http://www.tsqlchallenges.com"&gt;&lt;font face="Verdana"&gt;www.tsqlchallenges.com&lt;/font&gt;&lt;/a&gt;&lt;font face="Verdana"&gt; for offering me an opportunity to be part of the TSQL Challenges team. I’m really happy to be a part of a team consists of people like Jacob, Alejandro Messa, Peter Larsson (all 3 are SQL Server MVPs), Adam Haines (a moderator of MSDN SQL Server forums), Rui Carvalho and many other talented people.&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Verdana"&gt;Here is a brief description about TSQL Challenges site: TSQL Challenges constantly aim at helping people to enhance their SET based query writing skills. With TSQL Challenges, sometimes you learn stuff that you don’t know, sometimes you will see better ways of doing stuff that you already know and sometimes you will be able to use your expertise to help others to learn TSQL querying skills. Even SQL Server experts love TSQL Challenges because every challenge inspires them to come up with new better ways of solving the given problem.&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Verdana"&gt;&lt;b&gt;The Mission: &lt;/b&gt;The entire “TSQL Challenge” team will focus on fulfilling our mission; “helping people to enhance their SET based query writing skills”. We will come up with more and more interesting TSQL Challenges that encourages you to look for alternate logics and inspires you to think outside the regular thought process. &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Verdana"&gt;I would like to invite my readers to participate in a TSQL Challenge - &lt;/font&gt;&lt;a href="http://www.tsqlchallenges.com"&gt;&lt;font face="Verdana"&gt;www.tsqlchallenges.com&lt;/font&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Verdana"&gt;Also like to thank Jacob again for a warm welcome and kind word he has put in introduction post - &lt;/font&gt;&lt;a href="http://beyondrelational.com/blogs/tc/archive/2009/08/05/introducing-new-tsql-challenge-team-members.aspx"&gt;&lt;font face="Verdana"&gt;Introducing new “TSQL Challenge” Team Members&lt;/font&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Verdana"&gt;So I hope I will come with up some interesting SQL puzzles that will challenge your SQL skills and also you will a fun solving them.&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Verdana"&gt;Mangal&lt;/font&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8585649008635531444-1287317450699704557?l=mangalpardeshi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mangalpardeshi.blogspot.com/feeds/1287317450699704557/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://mangalpardeshi.blogspot.com/2009/08/tsql-challenges.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8585649008635531444/posts/default/1287317450699704557'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8585649008635531444/posts/default/1287317450699704557'/><link rel='alternate' type='text/html' href='http://mangalpardeshi.blogspot.com/2009/08/tsql-challenges.html' title='TSQL Challenges'/><author><name>Mangal Pardeshi</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_weIRgO4yuTo/SzSmWMjAwJI/AAAAAAAAAKs/DgpUWlN5KZY/S220/y1m_Ev9g6OBzqJR8Z6lhdhzgWZ-bl8WwBuhHkrErOHngc14s42YU23gTajpglsbRjABGlnSHh-wUfbGievoo7soxuBY9uSp1K1I.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8585649008635531444.post-7925914645729028720</id><published>2009-08-04T15:40:00.001+05:30</published><updated>2009-08-04T15:40:38.384+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Downloads'/><title type='text'>SQL Server 2008 Service Pack (SP) 1 on Microsoft Update as a Required Automatic Update</title><content type='html'>&lt;p&gt;&lt;font face="Verdana"&gt;SQL Server 2008 Service Pack 1 will soon be available through Automatic Update starting from September.&amp;#160; &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Verdana"&gt;For the latest information you can read it from SQL Server Setup blog - &lt;a href="http://blogs.msdn.com/petersad/archive/2009/07/30/sql-server-2008-service-pack-sp-1-on-microsoft-update-as-a-required-automatic-update.aspx"&gt;SQL Server 2008 Service Pack (SP) 1 on Microsoft Update as a Required Automatic Update&lt;/a&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Verdana"&gt;For better understanding of Automatic Update see - &lt;/font&gt;&lt;a href="http://www.microsoft.com/windows/downloads/windowsupdate/automaticupdate.mspx"&gt;&lt;font face="Verdana"&gt;Update Your PC Automatically&lt;/font&gt;&lt;/a&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8585649008635531444-7925914645729028720?l=mangalpardeshi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mangalpardeshi.blogspot.com/feeds/7925914645729028720/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://mangalpardeshi.blogspot.com/2009/08/sql-server-2008-service-pack-sp-1-on.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8585649008635531444/posts/default/7925914645729028720'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8585649008635531444/posts/default/7925914645729028720'/><link rel='alternate' type='text/html' href='http://mangalpardeshi.blogspot.com/2009/08/sql-server-2008-service-pack-sp-1-on.html' title='SQL Server 2008 Service Pack (SP) 1 on Microsoft Update as a Required Automatic Update'/><author><name>Mangal Pardeshi</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_weIRgO4yuTo/SzSmWMjAwJI/AAAAAAAAAKs/DgpUWlN5KZY/S220/y1m_Ev9g6OBzqJR8Z6lhdhzgWZ-bl8WwBuhHkrErOHngc14s42YU23gTajpglsbRjABGlnSHh-wUfbGievoo7soxuBY9uSp1K1I.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8585649008635531444.post-114315194079112410</id><published>2009-07-22T13:50:00.001+05:30</published><updated>2009-07-22T13:52:53.093+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='FAQ'/><title type='text'>UNION Vs UNION ALL</title><content type='html'>&lt;p&gt;&lt;font face="Verdana"&gt;Many times you may have heard this “Use UNION ALL over UNION whenever possible.”&amp;#160; The question arises - why?&amp;#160; To answer this question in one statement&amp;#160; - UNION ALL performs faster compare to UNION.&amp;#160; &lt;br /&gt;Then again question arises - Why UNION ALL performs faster?&amp;#160; Also - Why &lt;strong&gt;whenever&lt;/strong&gt; possible, why not &lt;strong&gt;always&lt;/strong&gt;?&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Verdana"&gt;Let me answer the 2nd question 1st – Though both UNION and UNION ALL combines the results of two or more queries into a single result set, there is fundamental difference between these two.&amp;#160; UNION returns only DISTINCT result set, while UNION ALL returns basically all rows available, this includes duplicates.&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Verdana"&gt;Lets see the following example: &lt;/font&gt;    &lt;table cellspacing="0" cellpadding="0" width="100%" bgcolor="#f4f4f4"&gt;&lt;tbody&gt;       &lt;tr&gt;         &lt;th align="left"&gt;&lt;font face="Verdana"&gt;&lt;/font&gt;&lt;/th&gt;          &lt;th align="right"&gt;&lt;font face="Verdana"&gt;&lt;tabindex bgcolor="#f6f6f2" ="0"&gt;&lt;/span&gt;&lt;/font&gt;&lt;/th&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td colspan="2"&gt;           &lt;p&gt;&lt;font face="Verdana" size="1"&gt;&lt;font color="#008000"&gt;-- create 2 tables A and B.                 &lt;br /&gt;&lt;/font&gt;&lt;font color="#0000ff"&gt;CREATE TABLE&lt;/font&gt; A                 &lt;br /&gt;(                 &lt;br /&gt;ID &lt;font color="#0000ff"&gt;INT&lt;/font&gt;,                 &lt;br /&gt;Names &lt;font color="#0000ff"&gt;VARCHAR&lt;/font&gt;(10)                 &lt;br /&gt;)                 &lt;br /&gt;GO                 &lt;br /&gt;&lt;font color="#0000ff"&gt;CREATE TABLE&lt;/font&gt; B                 &lt;br /&gt;(                 &lt;br /&gt;ID &lt;font color="#0000ff"&gt;INT&lt;/font&gt;,                 &lt;br /&gt;Names &lt;font color="#0000ff"&gt;VARCHAR&lt;/font&gt;(10)                 &lt;br /&gt;)                 &lt;br /&gt;GO                 &lt;br /&gt;&lt;font color="#008000"&gt;-- insert data into table A&lt;/font&gt;                 &lt;br /&gt;&lt;font color="#0000ff"&gt;INSERT INTO&lt;/font&gt; A &lt;font color="#0000ff"&gt;VALUES&lt;/font&gt;(1,&lt;font color="#ff0000"&gt;'Mangal'&lt;/font&gt;);                 &lt;br /&gt;&lt;font color="#0000ff"&gt;INSERT INTO&lt;/font&gt; A &lt;font color="#0000ff"&gt;VALUES&lt;/font&gt;(5,&lt;font color="#ff0000"&gt;'Sham'&lt;/font&gt;);                 &lt;br /&gt;&lt;font color="#0000ff"&gt;INSERT INTO&lt;/font&gt; A &lt;font color="#0000ff"&gt;VALUES&lt;/font&gt;(2,&lt;font color="#ff0000"&gt;'Ram'&lt;/font&gt;); &lt;/font&gt;&lt;/p&gt;            &lt;p&gt;&lt;font face="Verdana" size="1"&gt;&lt;font color="#008000"&gt;-- insert data into table B                  &lt;br /&gt;&lt;/font&gt;&lt;font color="#0000ff"&gt;INSERT INTO&lt;/font&gt; B VALUES(2,&lt;font color="#ff0000"&gt;'Ram'&lt;/font&gt;);                 &lt;br /&gt;&lt;font color="#0000ff"&gt;INSERT INTO&lt;/font&gt; B VALUES(3,&lt;font color="#ff0000"&gt;'Shiv'&lt;/font&gt;);                 &lt;br /&gt;&lt;font color="#0000ff"&gt;INSERT INTO&lt;/font&gt; B VALUES(4,&lt;font color="#ff0000"&gt;'John'&lt;/font&gt;); &lt;/font&gt;&lt;/p&gt;            &lt;p&gt;&lt;font face="Verdana" size="1"&gt;&lt;font color="#008000"&gt;-- test sample data                  &lt;br /&gt;&lt;/font&gt;&lt;font color="#0000ff"&gt;SELECT&lt;/font&gt; id, Names                 &lt;br /&gt;&lt;font color="#0000ff"&gt;FROM&lt;/font&gt; A                 &lt;br /&gt;GO                 &lt;br /&gt;&lt;font color="#0000ff"&gt;SELECT&lt;/font&gt; id, Names                 &lt;br /&gt;&lt;font color="#0000ff"&gt;FROM&lt;/font&gt; B                 &lt;br /&gt;GO&lt;/font&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;     &lt;/tbody&gt;&lt;/table&gt; &lt;/p&gt;  &lt;p&gt;&lt;font size="2"&gt;&lt;font face="Verdana"&gt;&lt;font color="#333333"&gt;Here is how the data of the table A and B looks like :&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/_weIRgO4yuTo/SmbLsiHa9bI/AAAAAAAAAJY/F-ThauE5grA/s1600-h/samle%5B9%5D.jpg"&gt;&lt;img title="samle" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="204" alt="samle" src="http://lh5.ggpht.com/_weIRgO4yuTo/SmbLuGwiivI/AAAAAAAAAJc/2JD9AE06NXY/samle_thumb%5B3%5D.jpg?imgmax=800" width="337" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Verdana"&gt;Note that id=2 and names=Ram is there in both the tables.&amp;#160; That will help us in understanding the difference between UNION and UNION ALL.&amp;#160; Now lets execute the following 2 queries, 1st is with UNION and 2nd is with UNION ALL.&lt;/font&gt; –     &lt;table cellspacing="0" cellpadding="0" width="100%" bgcolor="#f4f4f4"&gt;&lt;tbody&gt;       &lt;tr&gt;         &lt;th align="left"&gt;&lt;font face="Verdana"&gt;&lt;/font&gt;&lt;/th&gt;          &lt;th align="right"&gt;&lt;font face="Verdana"&gt;&lt;tabindex bgcolor="#f6f6f2" ="0"&gt;&lt;/span&gt;&lt;/font&gt;&lt;/th&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td colspan="2"&gt;           &lt;p&gt;&lt;font face="Verdana" size="1"&gt;&lt;font color="#008000"&gt;-- with UNION                  &lt;br /&gt;&lt;/font&gt;&lt;font color="#0000ff"&gt;SELECT&lt;/font&gt; id, Names                 &lt;br /&gt;&lt;font color="#0000ff"&gt;FROM&lt;/font&gt; A                 &lt;br /&gt;&lt;font color="#0000ff"&gt;UNION&lt;/font&gt;                 &lt;br /&gt;&lt;font color="#0000ff"&gt;SELECT&lt;/font&gt; id, Names                 &lt;br /&gt;&lt;font color="#0000ff"&gt;FROM&lt;/font&gt; B                 &lt;br /&gt;GO &lt;/font&gt;              &lt;br /&gt;&lt;font color="#008000"&gt;&lt;font face="Verdana" size="1"&gt;-- with UNION ALL&lt;/font&gt;                 &lt;br /&gt;&lt;/font&gt;&lt;font face="Verdana" size="1"&gt;&lt;font color="#0000ff"&gt;SELECT&lt;/font&gt; id, Names                 &lt;br /&gt;&lt;font color="#0000ff"&gt;FROM&lt;/font&gt; A                 &lt;br /&gt;&lt;font color="#0000ff"&gt;UNION ALL                  &lt;br /&gt;SELECT&lt;/font&gt; id, Names                 &lt;br /&gt;&lt;font color="#0000ff"&gt;FROM&lt;/font&gt; B                 &lt;br /&gt;GO&lt;/font&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;     &lt;/tbody&gt;&lt;/table&gt; &lt;/p&gt;  &lt;p&gt;&lt;font size="2"&gt;&lt;font face="Verdana"&gt;The result:&amp;#160; &lt;/font&gt;&lt;/font&gt;&lt;/p&gt; &lt;a href="http://lh4.ggpht.com/_weIRgO4yuTo/SmbLuxuWOZI/AAAAAAAAAJg/IczmJMaMc5g/s1600-h/Result%5B16%5D.jpg"&gt;&lt;img title="Result" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="226" alt="Result" src="http://lh6.ggpht.com/_weIRgO4yuTo/SmbLviCtsNI/AAAAAAAAAJk/RZGF0mV5ulo/Result_thumb%5B8%5D.jpg?imgmax=800" width="354" border="0" /&gt;&lt;/a&gt;   &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Verdana"&gt;&lt;strong&gt;Observations :&lt;/strong&gt;&lt;/font&gt;     &lt;br /&gt;&lt;font face="Verdana"&gt;1. 1st query with UNION returns 5 rows, and UNION ALL query returns 6 rows.&lt;/font&gt;     &lt;br /&gt;&lt;font face="Verdana"&gt;2.&lt;/font&gt;&amp;#160; &lt;font face="Verdana"&gt;Row for ID=2(for Ram) appears twice in UNION ALL result set.&lt;/font&gt;     &lt;br /&gt;&lt;font face="Verdana"&gt;3. Result set for UNION is sorted on ID column.&amp;#160; For UNION ALL all the rows of table A appeared 1st followed by rows of table B(no sort).&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Verdana"&gt;As you can see, UNION eliminates any duplicate rows from final result set while UNION ALL returns basically all rows available including duplicates.&amp;#160; That is the cause of UNION being slow.&amp;#160; For each row UNION operator checks whether the entire row exists in previous rows or not.&amp;#160; And for making this validation UNION by default 1st sort the result set on the 1st available column of the result set.&amp;#160; In our example UNION has sorted the result set on ID column even though I haven’t specified any ORDER BY clause.&amp;#160; If you see Name “Sham” (which is in table A) appeared last in the UNION result because it has the highest id 5 while it appeared on 2nd row of UNION ALL result.&amp;#160; A look at the query execution plan can help you visualizing it better :&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/_weIRgO4yuTo/SmbLwszFmiI/AAAAAAAAAJo/JEYQkEakrX4/s1600-h/plan%5B6%5D.jpg"&gt;&lt;img title="plan" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="338" alt="plan" src="http://lh4.ggpht.com/_weIRgO4yuTo/SmbLxVJopQI/AAAAAAAAAJs/e1ykraZv4WA/plan_thumb%5B4%5D.jpg?imgmax=800" width="504" border="0" /&gt;&lt;/a&gt;&amp;#160; &lt;/p&gt;  &lt;p&gt;&lt;font face="Verdana"&gt;As you can see cost of the UNION query is 73% compare to 27% for UNION ALL.&amp;#160; And measure reason being the “&lt;strong&gt;Distinct Sort&lt;/strong&gt;” that UNION operator performs &lt;strong&gt;to sort and to eliminate the duplicate rows&lt;/strong&gt;.&amp;#160; While UNION ALL doesn’t really bother about sort and duplicates.&amp;#160; And that is why UNION is slow compare to UNION ALL.&amp;#160; &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Verdana"&gt;So again going back to question – why not use UNION ALL always?&amp;#160; And one more question to be added - when to use which one?&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Verdana"&gt;- You should&amp;#160; use UNION when you don’t want the duplicates in your final result set, and you are not sure (or may be you are sure) that duplicate records exists in the different queries involved in the UNION.&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Verdana"&gt;- You should be using UNION ALL when :&lt;/font&gt;     &lt;br /&gt;&lt;font face="Verdana"&gt;1.&amp;#160; You are not bothered about the duplicate rows in the result.      &lt;br /&gt;2.&amp;#160; You are sure there are no duplicates in different queries involved in UNION.&amp;#160; e.g. if you are combining results from 2 or more different years(sales orders) with each query reruns result for individual year with some unique id for each row.&amp;#160; Or combining result for 2 or more different departments.&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Verdana"&gt;All this long I’m talking about UNION and UNION ALL as if they are 2 different things all together.&amp;#160; Are they?&amp;#160; Not exactly.&amp;#160; Reason I’m saying this because, when one of my friend asked me about UNION ALL and I advised him to look into &lt;a href="http://msdn.microsoft.com/en-us/library/ms130214.aspx"&gt;the Books online&lt;/a&gt;, and he came back complaining me that “books online doesn’t say anything about UNION ALL”.&amp;#160; Reason – he was thinking that Books online must be having some separate section dedicated to UNION ALL, as if it is different from UNION. &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Verdana"&gt;Actually, the &lt;strong&gt;ALL&lt;/strong&gt; is just an optional argument in the UNION syntax.&amp;#160; &lt;/font&gt;&lt;font face="Verdana"&gt;For more on UNION you can refer the books online - &lt;a title="http://msdn.microsoft.com/en-us/library/ms180026.aspx" href="http://msdn.microsoft.com/en-us/library/ms180026.aspx"&gt;http://msdn.microsoft.com/en-us/library/ms180026.aspx&lt;/a&gt;.&amp;#160;&amp;#160; &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Verdana"&gt;Mangal&lt;/font&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8585649008635531444-114315194079112410?l=mangalpardeshi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mangalpardeshi.blogspot.com/feeds/114315194079112410/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://mangalpardeshi.blogspot.com/2009/07/union-vs-union-all.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8585649008635531444/posts/default/114315194079112410'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8585649008635531444/posts/default/114315194079112410'/><link rel='alternate' type='text/html' href='http://mangalpardeshi.blogspot.com/2009/07/union-vs-union-all.html' title='UNION Vs UNION ALL'/><author><name>Mangal Pardeshi</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_weIRgO4yuTo/SzSmWMjAwJI/AAAAAAAAAKs/DgpUWlN5KZY/S220/y1m_Ev9g6OBzqJR8Z6lhdhzgWZ-bl8WwBuhHkrErOHngc14s42YU23gTajpglsbRjABGlnSHh-wUfbGievoo7soxuBY9uSp1K1I.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh5.ggpht.com/_weIRgO4yuTo/SmbLuGwiivI/AAAAAAAAAJc/2JD9AE06NXY/s72-c/samle_thumb%5B3%5D.jpg?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8585649008635531444.post-8584316395014414382</id><published>2009-07-03T11:21:00.001+05:30</published><updated>2009-07-17T13:45:14.465+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='FAQ'/><title type='text'>DELETE Vs TRUNCATE</title><content type='html'>&lt;p&gt;&lt;font face="Verdana"&gt;I know this has been done many times, but still here is something from my side. What is the difference between TRUNCATE and DELETE?&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Verdana"&gt;Well one reason I wanted to write this post was, on so many of the blogs, forum threads I keep seeing statements like “TRUNCATE cannot be rolled back”. This is also one of the most frequently asked questions in Interviews.&amp;#160; And since my target audience is people who are just started learning SQL (and NOT SQL Experts), I thought I should write this one. &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Verdana"&gt;Instead of just focusing on ROLLBCAK I will try to cover most of the points related with TRUNCATE and DELETE.&lt;/font&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;     &lt;p&gt;&lt;font face="Verdana"&gt;&lt;strong&gt;Remove Data&amp;#160; :&lt;/strong&gt; First thing first, both can be used to remove the rows from table.&amp;#160; &lt;br /&gt;But a DELETE can be used to remove the rows not only from a Table but also from a VIEW or the result of an OPENROWSET or OPENQUERY subject to provider capabilities. &lt;/font&gt;&lt;/p&gt;   &lt;/li&gt; &lt;/ul&gt;  &lt;ul&gt;   &lt;li&gt;     &lt;p&gt;&lt;font face="Verdana"&gt;&lt;strong&gt;FROM Clause :&lt;/strong&gt; With DELETE you can also delete rows from one table/view/&lt;em&gt;rowset_function_limited &lt;/em&gt;&lt;em&gt;&lt;i&gt;based&lt;/i&gt;&lt;/em&gt; on rows from another table by using another FROM clause.&amp;#160; In that FROM clause you can also write normal JOIN conditions.&amp;#160; Actually you can create a DELETE statement from a SELECT statement that doesn’t contain any aggregate functions by replacing SELECT with DELETE and removing column names.&amp;#160; &lt;br /&gt;With TRUNCATE you can’t do that. &lt;/font&gt;&lt;/p&gt;   &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;font face="Verdana"&gt;&lt;/font&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;     &lt;p&gt;&lt;font face="Verdana"&gt;&lt;strong&gt;WHERE :&lt;/strong&gt; A TRUNCATE cannot have WHERE Conditions, but a DELETE can.&amp;#160; That means with TRUNCATE you can’t delete a specific row or specific group of rows.           &lt;br /&gt;TRUNCATE TABLE is similar to the DELETE statement with no WHERE clause.&lt;/font&gt;&lt;/p&gt;   &lt;/li&gt; &lt;/ul&gt;  &lt;ul&gt;   &lt;li&gt;     &lt;p&gt;&lt;font face="Verdana"&gt;&lt;strong&gt;Performance : &lt;/strong&gt;&lt;/font&gt;&lt;font face="Verdana"&gt;TRUNCATE TABLE is faster and uses fewer system and transaction log resources.          &lt;br /&gt;And one of the reason is locks used by either statements. The DELETE statement is executed using a row lock, each row in the table is locked for deletion. TRUNCATE TABLE always locks the table and page but not each row.&lt;/font&gt;&lt;/p&gt;   &lt;/li&gt; &lt;/ul&gt;  &lt;ul&gt;   &lt;li&gt;     &lt;p&gt;&lt;font face="Verdana"&gt;&lt;strong&gt;Transaction log : &lt;/strong&gt;&lt;/font&gt;&lt;font face="Verdana"&gt;DELETE statement removes rows one at a time and makes individual entries in the transaction log for each row.&amp;#160; &lt;br /&gt;TRUNCATE TABLE removes the data by deallocating the data pages used to store the table data and records only the page deallocations in the transaction log.&lt;/font&gt;&lt;/p&gt;   &lt;/li&gt; &lt;/ul&gt;  &lt;ul&gt;   &lt;li&gt;     &lt;p&gt;&lt;font face="Verdana"&gt;&lt;strong&gt;Pages : &lt;/strong&gt;&lt;/font&gt;&lt;font face="Verdana"&gt;After a DELETE statement is executed, the table can still contain empty pages.          &lt;br /&gt;TRUNCATE removes the data by deallocating the data pages used to store the table data.&lt;/font&gt;&lt;/p&gt;   &lt;/li&gt; &lt;/ul&gt;  &lt;ul&gt;   &lt;li&gt;     &lt;p&gt;&lt;font face="Verdana"&gt;&lt;strong&gt;Trigger : &lt;/strong&gt;&lt;/font&gt;&lt;font face="Verdana"&gt;TRUNCATE does not activate the delete triggers on the table.&amp;#160; So you must be very careful while using TRUNCATE.&amp;#160; One should never use a TRUNCATE if delete Trigger is defined on the table to do some automatic cleanup or logging action when rows are deleted.&lt;/font&gt;&lt;/p&gt;   &lt;/li&gt; &lt;/ul&gt;  &lt;ul&gt;   &lt;li&gt;     &lt;p&gt;&lt;font face="Verdana"&gt;&lt;strong&gt;Identity Column : &lt;/strong&gt;&lt;/font&gt;&lt;font face="Verdana"&gt;If the table contains an identity column, the counter for that column is reset to the seed value defined for the column.&amp;#160; If no seed was defined, the default value 1 is used. &lt;/font&gt;&lt;font face="Verdana"&gt;         &lt;br /&gt;DELETE doesn’t reset the identity counter.&amp;#160; So if you want to retain the identity counter, use DELETE instead.&lt;/font&gt;&lt;/p&gt;   &lt;/li&gt; &lt;/ul&gt;  &lt;ul&gt;   &lt;li&gt;     &lt;p&gt;&lt;font face="Verdana"&gt;&lt;strong&gt;Replication : &lt;/strong&gt;&lt;/font&gt;&lt;font face="Verdana"&gt;DELETE can be used against table used in transactional replication or merge replication.&amp;#160; &lt;br /&gt;While TRUNCATE cannot be used against the tables involved in transactional replication or merge replication.&lt;/font&gt;&lt;/p&gt;   &lt;/li&gt;    &lt;li&gt;     &lt;p&gt;&lt;font face="Verdana"&gt;&lt;strong&gt;Rollback : &lt;/strong&gt;&lt;/font&gt;&lt;font face="Verdana"&gt;DELETE statement can be rolled back.&amp;#160; &lt;br /&gt;TRUNCATE can also be rolled back provided it is enclosed in a TRANSACTION block and session is not closed.&amp;#160; &lt;/font&gt;&lt;font face="Verdana"&gt;Once session is closed you won't be able to Rollback TRUNCATE.&lt;/font&gt;&lt;/p&gt;   &lt;/li&gt; &lt;/ul&gt;  &lt;ul&gt;   &lt;li&gt;     &lt;p&gt;&lt;font face="Verdana"&gt;&lt;strong&gt;Restrictions : &lt;/strong&gt;&lt;/font&gt;&lt;font face="Verdana"&gt;The DELETE statement may fail if it violates a trigger or tries to remove a row referenced by data in another table with a FOREIGN KEY constraint. If the DELETE removes multiple rows, and any one of the removed rows violates a trigger or constraint, the statement is canceled, an error is returned, and no rows are removed.&amp;#160; &lt;/font&gt;&lt;font face="Verdana"&gt;         &lt;br /&gt;And if DELETE is used against View, that View must be an Updatable view. &lt;/font&gt;&lt;font face="Verdana"&gt;         &lt;br /&gt;TRUNCATE cannot be used against the table used in Indexed view.&amp;#160; &lt;/font&gt;&lt;font face="Verdana"&gt;         &lt;br /&gt;TRUNCATE cannot be used against the table referenced by a FOREIGN KEY constraint, unless a table that has a foreign key that references itself.&lt;/font&gt;&lt;/p&gt;   &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;font face="Verdana"&gt;&lt;strong&gt;Source : &lt;/strong&gt;&lt;/font&gt;&lt;font face="Verdana"&gt;     &lt;br /&gt;DELETE - &lt;/font&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms189835.aspx"&gt;&lt;font face="Verdana"&gt;http://msdn.microsoft.com/en-us/library/ms189835.aspx&lt;/font&gt;&lt;/a&gt;&amp;#160;&lt;font face="Verdana"&gt;      &lt;br /&gt;TRUCNATE - &lt;/font&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms177570.aspx"&gt;&lt;font face="Verdana"&gt;http://msdn.microsoft.com/en-us/library/ms177570.aspx&lt;/font&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Verdana"&gt;&lt;/font&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8585649008635531444-8584316395014414382?l=mangalpardeshi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mangalpardeshi.blogspot.com/feeds/8584316395014414382/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://mangalpardeshi.blogspot.com/2009/07/delete-vs-truncate.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8585649008635531444/posts/default/8584316395014414382'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8585649008635531444/posts/default/8584316395014414382'/><link rel='alternate' type='text/html' href='http://mangalpardeshi.blogspot.com/2009/07/delete-vs-truncate.html' title='DELETE Vs TRUNCATE'/><author><name>Mangal Pardeshi</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_weIRgO4yuTo/SzSmWMjAwJI/AAAAAAAAAKs/DgpUWlN5KZY/S220/y1m_Ev9g6OBzqJR8Z6lhdhzgWZ-bl8WwBuhHkrErOHngc14s42YU23gTajpglsbRjABGlnSHh-wUfbGievoo7soxuBY9uSp1K1I.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8585649008635531444.post-1952417526498717392</id><published>2009-06-26T16:26:00.001+05:30</published><updated>2009-06-26T17:35:52.241+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='T-SQL'/><title type='text'>PIVOT Multiple Columns</title><content type='html'>&lt;p&gt;&lt;font face="Verdana"&gt;In one of my previous post I showed you how to &lt;a href="http://mangalpardeshi.blogspot.com/2009/04/unpivot-multiple-columns.html"&gt;UNPIVOT multiple columns&lt;/a&gt;.&amp;#160; On similar lines I also wanted to write on “How to PIVOT multiple columns?”, so this post was due for some time.&amp;#160; Actually I was looking for some efficient way of doing it.&amp;#160; Limitation of PIVOT operator is, it supports pivoting only on a single column.&amp;#160; But you can always have multiple PIVOT operators in the FROM clause. I was trying to create a PIVOT query with multiple columns with multiple PIVOT operators. But at the end of it I found that our old fashioned CASE expression is performing much better than a multiple PIVOT operator query.&amp;#160; &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Verdana"&gt;Even though I’m writing this post on how to write a multiple PIVOT operator query, my suggestion is use CASE expressions instead for getting better performance.&amp;#160; Though personally I like to avoid CASE also.&amp;#160;&amp;#160; Normally I like to do it in Reporting Services, by creating a Matrix report.&amp;#160; Now a days almost all Reporting Tools provides you an option of creating Matrix report.&amp;#160; And good thing about Matrix report is unlike PIVOT operator you don’t need to hard code any column value.&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Verdana"&gt;If you try to write a PIVOT query with 2 PIVOT operators, and use same column in FOR clause you will get an error : &lt;/font&gt;&lt;font face="Verdana" color="#ff0000"&gt;Invalid column name NameOfColumn.&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Verdana"&gt;Or if you use same column, but by declaring it again and using a different alias name, you still get an error : &lt;/font&gt;&lt;font face="Verdana" color="#ff0000"&gt;The column name ValueOfColumn specified in the PIVOT operator conflicts with the existing column name in the PIVOT argument.&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Verdana"&gt;So what’s the solution?&amp;#160; Solution is, declare the same column again, change the values in the column by some constant(you can add some constant, or you can concat some identifier ) and assign a new alias name to column. &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Verdana"&gt;Lets see the following example, I have used the AdventureWorks database of SQL Server 2005. &lt;/font&gt;    &lt;table cellspacing="0" cellpadding="0" width="100%" bgcolor="#f4f4f4"&gt;&lt;tbody&gt;       &lt;tr&gt;         &lt;th align="left"&gt;&lt;font face="Verdana"&gt;&lt;/font&gt;&lt;/th&gt;          &lt;th align="right"&gt;&lt;font face="Verdana"&gt;&lt;tabindex  ="0" bgcolor="#f6f6f2"&gt;&lt;/span&gt;&lt;/font&gt;&lt;/th&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td colspan="2"&gt;           &lt;p&gt;&lt;font face="Verdana" size="1"&gt;&lt;font color="#0000ff"&gt;USE&lt;/font&gt; AdventureWorks                 &lt;br /&gt;GO                 &lt;br /&gt;&lt;font color="#0000ff"&gt;SET ANSI_WARNINGS OFF                  &lt;br /&gt;SELECT&lt;/font&gt; CustomerId,                 &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;font color="#ff0080"&gt;SUM&lt;/font&gt;([Q2001]) &lt;font color="#0000ff"&gt;AS&lt;/font&gt; Qty2001,                 &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;font color="#ff0080"&gt;SUM&lt;/font&gt;([Q2002]) &lt;font color="#0000ff"&gt;AS&lt;/font&gt; Qty2002,                 &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;font color="#ff0080"&gt;SUM&lt;/font&gt;([V2001]) &lt;font color="#0000ff"&gt;AS&lt;/font&gt; Val2001,                 &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;font color="#ff0080"&gt;SUM&lt;/font&gt;([V2002]) &lt;font color="#0000ff"&gt;AS&lt;/font&gt; Val2002                 &lt;br /&gt;&lt;font color="#0000ff"&gt;FROM&lt;/font&gt; (                 &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;font color="#0000ff"&gt;SELECT&lt;/font&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; H.CustomerId,                 &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;font color="#ff0080"&gt;SUM&lt;/font&gt;(D.OrderQty) &lt;font color="#0000ff"&gt;AS&lt;/font&gt; TotalQty,                 &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;font color="#ff0080"&gt;SUM&lt;/font&gt;(D.LineTotal) &lt;font color="#0000ff"&gt;AS&lt;/font&gt; TotalVal,                 &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;font color="#ff0000"&gt;'Q'&lt;/font&gt;+&lt;font color="#ff0080"&gt;CONVERT&lt;/font&gt;(&lt;font color="#0000ff"&gt;VARCHAR&lt;/font&gt;(4),H.OrderDate,120)&amp;#160; &lt;font color="#0000ff"&gt;AS&lt;/font&gt; QYear,                 &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;font color="#ff0000"&gt;'V'&lt;/font&gt;+&lt;font color="#ff0080"&gt;CONVERT&lt;/font&gt;(&lt;font color="#0000ff"&gt;VARCHAR&lt;/font&gt;(4),H.OrderDate,120)&amp;#160; &lt;font color="#0000ff"&gt;AS&lt;/font&gt; VYear                 &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;font color="#0000ff"&gt;FROM&lt;/font&gt; Sales.SalesOrderDetail &lt;font color="#0000ff"&gt;AS&lt;/font&gt; D INNER JOIN                 &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Sales.SalesOrderHeader &lt;font color="#0000ff"&gt;AS&lt;/font&gt; H &lt;font color="#0000ff"&gt;ON&lt;/font&gt; D.SalesOrderId = H.SalesOrderId                 &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;font color="#0000ff"&gt;WHERE&lt;/font&gt; D.ProductId=771                 &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; AND H.OrderDate &amp;gt;='20010101'                 &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; AND H.OrderDate &amp;lt;'20030101'                 &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;font color="#0000ff"&gt;GROUP BY&lt;/font&gt; H.CustomerId,                 &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;font color="#ff0080"&gt;CONVERT&lt;/font&gt;(&lt;font color="#0000ff"&gt;VARCHAR&lt;/font&gt;(4),H.OrderDate,120)                 &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; )Main                 &lt;br /&gt;PIVOT                 &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; (                 &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;font color="#ff0080"&gt;SUM&lt;/font&gt;(TotalQty)                 &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;font color="#0000ff"&gt;FOR&lt;/font&gt; QYear IN ([Q2001],[Q2002])                 &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; ) PQ                 &lt;br /&gt;PIVOT                 &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; (                 &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;font color="#ff0080"&gt;SUM&lt;/font&gt;(TotalVal)                 &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;font color="#0000ff"&gt;FOR&lt;/font&gt; VYear IN ([V2001],[V2002])                 &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; ) PV                 &lt;br /&gt;&lt;font color="#0000ff"&gt;GROUP BY&lt;/font&gt; CustomerId                 &lt;br /&gt;&lt;font color="#0000ff"&gt;ORDER BY&lt;/font&gt; CustomerId                 &lt;br /&gt;GO&lt;/font&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;     &lt;/tbody&gt;&lt;/table&gt; &lt;/p&gt;  &lt;p&gt;&lt;font face="Verdana"&gt;The query returns total quantity and line amount for year 2001 and 2002 for the product id 771 for all customers.&amp;#160; If look at the query carefully in Main sub query, CONVERT(VARCHAR(4),H.OrderDate,120) this convert statement will take out the Year part from the OrderDate column.&amp;#160; I have declared the same column twice, at first I concatenated Q to the Year, and at second time I concatenated the V.&amp;#160; Just execute the Main sub query, so it will be easy to understand for you. &lt;/font&gt;    &lt;table cellspacing="0" cellpadding="0" width="100%" bgcolor="#f4f4f4"&gt;&lt;tbody&gt;       &lt;tr&gt;         &lt;th align="left"&gt;&lt;font face="Verdana"&gt;&lt;/font&gt;&lt;/th&gt;          &lt;th align="right"&gt;&lt;font face="Verdana"&gt;&lt;tabindex  ="0" bgcolor="#f6f6f2"&gt;&lt;/span&gt;&lt;/font&gt;&lt;/th&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td colspan="2"&gt;&lt;font face="Verdana" size="1"&gt;&lt;font color="#0000ff"&gt;SELECT&lt;/font&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; H.CustomerId,               &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;font color="#ff0080"&gt;SUM&lt;/font&gt;(D.OrderQty) &lt;font color="#0000ff"&gt;AS&lt;/font&gt; TotalQty,               &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;font color="#ff0080"&gt;SUM&lt;/font&gt;(D.LineTotal) &lt;font color="#0000ff"&gt;AS&lt;/font&gt; TotalVal,               &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;font color="#ff0000"&gt;'Q'&lt;/font&gt;+&lt;font color="#ff0080"&gt;CONVERT&lt;/font&gt;(&lt;font color="#0000ff"&gt;VARCHAR&lt;/font&gt;(4),H.OrderDate,120)&amp;#160; &lt;font color="#0000ff"&gt;AS&lt;/font&gt; QYear,               &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;font color="#ff0000"&gt;'V'&lt;/font&gt;+&lt;font color="#ff0080"&gt;CONVERT&lt;/font&gt;(&lt;font color="#0000ff"&gt;VARCHAR&lt;/font&gt;(4),H.OrderDate,120)&amp;#160; &lt;font color="#0000ff"&gt;AS&lt;/font&gt; VYear&amp;#160; &lt;br /&gt;&lt;font color="#0000ff"&gt;FROM&lt;/font&gt; Sales.SalesOrderDetail &lt;font color="#0000ff"&gt;AS&lt;/font&gt; D INNER JOIN&amp;#160; &lt;br /&gt;Sales.SalesOrderHeader &lt;font color="#0000ff"&gt;AS&lt;/font&gt; H &lt;font color="#0000ff"&gt;ON&lt;/font&gt; D.SalesOrderId = H.SalesOrderId&amp;#160; &lt;br /&gt;&lt;font color="#0000ff"&gt;WHERE&lt;/font&gt; D.ProductId=771&amp;#160; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; AND H.OrderDate &amp;gt;='20010101'&amp;#160; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; AND H.OrderDate &amp;lt;'20030101'&amp;#160; &lt;br /&gt;&lt;font color="#0000ff"&gt;GROUP BY&lt;/font&gt; H.CustomerId,               &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;font color="#ff0080"&gt;CONVERT&lt;/font&gt;(&lt;font color="#0000ff"&gt;VARCHAR&lt;/font&gt;(4),H.OrderDate,120)&lt;/font&gt;             &lt;br /&gt;&lt;/td&gt;       &lt;/tr&gt;     &lt;/tbody&gt;&lt;/table&gt; &lt;/p&gt;  &lt;p&gt;&lt;font face="Verdana"&gt;Now we have 2 columns, with different values, and we can use them in different PIVOT with same effect, and that’s what I have done in my 1st query.&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Verdana"&gt;Here is a CASE expression version of same query, which gives much better performance if you scale it for large amount data. &lt;/font&gt;    &lt;table cellspacing="0" cellpadding="0" width="100%" bgcolor="#f4f4f4"&gt;&lt;tbody&gt;       &lt;tr&gt;         &lt;th align="left"&gt;&lt;font face="Verdana"&gt;&lt;/font&gt;&lt;/th&gt;          &lt;th align="right"&gt;&lt;font face="Verdana"&gt;&lt;tabindex  ="0" bgcolor="#f6f6f2"&gt;&lt;/span&gt;&lt;/font&gt;&lt;/th&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td colspan="2"&gt;           &lt;p&gt;&lt;font face="Verdana" size="1"&gt;&lt;font color="#0000ff"&gt;USE&lt;/font&gt; AdventureWorks                 &lt;br /&gt;GO                 &lt;br /&gt;&lt;font color="#0000ff"&gt;SELECT&lt;/font&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; H.CustomerId,                 &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;font color="#ff0080"&gt;SUM&lt;/font&gt;(&lt;font color="#0000ff"&gt;CASE&lt;/font&gt; &lt;font color="#ff0080"&gt;YEAR&lt;/font&gt;(H.OrderDate)                 &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;font color="#0000ff"&gt;WHEN&lt;/font&gt; 2001                 &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;font color="#0000ff"&gt;THEN&lt;/font&gt; D.OrderQty                 &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;font color="#0000ff"&gt;END&lt;/font&gt;) &lt;font color="#0000ff"&gt;AS&lt;/font&gt; Qty2001,                 &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;font color="#ff0080"&gt;SUM&lt;/font&gt;(&lt;font color="#0000ff"&gt;CASE&lt;/font&gt; &lt;font color="#ff0080"&gt;YEAR&lt;/font&gt;(H.OrderDate)                 &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;font color="#0000ff"&gt;WHEN&lt;/font&gt; 2002                 &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;font color="#0000ff"&gt;THEN&lt;/font&gt; D.OrderQty                 &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;font color="#0000ff"&gt;END&lt;/font&gt;) &lt;font color="#0000ff"&gt;AS&lt;/font&gt; Qty2002,                 &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;font color="#ff0080"&gt;SUM&lt;/font&gt;(&lt;font color="#0000ff"&gt;CASE&lt;/font&gt; &lt;font color="#ff0080"&gt;YEAR&lt;/font&gt;(H.OrderDate)                 &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;font color="#0000ff"&gt;WHEN&lt;/font&gt; 2001                 &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;font color="#0000ff"&gt;THEN&lt;/font&gt; D.LineTotal                 &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;font color="#0000ff"&gt;END&lt;/font&gt;) &lt;font color="#0000ff"&gt;AS&lt;/font&gt; Val2001,                 &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;font color="#ff0080"&gt;SUM&lt;/font&gt;(&lt;font color="#0000ff"&gt;CASE&lt;/font&gt; &lt;font color="#ff0080"&gt;YEAR&lt;/font&gt;(H.OrderDate)                 &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;font color="#0000ff"&gt;WHEN&lt;/font&gt; 2002                 &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;font color="#0000ff"&gt;THEN&lt;/font&gt; D.LineTotal                 &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;font color="#0000ff"&gt;END&lt;/font&gt;) &lt;font color="#0000ff"&gt;AS&lt;/font&gt; Val2002                 &lt;br /&gt;&lt;font color="#0000ff"&gt;FROM&lt;/font&gt; Sales.SalesOrderDetail &lt;font color="#0000ff"&gt;AS&lt;/font&gt; D INNER JOIN                 &lt;br /&gt;Sales.SalesOrderHeader &lt;font color="#0000ff"&gt;AS&lt;/font&gt; H &lt;font color="#0000ff"&gt;ON&lt;/font&gt; D.SalesOrderId = H.SalesOrderId                 &lt;br /&gt;&lt;font color="#0000ff"&gt;WHERE&lt;/font&gt; D.ProductId=771                 &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; AND H.OrderDate &amp;gt;='20010101'                 &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; AND H.OrderDate &amp;lt;'20030101'                 &lt;br /&gt;&lt;font color="#0000ff"&gt;GROUP BY&lt;/font&gt; H.CustomerId                 &lt;br /&gt;&lt;font color="#0000ff"&gt;ORDER BY&lt;/font&gt; H.CustomerId                 &lt;br /&gt;GO&lt;/font&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;     &lt;/tbody&gt;&lt;/table&gt; &lt;/p&gt;  &lt;p&gt;&lt;font face="Verdana"&gt;You can test the performance of both queries.&amp;#160; If you want to scale it for larger data you can remove the WHERE conditions added by me.&amp;#160; Total execution time for CASE query is almost half to that of PIVOT query.&amp;#160; &lt;/font&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8585649008635531444-1952417526498717392?l=mangalpardeshi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mangalpardeshi.blogspot.com/feeds/1952417526498717392/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://mangalpardeshi.blogspot.com/2009/06/pivot-multiple-columns.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8585649008635531444/posts/default/1952417526498717392'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8585649008635531444/posts/default/1952417526498717392'/><link rel='alternate' type='text/html' href='http://mangalpardeshi.blogspot.com/2009/06/pivot-multiple-columns.html' title='PIVOT Multiple Columns'/><author><name>Mangal Pardeshi</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_weIRgO4yuTo/SzSmWMjAwJI/AAAAAAAAAKs/DgpUWlN5KZY/S220/y1m_Ev9g6OBzqJR8Z6lhdhzgWZ-bl8WwBuhHkrErOHngc14s42YU23gTajpglsbRjABGlnSHh-wUfbGievoo7soxuBY9uSp1K1I.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8585649008635531444.post-6388877113194248195</id><published>2009-06-18T11:19:00.001+05:30</published><updated>2009-06-18T11:19:52.911+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Admin'/><title type='text'>TCP Port of SQL Server</title><content type='html'>&lt;p&gt;&lt;font face="Verdana"&gt;By default the default TCP Port for SQL Server is 1433.&amp;#160; It can be changed for security purpose to minimize the potential threat of a hacker trying to access through the default port number.&amp;#160; But that is whole together a different story. &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Verdana"&gt;Every now and then somebody posts this question on forums- how can I tell what port my SQL Server instance is running on?&amp;#160; As sometimes while accessing SQL Server remotely you may need to add the TCP Port in the connection string.&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Verdana"&gt;There are more than 1 way to find out the answer.&amp;#160; From SQL Server Error Logs, Configuration Manager, Command Prompt, Registry Editor.&amp;#160;&amp;#160; But today I will share a simple T-SQL script with you, from which you can easily find out the TCP port SQL Server instance is running on. &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Verdana"&gt;First lets see in regedit where to look for the Port number.&amp;#160; &lt;br /&gt;The location of port number for SQL Server 2005 -&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Verdana"&gt;&lt;strong&gt;For default instance&lt;/strong&gt; : &lt;font color="#800000"&gt;HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer\MSSQLServer\SuperSocketNetLib\TCP&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Verdana"&gt;&lt;strong&gt;For Named Instance : &lt;/strong&gt;      &lt;br /&gt;&lt;font color="#800000"&gt;HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\ [Instance Name]\MSSQLServer\SuperSocketNetLib\Tcp&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Verdana"&gt;If you don’t know how to open the regedit :      &lt;br /&gt;1. Click on Start and then on Run.       &lt;br /&gt;2. In run type regedit and click on Ok.&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Verdana"&gt;After checking out the port number manually now lets see the query I created.&amp;#160; It uses a non-documented extended stored procedure xp_regread.&amp;#160; Basically it is helpful in reading from the registry via Transact-SQL.&amp;#160; Since it is a non-documented extended stored procedure you won’t find any reference about xp_regread in Books Online. If you want to know more about it, best thing you can do is Google for &lt;a href="http://lmgtfy.com/?q=xp_regread"&gt;&lt;font color="#804040"&gt;xp_regread&lt;/font&gt;&lt;/a&gt;.&amp;#160; So here is the script which will give you the TCP port SQL Server is running on :&lt;/font&gt;     &lt;br /&gt;    &lt;table cellspacing="0" cellpadding="0" width="100%" bgcolor="#f4f4f4"&gt;&lt;tbody&gt;       &lt;tr&gt;         &lt;th align="left"&gt;&lt;font face="Verdana"&gt;&lt;/font&gt;&lt;/th&gt;          &lt;th align="right"&gt;&lt;font face="Verdana"&gt;&lt;tabindex bgcolor="#f6f6f2" ="0"&gt;&lt;/span&gt;&lt;/font&gt;&lt;/th&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td colspan="2"&gt;           &lt;p&gt;&lt;font face="Verdana" size="1"&gt;&lt;font color="#0000ff"&gt;DECLARE&lt;/font&gt; @TcpPort &lt;font color="#0000ff"&gt;VARCHAR&lt;/font&gt;(5)                 &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; ,@RegKey &lt;font color="#0000ff"&gt;VARCHAR&lt;/font&gt;(100) &lt;/font&gt;&lt;/p&gt;            &lt;p&gt;&lt;font face="Verdana" size="1"&gt;&lt;font color="#0000ff"&gt;IF&lt;/font&gt; &lt;font color="#ff0080"&gt;@@SERVICENAME&lt;/font&gt; !=&lt;font color="#ff0000"&gt;'MSSQLSERVER'                  &lt;br /&gt;&lt;/font&gt;&amp;#160;&amp;#160;&amp;#160; &lt;font color="#0000ff"&gt;BEGIN&lt;/font&gt;                 &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;font color="#0000ff"&gt;SET&lt;/font&gt; @RegKey = &lt;font color="#ff0000"&gt;'SOFTWARE\Microsoft\Microsoft SQL Server\'&lt;/font&gt; +&lt;font color="#ff0080"&gt; @@SERVICENAME&lt;/font&gt; + &lt;font color="#ff0000"&gt;'\MSSQLServer\SuperSocketNetLib\Tcp'&lt;/font&gt;                 &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;font color="#0000ff"&gt;END&lt;/font&gt;                 &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;font color="#0000ff"&gt;ELSE                  &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; BEGIN&lt;/font&gt;                 &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;font color="#0000ff"&gt;SET&lt;/font&gt; @RegKey =&lt;font color="#ff0000"&gt; 'SOFTWARE\MICROSOFT\MSSQLSERVER\MSSQLSERVER\SUPERSOCKETNETLIB\TCP'                  &lt;br /&gt;&lt;/font&gt;&amp;#160;&amp;#160;&amp;#160; &lt;font color="#0000ff"&gt;END &lt;/font&gt;&lt;/font&gt;&lt;/p&gt;            &lt;p&gt;&lt;font face="Verdana" size="1"&gt;&lt;font color="#0000ff"&gt;EXEC&lt;/font&gt; master..xp_regread                 &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; @rootkey =&lt;font color="#ff0000"&gt; 'HKEY_LOCAL_MACHINE'                  &lt;br /&gt;&lt;/font&gt;&amp;#160;&amp;#160;&amp;#160; ,@key = @RegKey                 &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; ,@value_name =&lt;font color="#ff0000"&gt; 'TcpPort'                  &lt;br /&gt;&lt;/font&gt;&amp;#160;&amp;#160;&amp;#160; ,@value = @TcpPort &lt;font color="#0000ff"&gt;OUTPUT&lt;/font&gt; &lt;/font&gt;&lt;/p&gt;            &lt;p&gt;&lt;font face="Verdana" size="1"&gt;SELECT @TcpPort &lt;font color="#0000ff"&gt;AS&lt;/font&gt; PortNumber                 &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; ,&lt;font color="#ff0080"&gt;@@SERVERNAME&lt;/font&gt; &lt;font color="#0000ff"&gt;AS&lt;/font&gt; ServerName                 &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; ,&lt;font color="#ff0080"&gt;@@SERVICENAME&lt;/font&gt; &lt;font color="#0000ff"&gt;AS&lt;/font&gt; ServiceName&lt;/font&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;     &lt;/tbody&gt;&lt;/table&gt; &lt;/p&gt;  &lt;p&gt;&lt;font face="Verdana"&gt;You will get the output something like this :&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/_weIRgO4yuTo/SjnVaw3i9oI/AAAAAAAAAH0/lRHPZw0CwZU/s1600-h/PortNumber13.jpg"&gt;&lt;img title="Port Number" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="90" alt="Port Number" src="http://lh6.ggpht.com/_weIRgO4yuTo/SjnVbya1dDI/AAAAAAAAAH4/jBkDWbrqL3A/PortNumber_thumb7.jpg?imgmax=800" width="354" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;font face="Verdana"&gt;Other simple way of finding out the TCP port is from the Configuration Manager. &lt;/font&gt;    &lt;br /&gt;&lt;font face="Verdana"&gt;1. Start &amp;gt;&amp;gt; All Program &amp;gt;&amp;gt; Microsoft SQL Server 2005 &amp;gt;&amp;gt; Configuration Tools &amp;gt;&amp;gt; SQL Server Configuration Manager .      &lt;br /&gt;2. In the configuration manager click on SQL Server 2005 Network Configuration.       &lt;br /&gt;3. Then click on the Instance name for which you want to find out the Port Number.       &lt;br /&gt;4. Double click on TCP/IP.       &lt;br /&gt;5. Finally on IP Addresses, and you will see something like :&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/_weIRgO4yuTo/SjnVdi_OmyI/AAAAAAAAAH8/N3tFDzMpW3g/s1600-h/port6.jpg"&gt;&lt;img title="port" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="342" alt="port" src="http://lh4.ggpht.com/_weIRgO4yuTo/SjnVfujAD1I/AAAAAAAAAIA/bF9nI9Xfzvk/port_thumb2.jpg?imgmax=800" width="304" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8585649008635531444-6388877113194248195?l=mangalpardeshi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mangalpardeshi.blogspot.com/feeds/6388877113194248195/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://mangalpardeshi.blogspot.com/2009/06/tcp-port-of-sql-server.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8585649008635531444/posts/default/6388877113194248195'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8585649008635531444/posts/default/6388877113194248195'/><link rel='alternate' type='text/html' href='http://mangalpardeshi.blogspot.com/2009/06/tcp-port-of-sql-server.html' title='TCP Port of SQL Server'/><author><name>Mangal Pardeshi</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_weIRgO4yuTo/SzSmWMjAwJI/AAAAAAAAAKs/DgpUWlN5KZY/S220/y1m_Ev9g6OBzqJR8Z6lhdhzgWZ-bl8WwBuhHkrErOHngc14s42YU23gTajpglsbRjABGlnSHh-wUfbGievoo7soxuBY9uSp1K1I.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh6.ggpht.com/_weIRgO4yuTo/SjnVbya1dDI/AAAAAAAAAH4/jBkDWbrqL3A/s72-c/PortNumber_thumb7.jpg?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8585649008635531444.post-4915372543773101025</id><published>2009-06-12T13:31:00.001+05:30</published><updated>2009-06-12T16:17:46.928+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Reporting Services'/><category scheme='http://www.blogger.com/atom/ns#' term='FAQ'/><title type='text'>Alternating Row Background Color in Reports</title><content type='html'>&lt;font face="Verdana"&gt;Now lets see how to get alternating row background colors in Reports. This is one of the 1&lt;sup&gt;st&lt;/sup&gt; typical report enhancement you might be doing once you started working on Reporting Services.&amp;#160; See the following report :&amp;#160; &lt;/font&gt;  &lt;p&gt;&lt;font face="Verdana"&gt;&lt;/font&gt;&lt;/p&gt; &lt;a href="http://lh4.ggpht.com/_weIRgO4yuTo/SjILXpFHRdI/AAAAAAAAAHs/b_fmWCjkSnc/s1600-h/report%5B5%5D.jpg"&gt;&lt;font face="Verdana" color="#333333"&gt;&lt;img title="report" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="166" alt="report" src="http://lh6.ggpht.com/_weIRgO4yuTo/SjILYab-dDI/AAAAAAAAAHw/1xjmPXEd5YU/report_thumb%5B3%5D.jpg?imgmax=800" width="274" border="0" /&gt;&lt;/font&gt;&lt;/a&gt;   &lt;p&gt;&lt;font face="Verdana"&gt;This can be achieved very easily in SSRS with the help of IIF and RowNumber function for a simple report with no groupings.&amp;#160;&amp;#160; You can use a background color expression as:&lt;/font&gt;     &lt;table cellspacing="0" cellpadding="0" width="100%" bgcolor="#f4f4f4"&gt;&lt;tbody&gt;       &lt;tr&gt;         &lt;th align="left"&gt;&lt;font face="Verdana"&gt;&lt;/font&gt;&lt;/th&gt;          &lt;th align="right"&gt;&lt;font face="Verdana"&gt;&lt;tabindex  ="0" bgcolor="#f6f6f2"&gt;&lt;/span&gt;&lt;/font&gt;&lt;/th&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td colspan="2"&gt;&lt;font face="Verdana"&gt;= IIF(RowNumber(&lt;font color="#0000ff"&gt;Nothing&lt;/font&gt;) &lt;font color="#0000ff"&gt;Mod&lt;/font&gt; 2, &lt;font color="#800000"&gt;&amp;quot;White&amp;quot;&lt;/font&gt;,&lt;font color="#800000"&gt;&amp;quot;Gainsboro&amp;quot;&lt;/font&gt;) &lt;/font&gt;&lt;/td&gt;       &lt;/tr&gt;     &lt;/tbody&gt;&lt;/table&gt; &lt;/p&gt;  &lt;p&gt;&lt;font face="Verdana"&gt;It becomes little complicated in cases of Matrix and when some groupings are involved.&amp;#160; In that case use following expression for the details row within a group:&lt;/font&gt;     &lt;table cellspacing="0" cellpadding="0" width="100%" bgcolor="#f4f4f4"&gt;&lt;tbody&gt;       &lt;tr&gt;         &lt;th align="left"&gt;&lt;font face="Verdana"&gt;&lt;/font&gt;&lt;/th&gt;          &lt;th align="right"&gt;&lt;font face="Verdana"&gt;&lt;tabindex  ="0" bgcolor="#f6f6f2"&gt;&lt;/span&gt;&lt;/font&gt;&lt;/th&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td colspan="2"&gt;&lt;font face="Verdana"&gt;= IIF(RunningValue(Fields!Some_Field.Value,Count,&amp;quot;Group_Name&amp;quot;)              &lt;br /&gt;&lt;font color="#0000ff"&gt;Mod&lt;/font&gt; 2, &lt;font color="#800000"&gt;&amp;quot;White&amp;quot;&lt;/font&gt;,&lt;font color="#800000"&gt;&amp;quot;Gainsboro&amp;quot;&lt;/font&gt;) &lt;/font&gt;&lt;/td&gt;       &lt;/tr&gt;     &lt;/tbody&gt;&lt;/table&gt; &lt;/p&gt; &lt;font face="Verdana"&gt;Here instead of RowNumber function I have used he RunningValue function.&amp;#160; Just remember to replace Some_Field with actual column name and Group_Name with actual Group Name in your report.&lt;/font&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8585649008635531444-4915372543773101025?l=mangalpardeshi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mangalpardeshi.blogspot.com/feeds/4915372543773101025/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://mangalpardeshi.blogspot.com/2009/06/alternating-row-background-color-in.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8585649008635531444/posts/default/4915372543773101025'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8585649008635531444/posts/default/4915372543773101025'/><link rel='alternate' type='text/html' href='http://mangalpardeshi.blogspot.com/2009/06/alternating-row-background-color-in.html' title='Alternating Row Background Color in Reports'/><author><name>Mangal Pardeshi</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_weIRgO4yuTo/SzSmWMjAwJI/AAAAAAAAAKs/DgpUWlN5KZY/S220/y1m_Ev9g6OBzqJR8Z6lhdhzgWZ-bl8WwBuhHkrErOHngc14s42YU23gTajpglsbRjABGlnSHh-wUfbGievoo7soxuBY9uSp1K1I.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh6.ggpht.com/_weIRgO4yuTo/SjILYab-dDI/AAAAAAAAAHw/1xjmPXEd5YU/s72-c/report_thumb%5B3%5D.jpg?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8585649008635531444.post-3783086161349618464</id><published>2009-06-04T15:30:00.001+05:30</published><updated>2010-08-21T00:38:49.467+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='T-SQL'/><title type='text'>Multiplying Column Values</title><content type='html'>&lt;p align="left"&gt;&lt;font face="Verdana"&gt;Well we all know how to add the values in a column using SUM and GROUP BY.&amp;#160; But what about multiplying the column values?&amp;#160; And also how to calculate running multiplication on a column similar to &lt;a href="http://mangalpardeshi.blogspot.com/2009/05/calculating-running-totals.html"&gt;Running Totals&lt;/a&gt;? &lt;/font&gt;&lt;/p&gt; &lt;font face="Verdana"&gt;Sometime back I came across this interesting question on &lt;/font&gt;&lt;a href="http://social.msdn.microsoft.com/Forums/en-US/category/sqlserver"&gt;&lt;font face="Verdana"&gt;MSDN SQL Server forums&lt;/font&gt;&lt;/a&gt;&lt;font face="Verdana"&gt; - &lt;/font&gt;&lt;em&gt;&lt;font face="Verdana"&gt;How to multiply all values in a table column?&lt;/font&gt; &lt;/em&gt;  &lt;p&gt;&lt;font face="Verdana"&gt;I don't know the reason of such requirement, but very interesting problem though.&amp;#160; Of course there is no such built-in function in SQL Server to do it for you.&amp;#160; But after thinking on it for few minutes, I realize that if you still remember the basics of Mathematics, it is not that difficult to do in T-SQL.&lt;/font&gt;&lt;/p&gt; &lt;font face="Verdana"&gt;If you remember    &lt;table cellspacing="0" cellpadding="0" width="100%" bgcolor="#f4f4f4"&gt;&lt;tbody&gt;       &lt;tr&gt;         &lt;td&gt;&lt;font color="#800000"&gt;A * B = ANTILOG ( LOG (A) + LOG(B) )&lt;/font&gt; &lt;/td&gt;       &lt;/tr&gt;     &lt;/tbody&gt;&lt;/table&gt;    &lt;p&gt;So looking at it again, it is very straight forward using LOG, ANTILOG and SUM in SQL Server. (For doing ANTILOG you have &lt;a href="http://msdn.microsoft.com/en-us/library/ms179857(SQL.90).aspx"&gt;&lt;font color="#ff0080"&gt;EXP&lt;/font&gt;&lt;/a&gt; function in SQL Server.) Let me show you how : &lt;/p&gt;    &lt;p&gt;Lets create some sample data first.      &lt;table cellspacing="0" cellpadding="0" width="100%" bgcolor="#f4f4f4"&gt;&lt;tbody&gt;         &lt;tr&gt;           &lt;th align="left"&gt;&lt;font face="Verdana"&gt;&lt;/font&gt;&lt;/th&gt;            &lt;th align="right"&gt;&lt;font face="Verdana"&gt;&lt;tabindex  ="0" bgcolor="#f6f6f2"&gt;&lt;/span&gt;&lt;/font&gt;&lt;/th&gt;         &lt;/tr&gt;          &lt;tr&gt;           &lt;td colspan="2"&gt;&lt;font face="Verdana"&gt;&lt;font color="#008040"&gt;-- Create sample table&lt;/font&gt;                 &lt;br /&gt;&lt;font color="#0000ff"&gt;CREATE TABLE&lt;/font&gt; Scores                 &lt;br /&gt;(                 &lt;br /&gt;ID &lt;font color="#0000ff"&gt;INT IDENTITY&lt;/font&gt;,                 &lt;br /&gt;Category &lt;font color="#0000ff"&gt;VARCHAR(1)&lt;/font&gt;,                 &lt;br /&gt;)                 &lt;br /&gt;GO &lt;/font&gt;&lt;font face="Verdana"&gt;&lt;font color="#008040"&gt;-- Load sample data into table&lt;/font&gt;                 &lt;br /&gt;&lt;font color="#0000ff"&gt;INSERT INTO&lt;/font&gt; Scores(Category, Score)                 &lt;br /&gt;&lt;font color="#0000ff"&gt;SELECT&lt;/font&gt; &lt;font color="#ff0000"&gt;'A'&lt;/font&gt;, 4 &lt;font color="#0000ff"&gt;UNION ALL                  &lt;br /&gt;SELECT&lt;/font&gt; &lt;font color="#ff0000"&gt;'A'&lt;/font&gt;, 5 &lt;font color="#0000ff"&gt;UNION ALL&lt;/font&gt;                 &lt;br /&gt;&lt;font color="#0000ff"&gt;SELECT&lt;/font&gt; &lt;font color="#ff0000"&gt;'A'&lt;/font&gt;, 2 &lt;font color="#0000ff"&gt;UNION ALL                  &lt;br /&gt;SELECT&lt;/font&gt; &lt;font color="#ff0000"&gt;'B'&lt;/font&gt;, 5 &lt;font color="#0000ff"&gt;UNION ALL                  &lt;br /&gt;SELECT&lt;/font&gt; &lt;font color="#ff0000"&gt;'B'&lt;/font&gt;, 5 &lt;font color="#0000ff"&gt;UNION ALL                  &lt;br /&gt;SELECT&lt;/font&gt; &lt;font color="#ff0000"&gt;'B'&lt;/font&gt;, 2 &lt;font color="#0000ff"&gt;UNION ALL                  &lt;br /&gt;SELECT&lt;/font&gt; &lt;font color="#ff0000"&gt;'B'&lt;/font&gt;, 3                 &lt;br /&gt;GO                 &lt;br /&gt;&lt;font color="#008040"&gt;-- test the sample data&lt;/font&gt;                 &lt;br /&gt;&lt;font color="#0000ff"&gt;SELECT&lt;/font&gt; Id, Category, Score                 &lt;br /&gt;&lt;font color="#0000ff"&gt;FROM&lt;/font&gt; Scores                 &lt;br /&gt;GO&lt;/font&gt; &lt;/td&gt;         &lt;/tr&gt;       &lt;/tbody&gt;&lt;/table&gt; &lt;/span&gt;&lt;/p&gt;    &lt;div&gt;The sample data : &lt;/div&gt;    &lt;div align="center"&gt;     &lt;table border="1" bordercolor="#000000" bordercolorlight="#c0c0c0" bordercolordark="#c0c0c0" width="268" bgcolor="#ffffff" align="center"&gt;&lt;tbody&gt;         &lt;tr bgcolor="#c6c3b5"&gt;           &lt;td width="66"&gt;ID&lt;/td&gt;            &lt;td width="122"&gt;CATEGORY&lt;/td&gt;            &lt;td width="78"&gt;SCORE&lt;/td&gt;         &lt;/tr&gt;          &lt;tr&gt;           &lt;td width="66"&gt;1&lt;/td&gt;            &lt;td width="122"&gt;A&lt;/td&gt;            &lt;td width="78"&gt;4&lt;/td&gt;         &lt;/tr&gt;          &lt;tr&gt;           &lt;td width="66"&gt;2&lt;/td&gt;            &lt;td width="122"&gt;A&lt;/td&gt;            &lt;td width="78"&gt;5&lt;/td&gt;         &lt;/tr&gt;          &lt;tr&gt;           &lt;td width="66"&gt;3&lt;/td&gt;            &lt;td width="122"&gt;A&lt;/td&gt;            &lt;td width="78"&gt;2&lt;/td&gt;         &lt;/tr&gt;          &lt;tr&gt;           &lt;td width="66"&gt;4&lt;/td&gt;            &lt;td width="122"&gt;B&lt;/td&gt;            &lt;td width="78"&gt;5&lt;/td&gt;         &lt;/tr&gt;          &lt;tr&gt;           &lt;td width="66"&gt;5&lt;/td&gt;            &lt;td width="122"&gt;B&lt;/td&gt;            &lt;td width="78"&gt;5&lt;/td&gt;         &lt;/tr&gt;          &lt;tr&gt;           &lt;td width="66"&gt;6&lt;/td&gt;            &lt;td width="122"&gt;B&lt;/td&gt;            &lt;td width="78"&gt;2&lt;/td&gt;         &lt;/tr&gt;          &lt;tr&gt;           &lt;td width="66"&gt;7&lt;/td&gt;            &lt;td width="122"&gt;B&lt;/td&gt;            &lt;td width="78"&gt;3&lt;/td&gt;         &lt;/tr&gt;       &lt;/tbody&gt;&lt;/table&gt;   &lt;/div&gt;    &lt;p&gt;&lt;strong&gt;Multiplying Column Values:&lt;/strong&gt;&amp;#160; And here is the query to calculate the Total Product of Score Column for each Category. &lt;/p&gt;    &lt;table cellspacing="0" cellpadding="0" width="100%" bgcolor="#f4f4f4"&gt;&lt;tbody&gt;       &lt;tr&gt;         &lt;th align="left"&gt;&lt;/th&gt;          &lt;th align="right"&gt;&lt;tabindex  ="0" bgcolor="#f6f6f2"&gt;&lt;/th&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td colspan="2"&gt;           &lt;p&gt;&lt;font color="#0000ff"&gt;SELECT&lt;/font&gt; Category, &lt;font color="#ff0080"&gt;SUM&lt;/font&gt;(Score) as TotalSum,&lt;font color="#ff0080"&gt;EXP&lt;/font&gt;(SUM(LOG(Score))) as TotalProduct               &lt;br /&gt;&lt;font color="#0000ff"&gt;FROM&lt;/font&gt; Scores               &lt;br /&gt;&lt;font color="#0000ff"&gt;GROUP BY&lt;/font&gt; Category&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;     &lt;/tbody&gt;&lt;/table&gt;   &lt;strong&gt;Result&lt;/strong&gt; :     &lt;table border="1" bordercolor="#000000" bordercolorlight="#c0c0c0" bordercolordark="#c0c0c0" width="277" bgcolor="#ffffff" align="center"&gt;&lt;tbody&gt;       &lt;tr bgcolor="#c6c3b5"&gt;         &lt;td width="86"&gt;           &lt;p align="center"&gt;Category&lt;/p&gt;         &lt;/td&gt;          &lt;td width="88"&gt;           &lt;p align="right"&gt;TotalSum&lt;/p&gt;         &lt;/td&gt;          &lt;td width="101"&gt;           &lt;p align="right"&gt;TotalProduct&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td width="85"&gt;           &lt;p align="center"&gt;A&lt;/p&gt;         &lt;/td&gt;          &lt;td width="88"&gt;           &lt;p align="right"&gt;11&lt;/p&gt;         &lt;/td&gt;          &lt;td width="101"&gt;           &lt;p align="right"&gt;40&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td width="85"&gt;           &lt;p align="center"&gt;B&lt;/p&gt;         &lt;/td&gt;          &lt;td width="88"&gt;           &lt;p align="right"&gt;15&lt;/p&gt;         &lt;/td&gt;          &lt;td width="101"&gt;           &lt;p align="right"&gt;150&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;     &lt;/tbody&gt;&lt;/table&gt;   &lt;font face="Verdana"&gt;Second column you have normal total SUM for the Score column and in 3&lt;sup&gt;rd&lt;/sup&gt; column you have the total product of the Score column for each Category.&lt;/font&gt;     &lt;p&gt;&lt;/p&gt;   &lt;strong&gt;Calculating The Running Multiplication:&lt;/strong&gt;&amp;#160; After multiplying the column values, next question is how to calculate the Running Product similar to &lt;a href="http://mangalpardeshi.blogspot.com/2009/05/calculating-running-totals.html"&gt;Running totals&lt;/a&gt;? See the following table -     &lt;table border="1" bordercolor="#000000" bordercolorlight="#c0c0c0" bordercolordark="#c0c0c0" width="322" bgcolor="#ffffff" align="center"&gt;&lt;tbody&gt;       &lt;tr bgcolor="#c6c3b5"&gt;         &lt;td width="56"&gt;           &lt;p align="center"&gt;ID&lt;/p&gt;         &lt;/td&gt;          &lt;td width="93"&gt;           &lt;p align="center"&gt;Category&lt;/p&gt;         &lt;/td&gt;          &lt;td width="63"&gt;           &lt;p align="center"&gt;Score&lt;/p&gt;         &lt;/td&gt;          &lt;td width="108" align="right"&gt;RunningProduct&lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td width="56"&gt;           &lt;p align="center"&gt;1&lt;/p&gt;         &lt;/td&gt;          &lt;td width="93"&gt;           &lt;p align="center"&gt;A&lt;/p&gt;         &lt;/td&gt;          &lt;td width="63"&gt;           &lt;p align="center"&gt;4&lt;/p&gt;         &lt;/td&gt;          &lt;td width="108" align="right"&gt;4&lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td width="56"&gt;           &lt;p align="center"&gt;2&lt;/p&gt;         &lt;/td&gt;          &lt;td width="93"&gt;           &lt;p align="center"&gt;A&lt;/p&gt;         &lt;/td&gt;          &lt;td width="63"&gt;           &lt;p align="center"&gt;5&lt;/p&gt;         &lt;/td&gt;          &lt;td width="108" align="right"&gt;20&lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td width="56"&gt;           &lt;p align="center"&gt;3&lt;/p&gt;         &lt;/td&gt;          &lt;td width="93"&gt;           &lt;p align="center"&gt;A&lt;/p&gt;         &lt;/td&gt;          &lt;td width="63"&gt;           &lt;p align="center"&gt;2&lt;/p&gt;         &lt;/td&gt;          &lt;td width="108" align="right"&gt;40&lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td width="56"&gt;           &lt;p align="center"&gt;4&lt;/p&gt;         &lt;/td&gt;          &lt;td width="93"&gt;           &lt;p align="center"&gt;B&lt;/p&gt;         &lt;/td&gt;          &lt;td width="63"&gt;           &lt;p align="center"&gt;5&lt;/p&gt;         &lt;/td&gt;          &lt;td width="108" align="right"&gt;5&lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td width="56"&gt;           &lt;p align="center"&gt;5&lt;/p&gt;         &lt;/td&gt;          &lt;td width="93"&gt;           &lt;p align="center"&gt;B&lt;/p&gt;         &lt;/td&gt;          &lt;td width="63"&gt;           &lt;p align="center"&gt;5&lt;/p&gt;         &lt;/td&gt;          &lt;td width="108" align="right"&gt;25&lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td width="56"&gt;           &lt;p align="center"&gt;6&lt;/p&gt;         &lt;/td&gt;          &lt;td width="93"&gt;           &lt;p align="center"&gt;B&lt;/p&gt;         &lt;/td&gt;          &lt;td width="63"&gt;           &lt;p align="center"&gt;2&lt;/p&gt;         &lt;/td&gt;          &lt;td width="108" align="right"&gt;50&lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td width="56"&gt;           &lt;p align="center"&gt;7&lt;/p&gt;         &lt;/td&gt;          &lt;td width="93"&gt;           &lt;p align="center"&gt;B&lt;/p&gt;         &lt;/td&gt;          &lt;td width="63"&gt;           &lt;p align="center"&gt;3&lt;/p&gt;         &lt;/td&gt;          &lt;td width="108" align="right"&gt;150&lt;/td&gt;       &lt;/tr&gt;     &lt;/tbody&gt;&lt;/table&gt;    &lt;p&gt;&lt;font face="Verdana"&gt;The logic is similar to what I just mentioned for Multiplying Rows and adding the Running Total logic to query.&lt;/font&gt;       &lt;table cellspacing="0" cellpadding="0" width="100%" bgcolor="#f4f4f4"&gt;&lt;tbody&gt;         &lt;tr&gt;           &lt;th align="left"&gt;&lt;/th&gt;            &lt;th align="right"&gt;&lt;tabindex  ="0" bgcolor="#f6f6f2"&gt;&lt;/th&gt;         &lt;/tr&gt;          &lt;tr&gt;           &lt;td colspan="2"&gt;             &lt;p&gt;&lt;font color="#0000ff"&gt;SELECT&lt;/font&gt; O.Id, O.Category, O.Score                 &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; ,(&amp;#160; &lt;font color="#0000ff"&gt;SELECT&lt;/font&gt; &lt;font color="#ff0080"&gt;EXP &lt;/font&gt;( &lt;font color="#ff0080"&gt;SUM &lt;/font&gt;( &lt;font color="#ff0080"&gt;LOG &lt;/font&gt;(I.Score) ) )                 &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;font color="#0000ff"&gt;FROM&lt;/font&gt; Scores I                 &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;font color="#0000ff"&gt;WHERE&lt;/font&gt; I.Category = O.Category                 &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;font color="#808080"&gt;AND&lt;/font&gt; I.Id &amp;lt;= O.Id                 &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; ) as RunningProduct                 &lt;br /&gt;&lt;font color="#0000ff"&gt;FROM&lt;/font&gt; Scores O&lt;/p&gt;           &lt;/td&gt;         &lt;/tr&gt;       &lt;/tbody&gt;&lt;/table&gt;   &lt;/p&gt;    &lt;p&gt;But remember this solution only works for positive numbers, if column contains negative values then you will need to modify the query using ABS function and taking into account number of negative values.&amp;#160; Well but at least you will get a start from this post. &lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8585649008635531444-3783086161349618464?l=mangalpardeshi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mangalpardeshi.blogspot.com/feeds/3783086161349618464/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://mangalpardeshi.blogspot.com/2009/06/multiplying-column-values.html#comment-form' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8585649008635531444/posts/default/3783086161349618464'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8585649008635531444/posts/default/3783086161349618464'/><link rel='alternate' type='text/html' href='http://mangalpardeshi.blogspot.com/2009/06/multiplying-column-values.html' title='Multiplying Column Values'/><author><name>Mangal Pardeshi</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_weIRgO4yuTo/SzSmWMjAwJI/AAAAAAAAAKs/DgpUWlN5KZY/S220/y1m_Ev9g6OBzqJR8Z6lhdhzgWZ-bl8WwBuhHkrErOHngc14s42YU23gTajpglsbRjABGlnSHh-wUfbGievoo7soxuBY9uSp1K1I.jpg'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8585649008635531444.post-1154047913558765606</id><published>2009-05-22T18:45:00.001+05:30</published><updated>2009-05-22T18:49:17.402+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='FAQ'/><category scheme='http://www.blogger.com/atom/ns#' term='Admin'/><title type='text'>Expiration Date of SQL Server Evaluation Edition</title><content type='html'>&lt;p&gt;&lt;a name="f9877128-906e-483f-9bd2-d4d93048201a"&gt;&lt;/a&gt;If you have installed the Evaluation / Trial Version of SQL Server, you may like to find out what is the expiry date of the Trial Version.&amp;#160; The Trial Edition or Evaluation Edition of SQL Server will expire exactly 180 days after the install date.&amp;#160; Using it after the 180 days period is violation of MICROSOFT evaluation license terms.&amp;#160; Anyways after 180 days when an install of Evaluation Edition Expires, the SQL Server services stop functioning.&amp;#160; So you must purchase the license for SQL Server and upgrade the Evaluation copy before the expiry date of the Evaluation.&lt;/p&gt;  &lt;p&gt;But then how to find out the exact expiry date of Trial Version?&amp;#160; There are 2 ways to find out&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;From installation logs &lt;/li&gt;    &lt;li&gt;From Management Studio &lt;/li&gt; &lt;/ul&gt;  &lt;li&gt;&lt;strong&gt;From installation logs&lt;/strong&gt;     &lt;br /&gt;A summary.txt file is get created during the installation of SQL Server.&amp;#160; So this summary.txt can give you the exact date and time of the SQL Server installation.&amp;#160; And the trial software will automatically expire after six months.&amp;#160; You can find summary.txt file under     &lt;table cellspacing="0" cellpadding="0" width="100%" bgcolor="#f4f4f4"&gt;&lt;tbody&gt;       &lt;tr&gt;         &lt;th align="left"&gt;&lt;/th&gt;          &lt;th align="right"&gt;&lt;tabindex bgcolor="#f6f6f2" ="0"&gt;&lt;/span&gt;&lt;/th&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td colspan="2"&gt;&lt;a name="f9877128-906e-483f-9bd2-d4d93048201a3"&gt;&lt;/a&gt;&lt;font face="Verdana"&gt;&amp;lt;Drive&amp;gt;\Program Files\Microsoft SQL Server\90\Setup Bootstrap\LOG\Summary.txt&lt;/font&gt; &lt;/td&gt;       &lt;/tr&gt;     &lt;/tbody&gt;&lt;/table&gt; &lt;/span&gt;    &lt;p&gt;At the end of the file you can see something like      &lt;table cellspacing="0" cellpadding="0" width="100%" bgcolor="#f4f4f4"&gt;&lt;tbody&gt;         &lt;tr&gt;           &lt;th align="left"&gt;&lt;/th&gt;            &lt;th align="right"&gt;&lt;tabindex bgcolor="#f6f6f2" ="0"&gt;&lt;/span&gt;&lt;/th&gt;         &lt;/tr&gt;          &lt;tr&gt;           &lt;td colspan="2"&gt;             &lt;p&gt;&lt;font face="Verdana"&gt;Setup succeeded with the installation, inspect the log file completely for status on all the components. &lt;/font&gt;&lt;/p&gt;              &lt;p&gt;&lt;font face="Verdana"&gt;Time : Tue Dec 30 15:59:55 2008&lt;/font&gt;&lt;/p&gt;           &lt;/td&gt;         &lt;/tr&gt;       &lt;/tbody&gt;&lt;/table&gt; &lt;/span&gt;&lt;/p&gt;    &lt;p&gt;So after 180 days counting from 30 Dec 2008 i.e. 28 Jun 2009 the SQL Server Evaluation Edition will be expired. &lt;/p&gt; &lt;/li&gt;  &lt;li&gt;   &lt;p&gt;&lt;strong&gt;From Management Studio&lt;/strong&gt;       &lt;br /&gt;Now this is very simple. Open the Management Studio, click on the “Help” of Menu Bar and then on “About”.&amp;#160; A new window will appear, where you will see some thing like:       &lt;table cellspacing="0" cellpadding="0" width="100%" bgcolor="#f4f4f4"&gt;&lt;tbody&gt;         &lt;tr&gt;           &lt;th align="left"&gt;&lt;/th&gt;            &lt;th align="right"&gt;&lt;tabindex bgcolor="#f6f6f2" ="0"&gt;&lt;/span&gt;&lt;/th&gt;         &lt;/tr&gt;          &lt;tr&gt;           &lt;td colspan="2"&gt;             &lt;pre&gt;&lt;font face="Verdana"&gt;Microsoft SQL Server Management Studio (expires in 102 days)&lt;/font&gt;&lt;/pre&gt;&lt;br /&gt;          &lt;/td&gt;&lt;br /&gt;        &lt;/tr&gt;&lt;br /&gt;      &lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;See the Image : &lt;a href="http://lh6.ggpht.com/_weIRgO4yuTo/ShalZ_B4B6I/AAAAAAAAAHE/tonM1vNnHto/s1600-h/untitled12%5B9%5D.jpg"&gt;&lt;img title="untitled12" style="border-top-width: 0px; display: block; border-left-width: 0px; float: none; border-bottom-width: 0px; margin-left: auto; margin-right: auto; border-right-width: 0px" height="484" alt="untitled12" src="http://lh3.ggpht.com/_weIRgO4yuTo/ShalazNBjHI/AAAAAAAAAHI/E3pOFr-fHTE/untitled12_thumb%5B7%5D.jpg?imgmax=800" width="379" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8585649008635531444-1154047913558765606?l=mangalpardeshi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mangalpardeshi.blogspot.com/feeds/1154047913558765606/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://mangalpardeshi.blogspot.com/2009/05/expiration-date-of-sql-server.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8585649008635531444/posts/default/1154047913558765606'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8585649008635531444/posts/default/1154047913558765606'/><link rel='alternate' type='text/html' href='http://mangalpardeshi.blogspot.com/2009/05/expiration-date-of-sql-server.html' title='Expiration Date of SQL Server Evaluation Edition'/><author><name>Mangal Pardeshi</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_weIRgO4yuTo/SzSmWMjAwJI/AAAAAAAAAKs/DgpUWlN5KZY/S220/y1m_Ev9g6OBzqJR8Z6lhdhzgWZ-bl8WwBuhHkrErOHngc14s42YU23gTajpglsbRjABGlnSHh-wUfbGievoo7soxuBY9uSp1K1I.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh3.ggpht.com/_weIRgO4yuTo/ShalazNBjHI/AAAAAAAAAHI/E3pOFr-fHTE/s72-c/untitled12_thumb%5B7%5D.jpg?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8585649008635531444.post-8612451657698977527</id><published>2009-05-20T15:20:00.001+05:30</published><updated>2009-05-20T17:30:19.835+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='FAQ'/><category scheme='http://www.blogger.com/atom/ns#' term='T-SQL'/><title type='text'>Calculating Running Totals</title><content type='html'>&lt;p&gt;In one of my previous posts I wrote about Calculating Running Totals using a SELF JOIN.&amp;#160; But after realizing that, SELF JOIN is not efficient way of calculating Running Totals I thought of writing this post, with another technique without using Cursor. &lt;/p&gt;  &lt;p&gt;In this post I'll show you how to Calculate Running Totals without using a cursor.&amp;#160; On the same line with my previous post, the different scenarios I’ll be covering in this post are -&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Running Total for all records. &lt;/li&gt;    &lt;li&gt;Running Total on each Group of Records. &lt;/li&gt;    &lt;li&gt;Running Total on each Date. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;span style="font-size: 100%; font-family: verdana"&gt;Here is our sample table :&lt;/span&gt;&lt;/p&gt;  &lt;div align="center"&gt;   &lt;table cellspacing="0" cellpadding="2" width="346" align="center" border="1"&gt;&lt;tbody&gt;       &lt;tr bgcolor="#c6c3b5"&gt;         &lt;td valign="top" width="48"&gt;&lt;strong&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;ShipId&lt;/span&gt;&lt;/strong&gt;&lt;/td&gt;          &lt;td valign="top" width="48"&gt;&lt;strong&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;OrderId&lt;/span&gt;&lt;/strong&gt;&lt;/td&gt;          &lt;td valign="top" width="180"&gt;&lt;strong&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;ShipDate&lt;/span&gt;&lt;/strong&gt;&lt;/td&gt;          &lt;td valign="top" width="68"&gt;&lt;strong&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;Quantity&lt;/span&gt;&lt;/strong&gt;&lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top" width="48"&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;1&lt;/span&gt;&lt;/td&gt;          &lt;td valign="top" width="48"&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;1&lt;/span&gt;&lt;/td&gt;          &lt;td valign="top" width="180"&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;2009-02-01 12:06:16.820&lt;/span&gt;&lt;/td&gt;          &lt;td valign="top" width="68"&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;10&lt;/span&gt;&lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top" width="48"&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;2&lt;/span&gt;&lt;/td&gt;          &lt;td valign="top" width="48"&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;1&lt;/span&gt;&lt;/td&gt;          &lt;td valign="top" width="180"&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;2009-02-02 16:16:16.820&lt;/span&gt;&lt;/td&gt;          &lt;td valign="top" width="68"&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;15&lt;/span&gt;&lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top" width="48"&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;3&lt;/span&gt;&lt;/td&gt;          &lt;td valign="top" width="48"&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;2&lt;/span&gt;&lt;/td&gt;          &lt;td valign="top" width="180"&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;2009-02-01 13:26:16.820&lt;/span&gt;&lt;/td&gt;          &lt;td valign="top" width="68"&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;20&lt;/span&gt;&lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top" width="48"&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;4&lt;/span&gt;&lt;/td&gt;          &lt;td valign="top" width="48"&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;2&lt;/span&gt;&lt;/td&gt;          &lt;td valign="top" width="180"&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;2009-02-03 17:40:16.820&lt;/span&gt;&lt;/td&gt;          &lt;td valign="top" width="68"&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;12&lt;/span&gt;&lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top" width="48"&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;5&lt;/span&gt;&lt;/td&gt;          &lt;td valign="top" width="48"&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;2&lt;/span&gt;&lt;/td&gt;          &lt;td valign="top" width="180"&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;2009-02-04 13:05:16.820&lt;/span&gt;&lt;/td&gt;          &lt;td valign="top" width="68"&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;15&lt;/span&gt;&lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top" width="48"&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;6&lt;/span&gt;&lt;/td&gt;          &lt;td valign="top" width="48"&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;3&lt;/span&gt;&lt;/td&gt;          &lt;td valign="top" width="180"&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;2009-02-03 14:25:16.820&lt;/span&gt;&lt;/td&gt;          &lt;td valign="top" width="68"&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;25&lt;/span&gt;&lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top" width="48"&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;7&lt;/span&gt;&lt;/td&gt;          &lt;td valign="top" width="48"&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;3&lt;/span&gt;&lt;/td&gt;          &lt;td valign="top" width="180"&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;2009-02-04 15:50:16.820&lt;/span&gt;&lt;/td&gt;          &lt;td valign="top" width="68"&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;50&lt;/span&gt;&lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top" width="48"&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;8&lt;/span&gt;&lt;/td&gt;          &lt;td valign="top" width="48"&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;3&lt;/span&gt;&lt;/td&gt;          &lt;td valign="top" width="180"&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;2009-02-05 19:40:16.820&lt;/span&gt;&lt;/td&gt;          &lt;td valign="top" width="68"&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;30&lt;/span&gt;&lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top" width="48"&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;9&lt;/span&gt;&lt;/td&gt;          &lt;td valign="top" width="48"&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;4&lt;/span&gt;&lt;/td&gt;          &lt;td valign="top" width="180"&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;2009-02-06 15:30:16.820&lt;/span&gt;&lt;/td&gt;          &lt;td valign="top" width="68"&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;20&lt;/span&gt;&lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top" width="48"&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;10&lt;/span&gt;&lt;/td&gt;          &lt;td valign="top" width="48"&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;4&lt;/span&gt;&lt;/td&gt;          &lt;td valign="top" width="180"&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;2009-02-07 16:20:16.820&lt;/span&gt;&lt;/td&gt;          &lt;td valign="top" width="68"&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;10&lt;/span&gt;&lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top" width="48"&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;11&lt;/span&gt;&lt;/td&gt;          &lt;td valign="top" width="48"&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;5&lt;/span&gt;&lt;/td&gt;          &lt;td valign="top" width="180"&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;2009-02-05 17:05:16.820&lt;/span&gt;&lt;/td&gt;          &lt;td valign="top" width="68"&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;35&lt;/span&gt;&lt;/td&gt;       &lt;/tr&gt;     &lt;/tbody&gt;&lt;/table&gt; &lt;/div&gt;  &lt;p&gt;&lt;b&gt;&lt;span style="font-size: 100%; font-family: verdana"&gt;Create Sample Data:&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;  &lt;table cellspacing="0" cellpadding="0" width="100%" bgcolor="#f4f4f4"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign="top" width="617"&gt;         &lt;p&gt;&lt;span style="font-size: 78%"&gt;&lt;span style="font-family: verdana"&gt;&lt;span style="color: #008000"&gt;-- Create Table&lt;/span&gt;                 &lt;br /&gt;&lt;span style="color: #0000ff"&gt;CREATE&lt;/span&gt; &lt;span style="color: #0000ff"&gt;TABLE&lt;/span&gt; Sales                 &lt;br /&gt;( ShipId &lt;span style="color: #0000ff"&gt;INT&lt;/span&gt;,                 &lt;br /&gt;OrderId &lt;span style="color: #0000ff"&gt;INT&lt;/span&gt;,                 &lt;br /&gt;ShipDate DateTime,                 &lt;br /&gt;Quantity &lt;span style="color: #0000ff"&gt;INT&lt;/span&gt; )                 &lt;br /&gt;&lt;span style="color: #0000ff"&gt;GO&lt;/span&gt;                 &lt;br /&gt;&lt;span style="color: #008000"&gt;-- Load Sample Data&lt;/span&gt; &lt;/span&gt;&lt;/span&gt;            &lt;br /&gt;&lt;span style="font-size: 78%"&gt;&lt;span style="font-family: verdana"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 78%"&gt;&lt;span style="font-family: verdana"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 78%"&gt;&lt;span style="font-family: verdana"&gt;INSERT &lt;span style="color: #0000ff"&gt;INTO&lt;/span&gt; Sales &lt;span style="color: #0000ff"&gt;SELECT&lt;/span&gt;                 &lt;br /&gt;1,1, &lt;span style="color: #006080"&gt;&lt;font color="#ff0000"&gt;'Feb 01 2009 12:06:16:820PM'&lt;/font&gt;&lt;/span&gt;,10 &lt;span style="color: #0000ff"&gt;UNION&lt;/span&gt; &lt;span style="color: #0000ff"&gt;ALL&lt;/span&gt; &lt;span style="color: #0000ff"&gt;SELECT&lt;/span&gt;                 &lt;br /&gt;2,1, &lt;span style="color: #006080"&gt;&lt;font color="#ff0000"&gt;'Feb 02 2009 04:16:16:820PM'&lt;/font&gt;&lt;/span&gt;,15 &lt;span style="color: #0000ff"&gt;UNION&lt;/span&gt; &lt;span style="color: #0000ff"&gt;ALL&lt;/span&gt; &lt;span style="color: #0000ff"&gt;SELECT&lt;/span&gt;                 &lt;br /&gt;3,2, &lt;span style="color: #006080"&gt;&lt;font color="#ff0000"&gt;'Feb 01 2009 01:26:16:820PM'&lt;/font&gt;&lt;/span&gt;,20 &lt;span style="color: #0000ff"&gt;UNION&lt;/span&gt; &lt;span style="color: #0000ff"&gt;ALL&lt;/span&gt; &lt;span style="color: #0000ff"&gt;SELECT&lt;/span&gt;                 &lt;br /&gt;4,2, &lt;span style="color: #006080"&gt;&lt;font color="#ff0000"&gt;'Feb 03 2009 02:40:16:820PM'&lt;/font&gt;&lt;/span&gt;,12 &lt;span style="color: #0000ff"&gt;UNION&lt;/span&gt; &lt;span style="color: #0000ff"&gt;ALL&lt;/span&gt; &lt;span style="color: #0000ff"&gt;SELECT&lt;/span&gt;                 &lt;br /&gt;5,2, &lt;span style="color: #006080"&gt;&lt;font color="#ff0000"&gt;'Feb 04 2009 01:05:16:820PM'&lt;/font&gt;&lt;/span&gt;,15 &lt;span style="color: #0000ff"&gt;UNION&lt;/span&gt; &lt;span style="color: #0000ff"&gt;ALL&lt;/span&gt; &lt;span style="color: #0000ff"&gt;SELECT&lt;/span&gt;                 &lt;br /&gt;6,3, &lt;span style="color: #006080"&gt;&lt;font color="#ff0000"&gt;'Feb 03 2009 05:25:16:820PM'&lt;/font&gt;&lt;/span&gt;,25 &lt;span style="color: #0000ff"&gt;UNION&lt;/span&gt; &lt;span style="color: #0000ff"&gt;ALL&lt;/span&gt; &lt;span style="color: #0000ff"&gt;SELECT&lt;/span&gt;                 &lt;br /&gt;7,3, &lt;span style="color: #006080"&gt;&lt;font color="#ff0000"&gt;'Feb 04 2009 03:50:16:820PM'&lt;/font&gt;&lt;/span&gt;,50 &lt;span style="color: #0000ff"&gt;UNION&lt;/span&gt; &lt;span style="color: #0000ff"&gt;ALL&lt;/span&gt; &lt;span style="color: #0000ff"&gt;SELECT&lt;/span&gt;                 &lt;br /&gt;8,3, &lt;span style="color: #006080"&gt;&lt;font color="#ff0000"&gt;'Feb 05 2009 07:40:16:820PM'&lt;/font&gt;&lt;/span&gt;,30 &lt;span style="color: #0000ff"&gt;UNION&lt;/span&gt; &lt;span style="color: #0000ff"&gt;ALL&lt;/span&gt; &lt;span style="color: #0000ff"&gt;SELECT&lt;/span&gt;                 &lt;br /&gt;9,4, &lt;span style="color: #006080"&gt;&lt;font color="#ff0000"&gt;'Feb 06 2009 03:30:16:820PM'&lt;/font&gt;&lt;/span&gt;,20 &lt;span style="color: #0000ff"&gt;UNION&lt;/span&gt; &lt;span style="color: #0000ff"&gt;ALL&lt;/span&gt; &lt;span style="color: #0000ff"&gt;SELECT&lt;/span&gt;                 &lt;br /&gt;10,4, &lt;span style="color: #006080"&gt;&lt;font color="#ff0000"&gt;'Feb 07 2009 04:20:16:820PM'&lt;/font&gt;&lt;/span&gt;,10 &lt;span style="color: #0000ff"&gt;UNION&lt;/span&gt; &lt;span style="color: #0000ff"&gt;ALL&lt;/span&gt; &lt;span style="color: #0000ff"&gt;SELECT&lt;/span&gt;                 &lt;br /&gt;11,5, &lt;span style="color: #006080"&gt;&lt;font color="#ff0000"&gt;'Feb 05 2009 05:05:16:820PM'&lt;/font&gt;&lt;/span&gt;,35&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt; &lt;span style="font-size: 100%"&gt;&lt;span style="font-family: verdana"&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/span&gt;  &lt;div&gt;   &lt;br /&gt;&lt;span style="font-size: 100%"&gt;&lt;span style="font-family: verdana"&gt;&lt;strong&gt;Case I : &lt;/strong&gt;Running Total For all records.&lt;/span&gt;&lt;/span&gt;     &lt;br /&gt;Here I will calculate the Running Totals for each records. For that I'll be using a correlated sub query to calculate the Running Totals for the all the records. So the query will be : &lt;/div&gt;  &lt;div&gt;   &lt;table cellspacing="0" cellpadding="0" width="100%" bgcolor="#f4f4f4"&gt;&lt;tbody&gt;       &lt;tr&gt;         &lt;th align="left"&gt;&lt;/th&gt;          &lt;th align="right"&gt;&lt;tabindex bgcolor="#f6f6f2" ="0"&gt;&lt;/span&gt;&lt;/th&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td colspan="2"&gt;&lt;font face="Verdana"&gt;&lt;font color="#0000ff"&gt;SELECT&lt;/font&gt; O.ShipId, O.OrderId, O.ShipDate, O.Quantity               &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; ,(&lt;font color="#0000ff"&gt;SELECT&lt;/font&gt; &lt;font color="#ff0080"&gt;SUM&lt;/font&gt;(I.Quantity)               &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;font color="#0000ff"&gt;FROM&lt;/font&gt; Sales I               &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;font color="#0000ff"&gt;WHERE&lt;/font&gt; I.ShipId &amp;lt;= O.ShipId               &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; ) &lt;font color="#0000ff"&gt;as&lt;/font&gt; RunningTotal               &lt;br /&gt;&lt;font color="#0000ff"&gt;FROM&lt;/font&gt; Sales O               &lt;br /&gt;&lt;font color="#0000ff"&gt;ORDER BY&lt;/font&gt; O.ShipId&lt;/font&gt; &lt;/td&gt;       &lt;/tr&gt;     &lt;/tbody&gt;&lt;/table&gt; &lt;/div&gt; &lt;/span&gt;  &lt;div&gt;   &lt;br /&gt;&lt;span style="font-size: 100%; font-family: verdana"&gt;Here is the result returned by above query :&lt;/span&gt;     &lt;br /&gt;&lt;/div&gt;  &lt;div align="center"&gt;   &lt;table cellspacing="0" cellpadding="2" width="399" align="center" border="1"&gt;&lt;tbody&gt;       &lt;tr bgcolor="#c6c3b5"&gt;         &lt;td valign="top" width="40"&gt;&lt;strong&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;ShipId&lt;/span&gt;&lt;/strong&gt;&lt;/td&gt;          &lt;td valign="top" width="49"&gt;&lt;strong&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;OrderId&lt;/span&gt;&lt;/strong&gt;&lt;/td&gt;          &lt;td valign="top" width="177"&gt;&lt;strong&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;ShipDate&lt;/span&gt;&lt;/strong&gt;&lt;/td&gt;          &lt;td valign="top" width="52"&gt;&lt;strong&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;Quantity&lt;/span&gt;&lt;/strong&gt;&lt;/td&gt;          &lt;td valign="top" width="79"&gt;&lt;strong&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;RunningTotal&lt;/span&gt;&lt;/strong&gt;&lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top" width="40"&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;1&lt;/span&gt;&lt;/td&gt;          &lt;td valign="top" width="49"&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;1&lt;/span&gt;&lt;/td&gt;          &lt;td valign="top" width="177"&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;2009-02-01 12:06:16.820&lt;/span&gt;&lt;/td&gt;          &lt;td valign="top" width="52"&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;10&lt;/span&gt;&lt;/td&gt;          &lt;td valign="top" width="79"&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;10&lt;/span&gt;&lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top" width="40"&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;2&lt;/span&gt;&lt;/td&gt;          &lt;td valign="top" width="49"&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;1&lt;/span&gt;&lt;/td&gt;          &lt;td valign="top" width="177"&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;2009-02-02 16:16:16.820&lt;/span&gt;&lt;/td&gt;          &lt;td valign="top" width="52"&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;15&lt;/span&gt;&lt;/td&gt;          &lt;td valign="top" width="79"&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;25&lt;/span&gt;&lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top" width="40"&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;3&lt;/span&gt;&lt;/td&gt;          &lt;td valign="top" width="49"&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;2&lt;/span&gt;&lt;/td&gt;          &lt;td valign="top" width="177"&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;2009-02-01 13:26:16.820&lt;/span&gt;&lt;/td&gt;          &lt;td valign="top" width="52"&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;20&lt;/span&gt;&lt;/td&gt;          &lt;td valign="top" width="79"&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;45&lt;/span&gt;&lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top" width="40"&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;4&lt;/span&gt;&lt;/td&gt;          &lt;td valign="top" width="49"&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;2&lt;/span&gt;&lt;/td&gt;          &lt;td valign="top" width="177"&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;2009-02-03 17:40:16.820&lt;/span&gt;&lt;/td&gt;          &lt;td valign="top" width="52"&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;12&lt;/span&gt;&lt;/td&gt;          &lt;td valign="top" width="79"&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;57&lt;/span&gt;&lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top" width="40"&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;5&lt;/span&gt;&lt;/td&gt;          &lt;td valign="top" width="49"&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;2&lt;/span&gt;&lt;/td&gt;          &lt;td valign="top" width="177"&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;2009-02-04 13:05:16.820&lt;/span&gt;&lt;/td&gt;          &lt;td valign="top" width="52"&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;15&lt;/span&gt;&lt;/td&gt;          &lt;td valign="top" width="79"&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;72&lt;/span&gt;&lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top" width="40"&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;6&lt;/span&gt;&lt;/td&gt;          &lt;td valign="top" width="49"&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;3&lt;/span&gt;&lt;/td&gt;          &lt;td valign="top" width="177"&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;2009-02-03 14:25:16.820&lt;/span&gt;&lt;/td&gt;          &lt;td valign="top" width="52"&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;25&lt;/span&gt;&lt;/td&gt;          &lt;td valign="top" width="79"&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;97&lt;/span&gt;&lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top" width="40"&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;7&lt;/span&gt;&lt;/td&gt;          &lt;td valign="top" width="49"&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;3&lt;/span&gt;&lt;/td&gt;          &lt;td valign="top" width="177"&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;2009-02-04 15:50:16.820&lt;/span&gt;&lt;/td&gt;          &lt;td valign="top" width="52"&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;50&lt;/span&gt;&lt;/td&gt;          &lt;td valign="top" width="79"&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;147&lt;/span&gt;&lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top" width="40"&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;8&lt;/span&gt;&lt;/td&gt;          &lt;td valign="top" width="49"&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;3&lt;/span&gt;&lt;/td&gt;          &lt;td valign="top" width="177"&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;2009-02-05 19:40:16.820&lt;/span&gt;&lt;/td&gt;          &lt;td valign="top" width="52"&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;30&lt;/span&gt;&lt;/td&gt;          &lt;td valign="top" width="79"&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;177&lt;/span&gt;&lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top" width="40"&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;9&lt;/span&gt;&lt;/td&gt;          &lt;td valign="top" width="49"&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;4&lt;/span&gt;&lt;/td&gt;          &lt;td valign="top" width="177"&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;2009-02-06 15:30:16.820&lt;/span&gt;&lt;/td&gt;          &lt;td valign="top" width="52"&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;20&lt;/span&gt;&lt;/td&gt;          &lt;td valign="top" width="79"&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;197&lt;/span&gt;&lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top" width="40"&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;10&lt;/span&gt;&lt;/td&gt;          &lt;td valign="top" width="49"&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;4&lt;/span&gt;&lt;/td&gt;          &lt;td valign="top" width="177"&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;2009-02-07 16:20:16.820&lt;/span&gt;&lt;/td&gt;          &lt;td valign="top" width="52"&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;10&lt;/span&gt;&lt;/td&gt;          &lt;td valign="top" width="79"&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;207&lt;/span&gt;&lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top" width="40"&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;11&lt;/span&gt;&lt;/td&gt;          &lt;td valign="top" width="49"&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;5&lt;/span&gt;&lt;/td&gt;          &lt;td valign="top" width="177"&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;2009-02-05 17:05:16.820&lt;/span&gt;&lt;/td&gt;          &lt;td valign="top" width="52"&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;35&lt;/span&gt;&lt;/td&gt;          &lt;td valign="top" width="79"&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;242&lt;/span&gt;&lt;/td&gt;       &lt;/tr&gt;     &lt;/tbody&gt;&lt;/table&gt; &lt;/div&gt;  &lt;p&gt;&lt;span style="font-size: 100%"&gt;&lt;span style="font-family: verdana"&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size: 100%"&gt;&lt;span style="font-family: verdana"&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size: 100%"&gt;&lt;span style="font-family: verdana"&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size: 100%"&gt;&lt;span style="font-family: verdana"&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size: 100%"&gt;&lt;span style="font-family: verdana"&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size: 100%"&gt;&lt;span style="font-family: verdana"&gt;&lt;strong&gt;Case II:&lt;/strong&gt; Running Total on each Group of Records.&lt;/span&gt;&lt;/span&gt;     &lt;br /&gt;Now instead of calculating the running total for each record we will calculate the running total for each OrderId. For that small change in our above query will be addition of one condition in WHERE clause of , that will be - I.OrderId = O.OrderId. So the final query will be&lt;span style="font-size: 100%"&gt;&lt;span style="font-family: verdana"&gt;&lt;span style="font-size: 100%; font-family: verdana"&gt;:          &lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;    &lt;table cellspacing="0" cellpadding="0" width="100%" bgcolor="#f4f4f4"&gt;&lt;tbody&gt;       &lt;tr&gt;         &lt;th align="left"&gt;&lt;/th&gt;          &lt;th align="right"&gt;&lt;tabindex bgcolor="#f6f6f2" ="0"&gt;&lt;/span&gt;&lt;/th&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td colspan="2"&gt;&lt;font face="Verdana"&gt;&lt;font color="#0000ff"&gt;SELECT&lt;/font&gt; O.ShipId, O.OrderId, O.ShipDate, O.Quantity               &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; ,(&lt;font color="#0000ff"&gt;SELECT&lt;/font&gt; &lt;font color="#ff0080"&gt;SUM&lt;/font&gt;(I.Quantity)               &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;font color="#0000ff"&gt;FROM&lt;/font&gt; Sales I               &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;font color="#0000ff"&gt;WHERE&lt;/font&gt; I.OrderId = O.OrderId               &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; AND I.ShipId &amp;lt;= O.ShipId               &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; ) &lt;font color="#0000ff"&gt;as&lt;/font&gt; RunningTotal               &lt;br /&gt;&lt;font color="#0000ff"&gt;FROM&lt;/font&gt; Sales O               &lt;br /&gt;&lt;font color="#0000ff"&gt;ORDER BY&lt;/font&gt; OrderId&lt;/font&gt; &lt;/td&gt;       &lt;/tr&gt;     &lt;/tbody&gt;&lt;/table&gt; &lt;/p&gt; &lt;/span&gt;&lt;span style="font-size: 100%; font-family: verdana"&gt;And the Output :&lt;/span&gt;   &lt;br /&gt;  &lt;div align="center"&gt;   &lt;table cellspacing="0" cellpadding="2" width="399" align="center" border="1"&gt;&lt;tbody&gt;       &lt;tr bgcolor="#c6c3b5"&gt;         &lt;td valign="top" width="40"&gt;&lt;strong&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;ShipId&lt;/span&gt;&lt;/strong&gt;&lt;/td&gt;          &lt;td valign="top" width="49"&gt;&lt;strong&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;OrderId&lt;/span&gt;&lt;/strong&gt;&lt;/td&gt;          &lt;td valign="top" width="177"&gt;&lt;strong&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;ShipDate&lt;/span&gt;&lt;/strong&gt;&lt;/td&gt;          &lt;td valign="top" width="52"&gt;&lt;strong&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;Quantity&lt;/span&gt;&lt;/strong&gt;&lt;/td&gt;          &lt;td valign="top" width="79"&gt;&lt;strong&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;RunningTotal&lt;/span&gt;&lt;/strong&gt;&lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top" width="40"&gt;&lt;span style="font-size: 78%; color: #ff0000; font-family: verdana"&gt;&lt;font color="#800000"&gt;1&lt;/font&gt;&lt;/span&gt;&lt;/td&gt;          &lt;td valign="top" width="49"&gt;&lt;span style="font-size: 78%; color: #ff0000; font-family: verdana"&gt;&lt;font color="#800000"&gt;1&lt;/font&gt;&lt;/span&gt;&lt;/td&gt;          &lt;td valign="top" width="177"&gt;&lt;span style="font-size: 78%; color: #ff0000; font-family: verdana"&gt;&lt;font color="#800000"&gt;2009-02-01 12:06:16.820&lt;/font&gt;&lt;/span&gt;&lt;/td&gt;          &lt;td valign="top" width="52"&gt;&lt;span style="font-size: 78%; color: #ff0000; font-family: verdana"&gt;&lt;font color="#800000"&gt;10&lt;/font&gt;&lt;/span&gt;&lt;/td&gt;          &lt;td valign="top" width="79"&gt;&lt;span style="font-size: 78%; color: #ff0000; font-family: verdana"&gt;&lt;font color="#800000"&gt;10&lt;/font&gt;&lt;/span&gt;&lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top" width="40"&gt;&lt;span style="font-size: 78%; color: #ff0000; font-family: verdana"&gt;&lt;font color="#800000"&gt;2&lt;/font&gt;&lt;/span&gt;&lt;/td&gt;          &lt;td valign="top" width="49"&gt;&lt;span style="font-size: 78%; color: #ff0000; font-family: verdana"&gt;&lt;font color="#800000"&gt;1&lt;/font&gt;&lt;/span&gt;&lt;/td&gt;          &lt;td valign="top" width="177"&gt;&lt;span style="font-size: 78%; color: #ff0000; font-family: verdana"&gt;&lt;font color="#800000"&gt;2009-02-02 16:16:16.820&lt;/font&gt;&lt;/span&gt;&lt;/td&gt;          &lt;td valign="top" width="52"&gt;&lt;span style="font-size: 78%; color: #ff0000; font-family: verdana"&gt;&lt;font color="#800000"&gt;15&lt;/font&gt;&lt;/span&gt;&lt;/td&gt;          &lt;td valign="top" width="79"&gt;&lt;span style="font-size: 78%; color: #ff0000; font-family: verdana"&gt;&lt;font color="#800000"&gt;25&lt;/font&gt;&lt;/span&gt;&lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top" width="40"&gt;&lt;span style="font-size: 78%; color: #008000; font-family: verdana"&gt;&lt;font color="#004080"&gt;3&lt;/font&gt;&lt;/span&gt;&lt;/td&gt;          &lt;td valign="top" width="49"&gt;&lt;span style="font-size: 78%; color: #008000; font-family: verdana"&gt;&lt;font color="#004080"&gt;2&lt;/font&gt;&lt;/span&gt;&lt;/td&gt;          &lt;td valign="top" width="177"&gt;&lt;span style="font-size: 78%; color: #008000; font-family: verdana"&gt;&lt;font color="#004080"&gt;2009-02-01 13:26:16.820&lt;/font&gt;&lt;/span&gt;&lt;/td&gt;          &lt;td valign="top" width="52"&gt;&lt;span style="font-size: 78%; color: #008000; font-family: verdana"&gt;&lt;font color="#004080"&gt;20&lt;/font&gt;&lt;/span&gt;&lt;/td&gt;          &lt;td valign="top" width="79"&gt;&lt;span style="font-size: 78%; color: #008000; font-family: verdana"&gt;&lt;font color="#004080"&gt;20&lt;/font&gt;&lt;/span&gt;&lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top" width="40"&gt;&lt;span style="font-size: 78%; color: #008000; font-family: verdana"&gt;&lt;font color="#004080"&gt;4&lt;/font&gt;&lt;/span&gt;&lt;/td&gt;          &lt;td valign="top" width="49"&gt;&lt;span style="font-size: 78%; color: #008000; font-family: verdana"&gt;&lt;font color="#004080"&gt;2&lt;/font&gt;&lt;/span&gt;&lt;/td&gt;          &lt;td valign="top" width="177"&gt;&lt;span style="font-size: 78%; color: #008000; font-family: verdana"&gt;&lt;font color="#004080"&gt;2009-02-03 17:40:16.820&lt;/font&gt;&lt;/span&gt;&lt;/td&gt;          &lt;td valign="top" width="52"&gt;&lt;span style="font-size: 78%; color: #008000; font-family: verdana"&gt;&lt;font color="#004080"&gt;12&lt;/font&gt;&lt;/span&gt;&lt;/td&gt;          &lt;td valign="top" width="79"&gt;&lt;span style="font-size: 78%; color: #008000; font-family: verdana"&gt;&lt;font color="#004080"&gt;32&lt;/font&gt;&lt;/span&gt;&lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top" width="40"&gt;&lt;span style="font-size: 78%; color: #008000; font-family: verdana"&gt;&lt;font color="#004080"&gt;5&lt;/font&gt;&lt;/span&gt;&lt;/td&gt;          &lt;td valign="top" width="49"&gt;&lt;span style="font-size: 78%; color: #008000; font-family: verdana"&gt;&lt;font color="#004080"&gt;2&lt;/font&gt;&lt;/span&gt;&lt;/td&gt;          &lt;td valign="top" width="177"&gt;&lt;span style="font-size: 78%; color: #008000; font-family: verdana"&gt;&lt;font color="#004080"&gt;2009-02-04 13:05:16.820&lt;/font&gt;&lt;/span&gt;&lt;/td&gt;          &lt;td valign="top" width="52"&gt;&lt;span style="font-size: 78%; color: #008000; font-family: verdana"&gt;&lt;font color="#004080"&gt;15&lt;/font&gt;&lt;/span&gt;&lt;/td&gt;          &lt;td valign="top" width="79"&gt;&lt;span style="font-size: 78%; color: #008000; font-family: verdana"&gt;&lt;font color="#004080"&gt;47&lt;/font&gt;&lt;/span&gt;&lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top" width="40"&gt;&lt;span style="font-size: 78%; color: #ff0000; font-family: verdana"&gt;&lt;font color="#800000"&gt;6&lt;/font&gt;&lt;/span&gt;&lt;/td&gt;          &lt;td valign="top" width="49"&gt;&lt;span style="font-size: 78%; color: #ff0000; font-family: verdana"&gt;&lt;font color="#800000"&gt;3&lt;/font&gt;&lt;/span&gt;&lt;/td&gt;          &lt;td valign="top" width="177"&gt;&lt;span style="font-size: 78%; color: #ff0000; font-family: verdana"&gt;&lt;font color="#800000"&gt;2009-02-03 14:25:16.820&lt;/font&gt;&lt;/span&gt;&lt;/td&gt;          &lt;td valign="top" width="52"&gt;&lt;span style="font-size: 78%; color: #ff0000; font-family: verdana"&gt;&lt;font color="#800000"&gt;25&lt;/font&gt;&lt;/span&gt;&lt;/td&gt;          &lt;td valign="top" width="79"&gt;&lt;span style="font-size: 78%; color: #ff0000; font-family: verdana"&gt;&lt;font color="#800000"&gt;25&lt;/font&gt;&lt;/span&gt;&lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top" width="40"&gt;&lt;span style="font-size: 78%; color: #ff0000; font-family: verdana"&gt;&lt;font color="#800000"&gt;7&lt;/font&gt;&lt;/span&gt;&lt;/td&gt;          &lt;td valign="top" width="49"&gt;&lt;span style="font-size: 78%; color: #ff0000; font-family: verdana"&gt;&lt;font color="#800000"&gt;3&lt;/font&gt;&lt;/span&gt;&lt;/td&gt;          &lt;td valign="top" width="177"&gt;&lt;span style="font-size: 78%; color: #ff0000; font-family: verdana"&gt;&lt;font color="#800000"&gt;2009-02-04 15:50:16.820&lt;/font&gt;&lt;/span&gt;&lt;/td&gt;          &lt;td valign="top" width="52"&gt;&lt;span style="font-size: 78%; color: #ff0000; font-family: verdana"&gt;&lt;font color="#800000"&gt;50&lt;/font&gt;&lt;/span&gt;&lt;/td&gt;          &lt;td valign="top" width="79"&gt;&lt;span style="font-size: 78%; color: #ff0000; font-family: verdana"&gt;&lt;font color="#800000"&gt;75&lt;/font&gt;&lt;/span&gt;&lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top" width="40"&gt;&lt;span style="font-size: 78%; color: #ff0000; font-family: verdana"&gt;&lt;font color="#800000"&gt;8&lt;/font&gt;&lt;/span&gt;&lt;/td&gt;          &lt;td valign="top" width="49"&gt;&lt;span style="font-size: 78%; color: #ff0000; font-family: verdana"&gt;&lt;font color="#800000"&gt;3&lt;/font&gt;&lt;/span&gt;&lt;/td&gt;          &lt;td valign="top" width="177"&gt;&lt;span style="font-size: 78%; color: #ff0000; font-family: verdana"&gt;&lt;font color="#800000"&gt;2009-02-05 19:40:16.820&lt;/font&gt;&lt;/span&gt;&lt;/td&gt;          &lt;td valign="top" width="52"&gt;&lt;span style="font-size: 78%; color: #ff0000; font-family: verdana"&gt;&lt;font color="#800000"&gt;30&lt;/font&gt;&lt;/span&gt;&lt;/td&gt;          &lt;td valign="top" width="79"&gt;&lt;span style="font-size: 78%; color: #ff0000; font-family: verdana"&gt;&lt;font color="#800000"&gt;105&lt;/font&gt;&lt;/span&gt;&lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top" width="40"&gt;&lt;span style="font-size: 78%; color: #008000; font-family: verdana"&gt;&lt;font color="#004080"&gt;9&lt;/font&gt;&lt;/span&gt;&lt;/td&gt;          &lt;td valign="top" width="49"&gt;&lt;span style="font-size: 78%; color: #008000; font-family: verdana"&gt;&lt;font color="#004080"&gt;4&lt;/font&gt;&lt;/span&gt;&lt;/td&gt;          &lt;td valign="top" width="177"&gt;&lt;span style="font-size: 78%; color: #008000; font-family: verdana"&gt;&lt;font color="#004080"&gt;2009-02-06 15:30:16.820&lt;/font&gt;&lt;/span&gt;&lt;/td&gt;          &lt;td valign="top" width="52"&gt;&lt;span style="font-size: 78%; color: #008000; font-family: verdana"&gt;&lt;font color="#004080"&gt;20&lt;/font&gt;&lt;/span&gt;&lt;/td&gt;          &lt;td valign="top" width="79"&gt;&lt;span style="font-size: 78%; color: #008000; font-family: verdana"&gt;&lt;font color="#004080"&gt;20&lt;/font&gt;&lt;/span&gt;&lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top" width="40"&gt;&lt;span style="font-size: 78%; color: #008000; font-family: verdana"&gt;&lt;font color="#004080"&gt;10&lt;/font&gt;&lt;/span&gt;&lt;/td&gt;          &lt;td valign="top" width="49"&gt;&lt;span style="font-size: 78%; color: #008000; font-family: verdana"&gt;&lt;font color="#004080"&gt;4&lt;/font&gt;&lt;/span&gt;&lt;/td&gt;          &lt;td valign="top" width="177"&gt;&lt;span style="font-size: 78%; color: #008000; font-family: verdana"&gt;&lt;font color="#004080"&gt;2009-02-07 16:20:16.820&lt;/font&gt;&lt;/span&gt;&lt;/td&gt;          &lt;td valign="top" width="52"&gt;&lt;span style="font-size: 78%; color: #008000; font-family: verdana"&gt;&lt;font color="#004080"&gt;10&lt;/font&gt;&lt;/span&gt;&lt;/td&gt;          &lt;td valign="top" width="79"&gt;&lt;span style="font-size: 78%; color: #008000; font-family: verdana"&gt;&lt;font color="#004080"&gt;30&lt;/font&gt;&lt;/span&gt;&lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top" width="40"&gt;&lt;span style="font-size: 78%; color: #ff0000; font-family: verdana"&gt;&lt;font color="#800000"&gt;11&lt;/font&gt;&lt;/span&gt;&lt;/td&gt;          &lt;td valign="top" width="49"&gt;&lt;span style="font-size: 78%; color: #ff0000; font-family: verdana"&gt;&lt;font color="#800000"&gt;5&lt;/font&gt;&lt;/span&gt;&lt;/td&gt;          &lt;td valign="top" width="177"&gt;&lt;span style="font-size: 78%; color: #ff0000; font-family: verdana"&gt;&lt;font color="#800000"&gt;2009-02-05 17:05:16.820&lt;/font&gt;&lt;/span&gt;&lt;/td&gt;          &lt;td valign="top" width="52"&gt;&lt;span style="font-size: 78%; color: #ff0000; font-family: verdana"&gt;&lt;font color="#800000"&gt;35&lt;/font&gt;&lt;/span&gt;&lt;/td&gt;          &lt;td valign="top" width="79"&gt;&lt;span style="font-size: 78%; color: #ff0000; font-family: verdana"&gt;&lt;font color="#800000"&gt;35&lt;/font&gt;&lt;/span&gt;&lt;/td&gt;       &lt;/tr&gt;     &lt;/tbody&gt;&lt;/table&gt; &lt;/div&gt;  &lt;p&gt;&lt;span style="font-size: 100%; font-family: verdana"&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size: 100%; font-family: verdana"&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size: 100%; font-family: verdana"&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size: 100%; font-family: verdana"&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size: 100%"&gt;&lt;span style="font-family: verdana"&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size: 100%"&gt;&lt;span style="font-family: verdana"&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size: 100%"&gt;&lt;span style="font-family: verdana"&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size: 100%"&gt;&lt;span style="font-family: verdana"&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size: 100%"&gt;&lt;span style="font-family: verdana"&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size: 100%"&gt;&lt;span style="font-family: verdana"&gt;&lt;strong&gt;Case III:&lt;/strong&gt; Running Total on each Date.&lt;/span&gt;&lt;/span&gt;     &lt;br /&gt;&lt;span style="font-size: 100%; font-family: verdana"&gt;Now we will see how to calculate the Running Total for each day. For that some small modifications will required in our WHERE clause, observe them carefully and try to understand what I’m trying to do :      &lt;br /&gt;&lt;/span&gt;    &lt;table cellspacing="0" cellpadding="0" width="100%" bgcolor="#f4f4f4"&gt;&lt;tbody&gt;       &lt;tr&gt;         &lt;th align="left"&gt;&lt;/th&gt;          &lt;th align="right"&gt;&lt;font face="Verdana"&gt;&lt;tabindex bgcolor="#f6f6f2" ="0"&gt;&lt;/span&gt;&lt;/font&gt;&lt;/th&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td colspan="2"&gt;           &lt;p&gt;&lt;font face="Verdana"&gt;&lt;font color="#0000ff"&gt;SELECT&lt;/font&gt; O.ShipId, O.OrderId, O.ShipDate, O.Quantity                 &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; ,(&lt;font color="#0000ff"&gt;SELECT&lt;/font&gt; &lt;font color="#ff0080"&gt;SUM&lt;/font&gt;(I.Quantity)                 &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;font color="#0000ff"&gt;FROM&lt;/font&gt; Sales I                 &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;font color="#0000ff"&gt;WHERE&lt;/font&gt; I.shipDate &amp;lt;= O.Shipdate                 &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; AND &lt;font color="#ff0080"&gt;DateAdd&lt;/font&gt;(dd, &lt;font color="#ff0080"&gt;DateDiff&lt;/font&gt; (dd, 0, I.Shipdate), 0)                 &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; = &lt;font color="#ff0080"&gt;DateAdd&lt;/font&gt;(dd, &lt;font color="#ff0080"&gt;DateDiff&lt;/font&gt; (dd, 0, O.Shipdate) ,0)                 &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; ) &lt;font color="#0000ff"&gt;as&lt;/font&gt; RunningTotal                 &lt;br /&gt;&lt;font color="#0000ff"&gt;FROM&lt;/font&gt; Sales O                 &lt;br /&gt;&lt;font color="#0000ff"&gt;ORDER BY&lt;/font&gt; O.ShipDate&lt;/font&gt; &lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;     &lt;/tbody&gt;&lt;/table&gt; &lt;/p&gt; &lt;/span&gt;  &lt;p&gt;&lt;span style="font-size: 100%; font-family: verdana"&gt;And the output :&lt;/span&gt;&lt;/p&gt;  &lt;div align="center"&gt;   &lt;table cellspacing="0" cellpadding="2" width="422" align="center" border="1"&gt;&lt;tbody&gt;       &lt;tr bgcolor="#c6c3b5"&gt;         &lt;td valign="top" width="40"&gt;&lt;strong&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;ShipId&lt;/span&gt;&lt;/strong&gt;&lt;/td&gt;          &lt;td valign="top" width="49"&gt;&lt;strong&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;OrderId&lt;/span&gt;&lt;/strong&gt;&lt;/td&gt;          &lt;td valign="top" width="201"&gt;&lt;strong&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;ShipDate&lt;/span&gt;&lt;/strong&gt;&lt;/td&gt;          &lt;td valign="top" width="54"&gt;&lt;strong&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;Quantity&lt;/span&gt;&lt;/strong&gt;&lt;/td&gt;          &lt;td valign="top" width="76"&gt;&lt;strong&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;RunningTotal&lt;/span&gt;&lt;/strong&gt;&lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top" width="40"&gt;&lt;span style="font-size: 78%; color: #008000; font-family: verdana"&gt;&lt;font color="#004080" size="1"&gt;1&lt;/font&gt;&lt;/span&gt;&lt;/td&gt;          &lt;td valign="top" width="49"&gt;&lt;span style="font-size: 78%; color: #008000; font-family: verdana"&gt;&lt;font color="#004080" size="1"&gt;1&lt;/font&gt;&lt;/span&gt;&lt;/td&gt;          &lt;td valign="top" width="201"&gt;&lt;span style="color: #008000; font-family: verdana"&gt;&lt;font color="#004080" size="1"&gt;2009-02-01 12:06:16.820&lt;/font&gt;&lt;/span&gt;&lt;/td&gt;          &lt;td valign="top" width="54"&gt;&lt;span style="font-size: 78%; color: #008000; font-family: verdana"&gt;&lt;font color="#004080" size="1"&gt;10&lt;/font&gt;&lt;/span&gt;&lt;/td&gt;          &lt;td valign="top" width="76"&gt;&lt;span style="font-size: 78%; color: #008000; font-family: verdana"&gt;&lt;font color="#004080" size="1"&gt;10&lt;/font&gt;&lt;/span&gt;&lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top" width="40"&gt;&lt;span style="font-size: 78%; color: #008000; font-family: verdana"&gt;&lt;font color="#004080" size="1"&gt;3&lt;/font&gt;&lt;/span&gt;&lt;/td&gt;          &lt;td valign="top" width="49"&gt;&lt;span style="font-size: 78%; color: #008000; font-family: verdana"&gt;&lt;font color="#004080" size="1"&gt;2&lt;/font&gt;&lt;/span&gt;&lt;/td&gt;          &lt;td valign="top" width="201"&gt;&lt;span style="color: #008000; font-family: verdana"&gt;&lt;font color="#004080" size="1"&gt;2009-02-01 13:26:16.820&lt;/font&gt;&lt;/span&gt;&lt;/td&gt;          &lt;td valign="top" width="54"&gt;&lt;span style="font-size: 78%; color: #008000; font-family: verdana"&gt;&lt;font color="#004080" size="1"&gt;20&lt;/font&gt;&lt;/span&gt;&lt;/td&gt;          &lt;td valign="top" width="76"&gt;&lt;span style="font-size: 78%; color: #008000; font-family: verdana"&gt;&lt;font color="#004080" size="1"&gt;30&lt;/font&gt;&lt;/span&gt;&lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top" width="40"&gt;&lt;span style="font-size: 78%; color: #ff0000; font-family: verdana"&gt;&lt;font color="#800000" size="1"&gt;2&lt;/font&gt;&lt;/span&gt;&lt;/td&gt;          &lt;td valign="top" width="49"&gt;&lt;span style="font-size: 78%; color: #ff0000; font-family: verdana"&gt;&lt;font color="#800000" size="1"&gt;1&lt;/font&gt;&lt;/span&gt;&lt;/td&gt;          &lt;td valign="top" width="201"&gt;&lt;span style="color: #ff0000; font-family: verdana"&gt;&lt;font color="#800000" size="1"&gt;2009-02-02 16:16:16.820&lt;/font&gt;&lt;/span&gt;&lt;/td&gt;          &lt;td valign="top" width="54"&gt;&lt;span style="font-size: 78%; color: #ff0000; font-family: verdana"&gt;&lt;font color="#800000" size="1"&gt;15&lt;/font&gt;&lt;/span&gt;&lt;/td&gt;          &lt;td valign="top" width="76"&gt;&lt;span style="font-size: 78%; color: #ff0000; font-family: verdana"&gt;&lt;font color="#800000" size="1"&gt;15&lt;/font&gt;&lt;/span&gt;&lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top" width="40"&gt;&lt;span style="font-size: 78%; color: #008000; font-family: verdana"&gt;&lt;font color="#004080" size="1"&gt;6&lt;/font&gt;&lt;/span&gt;&lt;/td&gt;          &lt;td valign="top" width="49"&gt;&lt;span style="font-size: 78%; color: #008000; font-family: verdana"&gt;&lt;font color="#004080" size="1"&gt;3&lt;/font&gt;&lt;/span&gt;&lt;/td&gt;          &lt;td valign="top" width="201"&gt;&lt;span style="color: #008000; font-family: verdana"&gt;&lt;font color="#004080" size="1"&gt;2009-02-03 14:25:16.820&lt;/font&gt;&lt;/span&gt;&lt;/td&gt;          &lt;td valign="top" width="54"&gt;&lt;span style="font-size: 78%; color: #008000; font-family: verdana"&gt;&lt;font color="#004080" size="1"&gt;25&lt;/font&gt;&lt;/span&gt;&lt;/td&gt;          &lt;td valign="top" width="76"&gt;&lt;span style="font-size: 78%; color: #008000; font-family: verdana"&gt;&lt;font color="#004080" size="1"&gt;25&lt;/font&gt;&lt;/span&gt;&lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top" width="40"&gt;&lt;span style="font-size: 78%; color: #008000; font-family: verdana"&gt;&lt;font color="#004080" size="1"&gt;4&lt;/font&gt;&lt;/span&gt;&lt;/td&gt;          &lt;td valign="top" width="49"&gt;&lt;span style="font-size: 78%; color: #008000; font-family: verdana"&gt;&lt;font color="#004080" size="1"&gt;2&lt;/font&gt;&lt;/span&gt;&lt;/td&gt;          &lt;td valign="top" width="201"&gt;&lt;span style="color: #008000; font-family: verdana"&gt;&lt;font color="#004080" size="1"&gt;2009-02-03 17:40:16.820&lt;/font&gt;&lt;/span&gt;&lt;/td&gt;          &lt;td valign="top" width="54"&gt;&lt;span style="font-size: 78%; color: #008000; font-family: verdana"&gt;&lt;font color="#004080" size="1"&gt;12&lt;/font&gt;&lt;/span&gt;&lt;/td&gt;          &lt;td valign="top" width="76"&gt;&lt;span style="font-size: 78%; color: #008000; font-family: verdana"&gt;&lt;font color="#004080" size="1"&gt;37&lt;/font&gt;&lt;/span&gt;&lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top" width="40"&gt;&lt;span style="font-size: 78%; color: #ff0000; font-family: verdana"&gt;&lt;font color="#800000" size="1"&gt;5&lt;/font&gt;&lt;/span&gt;&lt;/td&gt;          &lt;td valign="top" width="49"&gt;&lt;span style="font-size: 78%; color: #ff0000; font-family: verdana"&gt;&lt;font color="#800000" size="1"&gt;2&lt;/font&gt;&lt;/span&gt;&lt;/td&gt;          &lt;td valign="top" width="201"&gt;&lt;span style="color: #ff0000; font-family: verdana"&gt;&lt;font color="#800000" size="1"&gt;2009-02-04 13:05:16.820&lt;/font&gt;&lt;/span&gt;&lt;/td&gt;          &lt;td valign="top" width="54"&gt;&lt;span style="font-size: 78%; color: #ff0000; font-family: verdana"&gt;&lt;font color="#800000" size="1"&gt;15&lt;/font&gt;&lt;/span&gt;&lt;/td&gt;          &lt;td valign="top" width="76"&gt;&lt;span style="font-size: 78%; color: #ff0000; font-family: verdana"&gt;&lt;font color="#800000" size="1"&gt;15&lt;/font&gt;&lt;/span&gt;&lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top" width="40"&gt;&lt;span style="font-size: 78%; color: #ff0000; font-family: verdana"&gt;&lt;font color="#800000" size="1"&gt;7&lt;/font&gt;&lt;/span&gt;&lt;/td&gt;          &lt;td valign="top" width="49"&gt;&lt;span style="font-size: 78%; color: #ff0000; font-family: verdana"&gt;&lt;font color="#800000" size="1"&gt;3&lt;/font&gt;&lt;/span&gt;&lt;/td&gt;          &lt;td valign="top" width="201"&gt;&lt;span style="color: #ff0000; font-family: verdana"&gt;&lt;font color="#800000" size="1"&gt;2009-02-04 15:50:16.820&lt;/font&gt;&lt;/span&gt;&lt;/td&gt;          &lt;td valign="top" width="54"&gt;&lt;span style="font-size: 78%; color: #ff0000; font-family: verdana"&gt;&lt;font color="#800000" size="1"&gt;50&lt;/font&gt;&lt;/span&gt;&lt;/td&gt;          &lt;td valign="top" width="76"&gt;&lt;span style="font-size: 78%; color: #ff0000; font-family: verdana"&gt;&lt;font color="#800000" size="1"&gt;65&lt;/font&gt;&lt;/span&gt;&lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top" width="40"&gt;&lt;span style="font-size: 78%; color: #008000; font-family: verdana"&gt;&lt;font color="#004080" size="1"&gt;11&lt;/font&gt;&lt;/span&gt;&lt;/td&gt;          &lt;td valign="top" width="49"&gt;&lt;span style="font-size: 78%; color: #008000; font-family: verdana"&gt;&lt;font color="#004080" size="1"&gt;5&lt;/font&gt;&lt;/span&gt;&lt;/td&gt;          &lt;td valign="top" width="201"&gt;&lt;span style="color: #008000; font-family: verdana"&gt;&lt;font color="#004080" size="1"&gt;2009-02-05 17:05:16.820&lt;/font&gt;&lt;/span&gt;&lt;/td&gt;          &lt;td valign="top" width="54"&gt;&lt;span style="font-size: 78%; color: #008000; font-family: verdana"&gt;&lt;font color="#004080" size="1"&gt;35&lt;/font&gt;&lt;/span&gt;&lt;/td&gt;          &lt;td valign="top" width="76"&gt;&lt;span style="font-size: 78%; color: #008000; font-family: verdana"&gt;&lt;font color="#004080" size="1"&gt;35&lt;/font&gt;&lt;/span&gt;&lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top" width="40"&gt;&lt;span style="font-size: 78%; color: #008000; font-family: verdana"&gt;&lt;font color="#004080" size="1"&gt;8&lt;/font&gt;&lt;/span&gt;&lt;/td&gt;          &lt;td valign="top" width="49"&gt;&lt;span style="font-size: 78%; color: #008000; font-family: verdana"&gt;&lt;font color="#004080" size="1"&gt;3&lt;/font&gt;&lt;/span&gt;&lt;/td&gt;          &lt;td valign="top" width="201"&gt;&lt;span style="color: #008000; font-family: verdana"&gt;&lt;font color="#004080" size="1"&gt;2009-02-05 19:40:16.820&lt;/font&gt;&lt;/span&gt;&lt;/td&gt;          &lt;td valign="top" width="54"&gt;&lt;span style="font-size: 78%; color: #008000; font-family: verdana"&gt;&lt;font color="#004080" size="1"&gt;30&lt;/font&gt;&lt;/span&gt;&lt;/td&gt;          &lt;td valign="top" width="76"&gt;&lt;span style="font-size: 78%; color: #008000; font-family: verdana"&gt;&lt;font color="#004080" size="1"&gt;65&lt;/font&gt;&lt;/span&gt;&lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top" width="40"&gt;&lt;span style="font-size: 78%; color: #ff0000; font-family: verdana"&gt;&lt;font color="#800000" size="1"&gt;9&lt;/font&gt;&lt;/span&gt;&lt;/td&gt;          &lt;td valign="top" width="49"&gt;&lt;span style="font-size: 78%; color: #ff0000; font-family: verdana"&gt;&lt;font color="#800000" size="1"&gt;4&lt;/font&gt;&lt;/span&gt;&lt;/td&gt;          &lt;td valign="top" width="201"&gt;&lt;span style="color: #ff0000; font-family: verdana"&gt;&lt;font color="#800000" size="1"&gt;2009-02-06 15:30:16.820&lt;/font&gt;&lt;/span&gt;&lt;/td&gt;          &lt;td valign="top" width="54"&gt;&lt;span style="font-size: 78%; color: #ff0000; font-family: verdana"&gt;&lt;font color="#800000" size="1"&gt;20&lt;/font&gt;&lt;/span&gt;&lt;/td&gt;          &lt;td valign="top" width="76"&gt;&lt;span style="font-size: 78%; color: #ff0000; font-family: verdana"&gt;&lt;font color="#800000" size="1"&gt;20&lt;/font&gt;&lt;/span&gt;&lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top" width="40"&gt;&lt;span style="font-size: 78%; color: #008000; font-family: verdana"&gt;&lt;font color="#004080" size="1"&gt;10&lt;/font&gt;&lt;/span&gt;&lt;/td&gt;          &lt;td valign="top" width="49"&gt;&lt;span style="font-size: 78%; color: #008000; font-family: verdana"&gt;&lt;font color="#004080" size="1"&gt;4&lt;/font&gt;&lt;/span&gt;&lt;/td&gt;          &lt;td valign="top" width="201"&gt;&lt;span style="color: #008000; font-family: verdana"&gt;&lt;font color="#004080" size="1"&gt;2009-02-07 16:20:16.820&lt;/font&gt;&lt;/span&gt;&lt;/td&gt;          &lt;td valign="top" width="54"&gt;&lt;span style="font-size: 78%; color: #008000; font-family: verdana"&gt;&lt;font color="#004080" size="1"&gt;10&lt;/font&gt;&lt;/span&gt;&lt;/td&gt;          &lt;td valign="top" width="76"&gt;&lt;span style="font-size: 78%; color: #008000; font-family: verdana"&gt;&lt;font color="#004080" size="1"&gt;10&lt;/font&gt;&lt;/span&gt;&lt;/td&gt;       &lt;/tr&gt;     &lt;/tbody&gt;&lt;/table&gt; &lt;/div&gt;  &lt;p&gt;&lt;span style="font-family: verdana"&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size: 130%; font-family: trebuchet ms"&gt;&lt;strong&gt;&lt;em&gt;Mangal Pardeshi&lt;/em&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8585649008635531444-8612451657698977527?l=mangalpardeshi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mangalpardeshi.blogspot.com/feeds/8612451657698977527/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://mangalpardeshi.blogspot.com/2009/05/calculating-running-totals.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8585649008635531444/posts/default/8612451657698977527'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8585649008635531444/posts/default/8612451657698977527'/><link rel='alternate' type='text/html' href='http://mangalpardeshi.blogspot.com/2009/05/calculating-running-totals.html' title='Calculating Running Totals'/><author><name>Mangal Pardeshi</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_weIRgO4yuTo/SzSmWMjAwJI/AAAAAAAAAKs/DgpUWlN5KZY/S220/y1m_Ev9g6OBzqJR8Z6lhdhzgWZ-bl8WwBuhHkrErOHngc14s42YU23gTajpglsbRjABGlnSHh-wUfbGievoo7soxuBY9uSp1K1I.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8585649008635531444.post-6084215196514432190</id><published>2009-05-15T15:36:00.001+05:30</published><updated>2009-05-19T15:54:36.196+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='T-SQL'/><title type='text'>GROUPING Function SQL Server</title><content type='html'>&lt;p&gt;&lt;font face="Verdana"&gt;If you are going to use ROLLUP or CUBE operators in future or used it in past, then this is the post you must read. &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Verdana"&gt;Well GROUPING is one of the least used function in T-SQL, even in cases where it should be used. And so many times instead of using GROUPING function we follow some wrong/bad practice by using ISNULL only.&amp;#160; I’ll just give you a small example of it in this post.&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Verdana"&gt;First lets understand what the GROUPING function is – From Books on line&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;a href="http://technet.microsoft.com/en-us/library/ms178544.aspx" target="_blank"&gt;&lt;font face="Verdana" color="#800000"&gt;GROUPING (Transact-SQL)&lt;/font&gt;&lt;/a&gt;&lt;font face="Verdana"&gt; : &lt;/font&gt;&lt;/b&gt;&lt;font face="Verdana"&gt;Indicates whether a specified column expression in a GROUP BY list is aggregated or not. GROUPING returns 1 for aggregated or 0 for not aggregated in the result set. GROUPING can be used only in the SELECT &amp;lt;select&amp;gt; list, HAVING, and ORDER BY clauses when GROUP BY is specified.&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Verdana"&gt;&lt;em&gt;Syntax :&lt;/em&gt; GROUPING ( &amp;lt;column_expression&amp;gt; )&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Verdana"&gt;Arguments &lt;/font&gt;&lt;font face="Verdana"&gt;&amp;lt;column_expression&amp;gt; : Is a column or an expression that contains a column in a GROUP BY clause. &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Verdana"&gt;To put it in simple words : &lt;strong&gt;GROUPING &lt;/strong&gt;is an aggregate function that causes an additional column to be output with a value of 1 when the row is added by either the CUBE or ROLLUP operator, or 0 when the row is not the result of CUBE or ROLLUP. &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Verdana"&gt;Grouping is allowed only in the select list associated with a GROUP BY clause that contains either the CUBE or ROLLUP operator.&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Verdana"&gt;So after reading it from the books on line “what the GROUPING function is”, you might like to ask me where it can be useful? And what is wrong practice I was talking about at the start of this post?&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Verdana"&gt;Well answer to 1&lt;sup&gt;st&lt;/sup&gt; question is, it is very useful while using ROLLUP or CUBE operator. Especially when you have some NULL values in any of the columns used in GROUP BY clause. Basically it helps us to identify which row is added by CUBE or ROLLUP operator. Need of this function arises because when CUBE or ROLLUP operator adds the subtotals and totals rows to result SQL Server returns NULL in related GROUP columns. And in such cases it is difficult to differentiate between actual NULL values from the column and the NULL returned by CUBE or ROLLUP operator.&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Verdana"&gt;Now to understand how it works and the wrong practice I was talking about, lets see following example.&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Verdana"&gt;For example I'll take a simplified table of sales representatives and and their Sales in respective Zones. &lt;/font&gt;    &lt;table cellspacing="0" cellpadding="0" width="100%" bgcolor="#f4f4f4"&gt;&lt;tbody&gt;       &lt;tr&gt;         &lt;th align="left"&gt;&lt;font face="Verdana"&gt;&lt;/font&gt;&lt;/th&gt;          &lt;th align="right"&gt;&lt;font face="Verdana"&gt;&lt;tabindex  ="0" bgcolor="#f6f6f2"&gt;&lt;/span&gt;&lt;/font&gt;&lt;/th&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td colspan="2"&gt;           &lt;p&gt;&lt;font face="Verdana" size="1"&gt;&lt;font color="#008000"&gt;-- create sample table Sales&lt;/font&gt; &lt;/font&gt;&lt;/p&gt;            &lt;p&gt;&lt;font face="Verdana" size="1"&gt;&lt;font color="#0000ff"&gt;CREATE TABLE&lt;/font&gt; Sales                 &lt;br /&gt;(                 &lt;br /&gt;ID &lt;font color="#0000ff"&gt;INT&lt;/font&gt;,                 &lt;br /&gt;FName &lt;font color="#0000ff"&gt;VARCHAR(30), &lt;/font&gt;                &lt;br /&gt;Zone &lt;font color="#0000ff"&gt;VARCHAR(30)&lt;/font&gt;,                 &lt;br /&gt;Sale &lt;font color="#0000ff"&gt;INT&lt;/font&gt;                 &lt;br /&gt;)                 &lt;br /&gt;GO &lt;/font&gt;&lt;/p&gt;            &lt;p&gt;&lt;font face="Verdana" size="1"&gt;&lt;font color="#008000"&gt;-- Load sample data&lt;/font&gt; &lt;/font&gt;&lt;/p&gt;            &lt;p&gt;&lt;font face="Verdana" size="1"&gt;&lt;font color="#0000ff"&gt;INSERT INTO&lt;/font&gt; Sales &lt;font color="#0000ff"&gt;SELECT&lt;/font&gt;                 &lt;br /&gt;1, &lt;font color="#ff0000"&gt;'Mangal'&lt;/font&gt;, &lt;font color="#ff0000"&gt;'East'&lt;/font&gt;, 20 &lt;font color="#0000ff"&gt;UNION ALL SELECT                  &lt;br /&gt;&lt;/font&gt;2, &lt;font color="#ff0000"&gt;'Mangal'&lt;/font&gt;,&lt;font color="#ff0000"&gt; 'East'&lt;/font&gt;, 150&lt;font color="#0000ff"&gt; UNION ALL SELECT                  &lt;br /&gt;&lt;/font&gt;3, &lt;font color="#ff0000"&gt;'Mangal'&lt;/font&gt;,&lt;font color="#ff0000"&gt; 'West'&lt;/font&gt;, 50 &lt;font color="#0000ff"&gt;UNION ALL SELECT&lt;/font&gt;                 &lt;br /&gt;4, &lt;font color="#ff0000"&gt;'Ram'&lt;/font&gt;,&lt;font color="#ff0000"&gt; 'East'&lt;/font&gt;, 45 &lt;font color="#0000ff"&gt;UNION ALL SELECT                  &lt;br /&gt;&lt;/font&gt;5, '&lt;font color="#ff0000"&gt;Ram'&lt;/font&gt;, NULL, 80 &lt;font color="#0000ff"&gt;UNION ALL SELECT                  &lt;br /&gt;&lt;/font&gt;6, &lt;font color="#ff0000"&gt;'Ram'&lt;/font&gt;, NULL, 40&lt;font color="#0000ff"&gt; UNION ALL SELECT                  &lt;br /&gt;&lt;/font&gt;7, &lt;font color="#ff0000"&gt;'Sachin'&lt;/font&gt;,&lt;font color="#ff0000"&gt; 'West'&lt;/font&gt;, 50&lt;font color="#0000ff"&gt; UNION ALL SELECT                  &lt;br /&gt;&lt;/font&gt;8,&lt;font color="#ff0000"&gt; 'Sachin'&lt;/font&gt;,&lt;font color="#ff0000"&gt; 'West'&lt;/font&gt;, 40                 &lt;br /&gt;GO &lt;/font&gt;&lt;/p&gt;            &lt;p&gt;&lt;font face="Verdana" size="1"&gt;&lt;font color="#008000"&gt;-- Test sample data&lt;/font&gt; &lt;/font&gt;&lt;/p&gt;            &lt;p&gt;&lt;font face="Verdana" size="1"&gt;&lt;font color="#0000ff"&gt;SELECT&lt;/font&gt; Id, FName, Zone, Sale                 &lt;br /&gt;&lt;font color="#0000ff"&gt;FROM&lt;/font&gt; Sales                 &lt;br /&gt;GO&lt;/font&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;     &lt;/tbody&gt;&lt;/table&gt; &lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Verdana"&gt;The sample data : &lt;/font&gt;    &lt;table bordercolor="#000000" bordercolordark="#c0c0c0" width="341" align="center" bgcolor="#ffffff" bordercolorlight="#808080" border="1"&gt;&lt;tbody&gt;       &lt;tr bgcolor="#c6c3b5"&gt;         &lt;td width="39"&gt;&lt;strong&gt;&lt;font face="Verdana"&gt;ID&lt;/font&gt;&lt;/strong&gt;&lt;/td&gt;          &lt;td width="107"&gt;&lt;strong&gt;&lt;font face="Verdana"&gt;FName&lt;/font&gt;&lt;/strong&gt;&lt;/td&gt;          &lt;td width="90"&gt;&lt;strong&gt;&lt;font face="Verdana"&gt;Zone&lt;/font&gt;&lt;/strong&gt;&lt;/td&gt;          &lt;td width="103"&gt;&lt;strong&gt;&lt;font face="Verdana"&gt;Sale&lt;/font&gt;&lt;/strong&gt;&lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td width="39"&gt;&lt;font face="Verdana"&gt;1&lt;/font&gt;&lt;/td&gt;          &lt;td width="107"&gt;&lt;font face="Verdana"&gt;Mangal&lt;/font&gt;&lt;/td&gt;          &lt;td width="90"&gt;&lt;font face="Verdana"&gt;East&lt;/font&gt;&lt;/td&gt;          &lt;td width="103"&gt;&lt;font face="Verdana"&gt;20&lt;/font&gt;&lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td width="39"&gt;&lt;font face="Verdana"&gt;2&lt;/font&gt;&lt;/td&gt;          &lt;td width="107"&gt;&lt;font face="Verdana"&gt;Mangal&lt;/font&gt;&lt;/td&gt;          &lt;td width="90"&gt;&lt;font face="Verdana"&gt;East&lt;/font&gt;&lt;/td&gt;          &lt;td width="103"&gt;&lt;font face="Verdana"&gt;150&lt;/font&gt;&lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td width="39"&gt;&lt;font face="Verdana"&gt;3&lt;/font&gt;&lt;/td&gt;          &lt;td width="107"&gt;&lt;font face="Verdana"&gt;Mangal&lt;/font&gt;&lt;/td&gt;          &lt;td width="90"&gt;&lt;font face="Verdana"&gt;West&lt;/font&gt;&lt;/td&gt;          &lt;td width="103"&gt;&lt;font face="Verdana"&gt;50&lt;/font&gt;&lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td width="39"&gt;&lt;font face="Verdana"&gt;4&lt;/font&gt;&lt;/td&gt;          &lt;td width="107"&gt;&lt;font face="Verdana"&gt;Ram&lt;/font&gt;&lt;/td&gt;          &lt;td width="90"&gt;&lt;font face="Verdana"&gt;East&lt;/font&gt;&lt;/td&gt;          &lt;td width="103"&gt;&lt;font face="Verdana"&gt;45&lt;/font&gt;&lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td width="39"&gt;&lt;font face="Verdana"&gt;5&lt;/font&gt;&lt;/td&gt;          &lt;td width="107"&gt;&lt;font face="Verdana"&gt;Ram&lt;/font&gt;&lt;/td&gt;          &lt;td width="90"&gt;&lt;font face="Verdana"&gt;NULL&lt;/font&gt;&lt;/td&gt;          &lt;td width="103"&gt;&lt;font face="Verdana"&gt;80&lt;/font&gt;&lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td width="39"&gt;&lt;font face="Verdana"&gt;6&lt;/font&gt;&lt;/td&gt;          &lt;td width="107"&gt;&lt;font face="Verdana"&gt;Ram&lt;/font&gt;&lt;/td&gt;          &lt;td width="90"&gt;&lt;font face="Verdana"&gt;NULL&lt;/font&gt;&lt;/td&gt;          &lt;td width="103"&gt;&lt;font face="Verdana"&gt;40&lt;/font&gt;&lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td width="39"&gt;&lt;font face="Verdana"&gt;7&lt;/font&gt;&lt;/td&gt;          &lt;td width="107"&gt;&lt;font face="Verdana"&gt;Sachin&lt;/font&gt;&lt;/td&gt;          &lt;td width="90"&gt;&lt;font face="Verdana"&gt;West&lt;/font&gt;&lt;/td&gt;          &lt;td width="103"&gt;&lt;font face="Verdana"&gt;50&lt;/font&gt;&lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td width="39"&gt;&lt;font face="Verdana"&gt;8&lt;/font&gt;&lt;/td&gt;          &lt;td width="107"&gt;&lt;font face="Verdana"&gt;Sachin&lt;/font&gt;&lt;/td&gt;          &lt;td width="90"&gt;&lt;font face="Verdana"&gt;West&lt;/font&gt;&lt;/td&gt;          &lt;td width="103"&gt;&lt;font face="Verdana"&gt;40&lt;/font&gt;&lt;/td&gt;       &lt;/tr&gt;     &lt;/tbody&gt;&lt;/table&gt; &lt;/p&gt;  &lt;p&gt;&lt;font face="Verdana"&gt;Now here is what we normally do when somebody asks us to summarize the sale column on FName with subtotals for each Zone : We write a SELECT query with GROUP BY FName, Zone WITH ROLLUP. And when we see NULLS coming in Zone/FName column because of ROLLUP we add a ISNULL function on Zone column (in this example we'll add ISNULL only on Zone column, as I have intentionally added some NULLS in Zone column's sample data ). And that is where we go wrong, the Wrong Practice I was talking about. &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;   &lt;table cellspacing="0" cellpadding="0" width="100%" bgcolor="#f4f4f4"&gt;&lt;tbody&gt;       &lt;tr&gt;         &lt;th align="left"&gt;&lt;font face="Verdana"&gt;&lt;/font&gt;&lt;/th&gt;          &lt;th align="right"&gt;&lt;font face="Verdana"&gt;&lt;tabindex  ="0" bgcolor="#f6f6f2"&gt;&lt;/span&gt;&lt;/font&gt;&lt;/th&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td colspan="2"&gt;           &lt;p&gt;&lt;font face="Verdana"&gt;&lt;font color="#0000ff"&gt;SELECT&lt;/font&gt; Fname, &lt;font color="#ff0080"&gt;ISNULL&lt;/font&gt;(Zone,&lt;font color="#ff0000"&gt; 'All Zone'&lt;/font&gt;) &lt;font color="#0000ff"&gt;as&lt;/font&gt; Zone, &lt;font color="#ff0080"&gt;SUM&lt;/font&gt;(Sale) &lt;font color="#0000ff"&gt;AS&lt;/font&gt; Total                 &lt;br /&gt;&lt;font color="#0000ff"&gt;FROM&lt;/font&gt; Sales                 &lt;br /&gt;&lt;font color="#0000ff"&gt;GROUP BY&lt;/font&gt; Fname, Zone&lt;font color="#0000ff"&gt; WITH ROLLUP                  &lt;br /&gt;ORDER BY&lt;/font&gt; FName&lt;/font&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;     &lt;/tbody&gt;&lt;/table&gt; &lt;/p&gt; &lt;/span&gt;  &lt;p&gt;&lt;strong&gt;&lt;font face="Verdana"&gt;The output : &lt;/font&gt;&lt;/strong&gt;    &lt;table bordercolor="#000000" bordercolordark="#c0c0c0" width="324" align="center" bgcolor="#ffffff" bordercolorlight="#808080" border="1"&gt;&lt;tbody&gt;       &lt;tr bgcolor="#c6c3b5"&gt;         &lt;td width="117"&gt;&lt;strong&gt;&lt;font face="Verdana"&gt;FName&lt;/font&gt;&lt;/strong&gt;&lt;/td&gt;          &lt;td width="97"&gt;&lt;strong&gt;&lt;font face="Verdana"&gt;Zone&lt;/font&gt;&lt;/strong&gt;&lt;/td&gt;          &lt;td width="108"&gt;&lt;strong&gt;&lt;font face="Verdana"&gt;Total&lt;/font&gt;&lt;/strong&gt;&lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td width="120"&gt;&lt;font face="Verdana"&gt;NULL&lt;/font&gt;&lt;/td&gt;          &lt;td width="99"&gt;&lt;font face="Verdana"&gt;All Zone&lt;/font&gt;&lt;/td&gt;          &lt;td width="109"&gt;&lt;font face="Verdana"&gt;475&lt;/font&gt;&lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td width="120"&gt;&lt;font face="Verdana"&gt;Mangal&lt;/font&gt;&lt;/td&gt;          &lt;td width="99"&gt;&lt;font face="Verdana"&gt;East&lt;/font&gt;&lt;/td&gt;          &lt;td width="109"&gt;&lt;font face="Verdana"&gt;170&lt;/font&gt;&lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td width="121"&gt;&lt;font face="Verdana"&gt;Mangal&lt;/font&gt;&lt;/td&gt;          &lt;td width="100"&gt;&lt;font face="Verdana"&gt;West&lt;/font&gt;&lt;/td&gt;          &lt;td width="109"&gt;&lt;font face="Verdana"&gt;50&lt;/font&gt;&lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td width="121"&gt;&lt;font face="Verdana"&gt;Mangal&lt;/font&gt;&lt;/td&gt;          &lt;td width="101"&gt;&lt;font face="Verdana"&gt;All Zone&lt;/font&gt;&lt;/td&gt;          &lt;td width="109"&gt;&lt;font face="Verdana"&gt;220&lt;/font&gt;&lt;/td&gt;       &lt;/tr&gt;        &lt;tr bgcolor="#cd5555"&gt;         &lt;td width="120"&gt;&lt;font face="Verdana"&gt;Ram&lt;/font&gt;&lt;/td&gt;          &lt;td width="102"&gt;&lt;font face="Verdana"&gt;All Zone&lt;/font&gt;&lt;/td&gt;          &lt;td width="108"&gt;&lt;font face="Verdana"&gt;120&lt;/font&gt;&lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td width="121"&gt;&lt;font face="Verdana"&gt;Ram&lt;/font&gt;&lt;/td&gt;          &lt;td width="102"&gt;&lt;font face="Verdana"&gt;East&lt;/font&gt;&lt;/td&gt;          &lt;td width="108"&gt;&lt;font face="Verdana"&gt;45&lt;/font&gt;&lt;/td&gt;       &lt;/tr&gt;        &lt;tr bgcolor="#cd5555"&gt;         &lt;td width="121"&gt;&lt;font face="Verdana"&gt;Ram&lt;/font&gt;&lt;/td&gt;          &lt;td width="102"&gt;&lt;font face="Verdana"&gt;All Zone&lt;/font&gt;&lt;/td&gt;          &lt;td width="108"&gt;&lt;font face="Verdana"&gt;165&lt;/font&gt;&lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td width="121"&gt;&lt;font face="Verdana"&gt;Sachin&lt;/font&gt;&lt;/td&gt;          &lt;td width="102"&gt;&lt;font face="Verdana"&gt;West&lt;/font&gt;&lt;/td&gt;          &lt;td width="108"&gt;&lt;font face="Verdana"&gt;90&lt;/font&gt;&lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td width="121"&gt;&lt;font face="Verdana"&gt;Sachin&lt;/font&gt;&lt;/td&gt;          &lt;td width="102"&gt;&lt;font face="Verdana"&gt;All Zone&lt;/font&gt;&lt;/td&gt;          &lt;td width="108"&gt;&lt;font face="Verdana"&gt;90&lt;/font&gt;&lt;/td&gt;       &lt;/tr&gt;     &lt;/tbody&gt;&lt;/table&gt; &lt;/p&gt; &lt;font face="Verdana"&gt;As you can see in the result, for Mangal and Sachin everything looks fine, but for Ram there are two “All Zone” in Zone column. Well 1st 'All Zone' is because of actual NULL value in Zone column and 2nd All Zone is sub total returned by ROLLUP operator for all Zones for Ram. But ISNULL is not capable of differentiating between these two NULLS and blindly replaces them with 'All Zone'. And that's when GROUPING function comes in for our help. Now 1st just see what GROUPING returns, execute the following query - &lt;/font&gt;  &lt;p&gt;   &lt;table cellspacing="0" cellpadding="0" width="100%" bgcolor="#f4f4f4"&gt;&lt;tbody&gt;       &lt;tr&gt;         &lt;th align="left"&gt;&lt;font face="Verdana"&gt;&lt;/font&gt;&lt;/th&gt;          &lt;th align="right"&gt;&lt;font face="Verdana"&gt;&lt;tabindex  ="0" bgcolor="#f6f6f2"&gt;&lt;/span&gt;&lt;/font&gt;&lt;/th&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td colspan="2"&gt;           &lt;p&gt;&lt;font face="Verdana"&gt;&lt;font color="#0000ff"&gt;SELECT&lt;/font&gt; FName,Zone, &lt;font color="#ff0080"&gt;SUM&lt;/font&gt;(Sale) &lt;font color="#0000ff"&gt;AS&lt;/font&gt; Total, &lt;font color="#ff0080"&gt;GROUPING&lt;/font&gt;(Zone) as &lt;font color="#ff0000"&gt;'Grouping'                  &lt;br /&gt;&lt;/font&gt;&lt;font color="#0000ff"&gt;FROM&lt;/font&gt; Sales                 &lt;br /&gt;&lt;font color="#0000ff"&gt;GROUP BY&lt;/font&gt; FName, Zone &lt;font color="#0000ff"&gt;WITH ROLLUP                  &lt;br /&gt;ORDER BY&lt;/font&gt;&amp;#160; FName &lt;/font&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;     &lt;/tbody&gt;&lt;/table&gt; &lt;/p&gt; &lt;/span&gt;  &lt;p&gt;&lt;font face="Verdana"&gt;And the result : &lt;/font&gt;    &lt;table bordercolor="#000000" bordercolordark="#c0c0c0" width="313" align="center" bgcolor="#ffffff" bordercolorlight="#808080" border="1"&gt;&lt;tbody&gt;       &lt;tr bgcolor="#c6c3b5"&gt;         &lt;td width="94"&gt;&lt;strong&gt;&lt;font face="Verdana"&gt;FName&lt;/font&gt;&lt;/strong&gt;&lt;/td&gt;          &lt;td width="76"&gt;&lt;strong&gt;&lt;font face="Verdana"&gt;Zone&lt;/font&gt;&lt;/strong&gt;&lt;/td&gt;          &lt;td width="70"&gt;&lt;strong&gt;&lt;font face="Verdana"&gt;Sale&lt;/font&gt;&lt;/strong&gt;&lt;/td&gt;          &lt;td width="71"&gt;&lt;font face="Verdana"&gt;&lt;strong&gt;Grouping&lt;/strong&gt;&lt;/font&gt;&lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td width="94"&gt;&lt;font face="Verdana"&gt;NULL&lt;/font&gt;&lt;/td&gt;          &lt;td width="77"&gt;&lt;font face="Verdana"&gt;NULL&lt;/font&gt;&lt;/td&gt;          &lt;td width="70"&gt;&lt;font face="Verdana"&gt;475&lt;/font&gt;&lt;/td&gt;          &lt;td width="71"&gt;&lt;strong&gt;&lt;font face="Verdana"&gt;1&lt;/font&gt;&lt;/strong&gt;&lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td width="94"&gt;&lt;font face="Verdana"&gt;Mangal&lt;/font&gt;&lt;/td&gt;          &lt;td width="77"&gt;&lt;font face="Verdana"&gt;East&lt;/font&gt;&lt;/td&gt;          &lt;td width="70"&gt;&lt;font face="Verdana"&gt;170&lt;/font&gt;&lt;/td&gt;          &lt;td width="71"&gt;&lt;font face="Verdana"&gt;0&lt;/font&gt;&lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td width="94"&gt;&lt;font face="Verdana"&gt;Mangal&lt;/font&gt;&lt;/td&gt;          &lt;td width="77"&gt;&lt;font face="Verdana"&gt;West&lt;/font&gt;&lt;/td&gt;          &lt;td width="70"&gt;&lt;font face="Verdana"&gt;50&lt;/font&gt;&lt;/td&gt;          &lt;td width="71"&gt;&lt;font face="Verdana"&gt;0&lt;/font&gt;&lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td width="94"&gt;&lt;font face="Verdana"&gt;Mangal&lt;/font&gt;&lt;/td&gt;          &lt;td width="77"&gt;&lt;font face="Verdana"&gt;NULL&lt;/font&gt;&lt;/td&gt;          &lt;td width="70"&gt;&lt;font face="Verdana"&gt;220&lt;/font&gt;&lt;/td&gt;          &lt;td width="71"&gt;&lt;strong&gt;&lt;font face="Verdana"&gt;1&lt;/font&gt;&lt;/strong&gt;&lt;/td&gt;       &lt;/tr&gt;        &lt;tr bgcolor="#cd5555"&gt;         &lt;td width="94"&gt;&lt;font face="Verdana"&gt;Ram&lt;/font&gt;&lt;/td&gt;          &lt;td width="77"&gt;&lt;font face="Verdana"&gt;NULL&lt;/font&gt;&lt;/td&gt;          &lt;td width="70"&gt;&lt;font face="Verdana"&gt;120&lt;/font&gt;&lt;/td&gt;          &lt;td width="71"&gt;&lt;font face="Verdana"&gt;0&lt;/font&gt;&lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td width="94"&gt;&lt;font face="Verdana"&gt;Ram&lt;/font&gt;&lt;/td&gt;          &lt;td width="77"&gt;&lt;font face="Verdana"&gt;East&lt;/font&gt;&lt;/td&gt;          &lt;td width="70"&gt;&lt;font face="Verdana"&gt;45&lt;/font&gt;&lt;/td&gt;          &lt;td width="71"&gt;&lt;font face="Verdana"&gt;0&lt;/font&gt;&lt;/td&gt;       &lt;/tr&gt;        &lt;tr bgcolor="#cd5555"&gt;         &lt;td width="94"&gt;&lt;font face="Verdana"&gt;Ram&lt;/font&gt;&lt;/td&gt;          &lt;td width="77"&gt;&lt;font face="Verdana"&gt;NULL&lt;/font&gt;&lt;/td&gt;          &lt;td width="70"&gt;&lt;font face="Verdana"&gt;165&lt;/font&gt;&lt;/td&gt;          &lt;td width="71"&gt;&lt;strong&gt;&lt;font face="Verdana"&gt;1&lt;/font&gt;&lt;/strong&gt;&lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td width="94"&gt;&lt;font face="Verdana"&gt;Sachin&lt;/font&gt;&lt;/td&gt;          &lt;td width="77"&gt;&lt;font face="Verdana"&gt;West&lt;/font&gt;&lt;/td&gt;          &lt;td width="70"&gt;&lt;font face="Verdana"&gt;90&lt;/font&gt;&lt;/td&gt;          &lt;td width="71"&gt;&lt;font face="Verdana"&gt;0&lt;/font&gt;&lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td width="94"&gt;&lt;font face="Verdana"&gt;Sachin&lt;/font&gt;&lt;/td&gt;          &lt;td width="80"&gt;&lt;font face="Verdana"&gt;NULL&lt;/font&gt;&lt;/td&gt;          &lt;td width="70"&gt;&lt;font face="Verdana"&gt;90&lt;/font&gt;&lt;/td&gt;          &lt;td width="71"&gt;&lt;strong&gt;&lt;font face="Verdana"&gt;1&lt;/font&gt;&lt;/strong&gt;&lt;/td&gt;       &lt;/tr&gt;     &lt;/tbody&gt;&lt;/table&gt; &lt;/p&gt;  &lt;p&gt;&lt;font face="Verdana"&gt;In above result wherever you see 1 in Grouping column, that means that row is added by ROLLUP operator.&amp;#160; And wherever you see 0 in Grouping column, that means that row is not returned by ROLLUP.&amp;#160; So now identifying between NULL by ROLLUP and NULL from column becomes easy for us.&amp;#160; Now we can use this GROUPING indicator in our query, to identify the NULL rows added by ROLLUP operator, and NULLS from the column. &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Verdana"&gt;&lt;strong&gt;&lt;em&gt;So our final query will be :&lt;/em&gt;&lt;/strong&gt; &lt;/font&gt;    &lt;table cellspacing="0" cellpadding="0" width="100%" bgcolor="#f4f4f4"&gt;&lt;tbody&gt;       &lt;tr&gt;         &lt;th align="left"&gt;&lt;font face="Verdana"&gt;&lt;/font&gt;&lt;/th&gt;          &lt;th align="right"&gt;&lt;font face="Verdana"&gt;&lt;tabindex  ="0" bgcolor="#f6f6f2"&gt;&lt;/span&gt;&lt;/font&gt;&lt;/th&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td colspan="2"&gt;           &lt;p&gt;&lt;font face="Verdana"&gt;&lt;font color="#0000ff"&gt;SELECT&lt;/font&gt; Fname,&lt;font color="#0000ff"&gt;CASE&lt;/font&gt; &lt;font color="#ff0080"&gt;GROUPING&lt;/font&gt;(Zone)                 &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;font color="#0000ff"&gt;WHEN&lt;/font&gt; 1 &lt;font color="#0000ff"&gt;THEN&lt;/font&gt; &lt;font color="#ff0000"&gt;'All Zone'&lt;/font&gt;                 &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;font color="#0000ff"&gt;ELSE&lt;/font&gt; &lt;font color="#ff0080"&gt;ISNULL&lt;/font&gt;(Zone, &lt;font color="#ff0000"&gt;'Unknown'&lt;/font&gt;) &lt;font color="#0000ff"&gt;END as&lt;/font&gt; Zone,                 &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;font color="#ff0080"&gt;SUM&lt;/font&gt;(Sale) &lt;font color="#0000ff"&gt;AS&lt;/font&gt; Total                 &lt;br /&gt;&lt;font color="#0000ff"&gt;FROM&lt;/font&gt; Sales                 &lt;br /&gt;&lt;font color="#0000ff"&gt;GROUP BY&lt;/font&gt; Fname, Zone &lt;font color="#0000ff"&gt;WITH ROLLUP&lt;/font&gt;                 &lt;br /&gt;&lt;font color="#0000ff"&gt;ORDER BY&lt;/font&gt;&amp;#160; FName &lt;/font&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;     &lt;/tbody&gt;&lt;/table&gt; &lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Verdana"&gt;And the output:&lt;/font&gt;     &lt;table bordercolor="#000000" bordercolordark="#c0c0c0" width="324" align="center" bgcolor="#ffffff" bordercolorlight="#808080" border="1"&gt;&lt;tbody&gt;       &lt;tr bgcolor="#c6c3b5"&gt;         &lt;td width="117"&gt;&lt;strong&gt;&lt;font face="Verdana"&gt;FName&lt;/font&gt;&lt;/strong&gt;&lt;/td&gt;          &lt;td width="97"&gt;&lt;strong&gt;&lt;font face="Verdana"&gt;Zone&lt;/font&gt;&lt;/strong&gt;&lt;/td&gt;          &lt;td width="108"&gt;&lt;strong&gt;&lt;font face="Verdana"&gt;Total&lt;/font&gt;&lt;/strong&gt;&lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td width="120"&gt;&lt;font face="Verdana"&gt;NULL&lt;/font&gt;&lt;/td&gt;          &lt;td width="99"&gt;&lt;font face="Verdana"&gt;All Zone&lt;/font&gt;&lt;/td&gt;          &lt;td width="109"&gt;&lt;font face="Verdana"&gt;475&lt;/font&gt;&lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td width="120"&gt;&lt;font face="Verdana"&gt;Mangal&lt;/font&gt;&lt;/td&gt;          &lt;td width="99"&gt;&lt;font face="Verdana"&gt;East&lt;/font&gt;&lt;/td&gt;          &lt;td width="109"&gt;&lt;font face="Verdana"&gt;170&lt;/font&gt;&lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td width="121"&gt;&lt;font face="Verdana"&gt;Mangal&lt;/font&gt;&lt;/td&gt;          &lt;td width="100"&gt;&lt;font face="Verdana"&gt;West&lt;/font&gt;&lt;/td&gt;          &lt;td width="109"&gt;&lt;font face="Verdana"&gt;50&lt;/font&gt;&lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td width="121"&gt;&lt;font face="Verdana"&gt;Mangal&lt;/font&gt;&lt;/td&gt;          &lt;td width="101"&gt;&lt;font face="Verdana"&gt;All Zone&lt;/font&gt;&lt;/td&gt;          &lt;td width="109"&gt;&lt;font face="Verdana"&gt;220&lt;/font&gt;&lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td width="120"&gt;&lt;font face="Verdana"&gt;Ram&lt;/font&gt;&lt;/td&gt;          &lt;td width="102"&gt;&lt;font face="Verdana"&gt;&lt;strong&gt;Unknown&lt;/strong&gt;&lt;/font&gt;&lt;/td&gt;          &lt;td width="108"&gt;&lt;font face="Verdana"&gt;120&lt;/font&gt;&lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td width="121"&gt;&lt;font face="Verdana"&gt;Ram&lt;/font&gt;&lt;/td&gt;          &lt;td width="102"&gt;&lt;font face="Verdana"&gt;East&lt;/font&gt;&lt;/td&gt;          &lt;td width="108"&gt;&lt;font face="Verdana"&gt;45&lt;/font&gt;&lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td width="121"&gt;&lt;font face="Verdana"&gt;Ram&lt;/font&gt;&lt;/td&gt;          &lt;td width="102"&gt;&lt;font face="Verdana"&gt;&lt;strong&gt;All Zone&lt;/strong&gt;&lt;/font&gt;&lt;/td&gt;          &lt;td width="108"&gt;&lt;font face="Verdana"&gt;165&lt;/font&gt;&lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td width="121"&gt;&lt;font face="Verdana"&gt;Sachin&lt;/font&gt;&lt;/td&gt;          &lt;td width="102"&gt;&lt;font face="Verdana"&gt;West&lt;/font&gt;&lt;/td&gt;          &lt;td width="108"&gt;&lt;font face="Verdana"&gt;90&lt;/font&gt;&lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td width="121"&gt;&lt;font face="Verdana"&gt;Sachin&lt;/font&gt;&lt;/td&gt;          &lt;td width="102"&gt;&lt;font face="Verdana"&gt;All Zone&lt;/font&gt;&lt;/td&gt;          &lt;td width="108"&gt;&lt;font face="Verdana"&gt;90&lt;/font&gt;&lt;/td&gt;       &lt;/tr&gt;     &lt;/tbody&gt;&lt;/table&gt; &lt;/p&gt;  &lt;p&gt;&lt;font face="Verdana"&gt;So now, all NULLS from column are replaced by 'Unknown' and all subtotals added by ROLLUP comes with 'All Zone' in Zone column. &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Verdana"&gt;The GROUPING function becomes even more useful while using CUBE operator.&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Verdana"&gt;Mangal Pardeshi&lt;/font&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8585649008635531444-6084215196514432190?l=mangalpardeshi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mangalpardeshi.blogspot.com/feeds/6084215196514432190/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://mangalpardeshi.blogspot.com/2009/05/grouping-function-sql-server.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8585649008635531444/posts/default/6084215196514432190'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8585649008635531444/posts/default/6084215196514432190'/><link rel='alternate' type='text/html' href='http://mangalpardeshi.blogspot.com/2009/05/grouping-function-sql-server.html' title='GROUPING Function SQL Server'/><author><name>Mangal Pardeshi</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_weIRgO4yuTo/SzSmWMjAwJI/AAAAAAAAAKs/DgpUWlN5KZY/S220/y1m_Ev9g6OBzqJR8Z6lhdhzgWZ-bl8WwBuhHkrErOHngc14s42YU23gTajpglsbRjABGlnSHh-wUfbGievoo7soxuBY9uSp1K1I.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8585649008635531444.post-7243383674635301918</id><published>2009-04-29T17:05:00.001+05:30</published><updated>2009-07-17T10:56:57.082+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='FAQ'/><category scheme='http://www.blogger.com/atom/ns#' term='T-SQL'/><title type='text'>Query to fetch the Yesterday's Data</title><content type='html'>&lt;p&gt;&lt;font face="Verdana"&gt;Seems to be easy question. And many of you may be already knew 2-3 ways of doing it. Here is the query I use normally to get the all the data from the previous day(Yesterday).&lt;/font&gt;&lt;/p&gt;  &lt;table cellspacing="0" cellpadding="2" width="592" bgcolor="#f4f4f4" border="0"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign="top" width="590"&gt;&lt;font color="#000000"&gt;&lt;font size="1"&gt;&lt;font face="Verdana"&gt;&lt;span style="color: #0000ff"&gt;SELECT&lt;/span&gt; Id, OrderId, CustomerId                 &lt;br /&gt;&lt;span style="color: #0000ff"&gt;FROM&lt;/span&gt; Orders                 &lt;br /&gt;&lt;span style="color: #0000ff"&gt;WHERE&lt;/span&gt; &lt;span style="color: #0000ff"&gt;Date&lt;/span&gt; &amp;gt;= DateAdd(DD, DateDiff(DD, 0, GETDATE())-1, 0)                 &lt;br /&gt;&lt;span style="color: #0000ff"&gt;AND&lt;/span&gt; &lt;span style="color: #0000ff"&gt;Date&lt;/span&gt; &amp;lt; DateAdd(DD, DateDiff(DD, 0, GETDATE()), 0)&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;&lt;font face="Verdana"&gt;Make it more readable and scalable using variable&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Verdana"&gt;&lt;/font&gt;&lt;/p&gt;  &lt;table cellspacing="0" cellpadding="2" width="590" bgcolor="#f4f4f4" border="0"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign="top" width="588"&gt;&lt;font size="1"&gt;&lt;font face="Verdana"&gt;&lt;span style="color: #0000ff"&gt;DECLARE&lt;/span&gt; @YesterDay &lt;font color="#0000ff"&gt;DATETIME&lt;/font&gt;, @Today &lt;font color="#0000ff"&gt;DATETIME&lt;/font&gt;               &lt;br /&gt;&lt;span style="color: #0000ff"&gt;SET&lt;/span&gt; @YesterDay = &lt;font color="#ff00ff"&gt;DateAdd&lt;/font&gt;(DD, &lt;font color="#ff00ff"&gt;DateDiff&lt;/font&gt;(DD, 0, &lt;font color="#ff00ff"&gt;GETDATE&lt;/font&gt;())-1, 0)               &lt;br /&gt;&lt;span style="color: #0000ff"&gt;SET&lt;/span&gt; @Today = &lt;font color="#ff00ff"&gt;DateAdd&lt;/font&gt;(DD, &lt;font color="#ff00ff"&gt;DateDiff&lt;/font&gt;(DD, 0, &lt;font color="#ff00ff"&gt;GETDATE&lt;/font&gt;()), 0)               &lt;br /&gt;&lt;/font&gt;&lt;/font&gt;&lt;span style="color: #0000ff"&gt;           &lt;br /&gt;&lt;font face="Verdana" size="1"&gt;SELECT&lt;/font&gt;&lt;/span&gt;&lt;font face="Verdana" size="1"&gt; Id, OrderId, CustomerId            &lt;br /&gt;&lt;span style="color: #0000ff"&gt;FROM&lt;/span&gt; Orders             &lt;br /&gt;&lt;span style="color: #0000ff"&gt;WHERE&lt;/span&gt;&amp;#160; &lt;span style="color: #0000ff"&gt;Date&lt;/span&gt; &amp;gt;= @YesterDay             &lt;br /&gt;&lt;span style="color: #0000ff"&gt;AND&lt;/span&gt; &lt;span style="color: #0000ff"&gt;Date&lt;/span&gt; &amp;lt; @Today&lt;/font&gt;&lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;&lt;font face="Verdana"&gt;&lt;strong&gt;Logic :&lt;/strong&gt; Basically above WHERE conditions is like - Greater than Equal to Yesterday and Less than Today. &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Verdana"&gt;This &lt;font color="#ff00ff"&gt;DateAdd&lt;/font&gt;(DD, &lt;font color="#ff00ff"&gt;DateDiff&lt;/font&gt;(DD, 0, &lt;font color="#ff00ff"&gt;GETDATE&lt;/font&gt;())-1, 0) gives Yesterday's date with time as 00:00:00.&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Verdana"&gt;And this &lt;font color="#ff00ff"&gt;DateAdd&lt;/font&gt;(DD, &lt;font color="#ff00ff"&gt;DateDiff&lt;/font&gt;(DD, 0, &lt;font color="#ff00ff"&gt;GETDATE&lt;/font&gt;()), 0)&amp;#160; gives today's date with time as 00:00:00.&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Verdana"&gt;You can do a quick check by executing - &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Verdana"&gt;&lt;/font&gt;&lt;/p&gt;  &lt;table cellspacing="0" cellpadding="2" width="589" bgcolor="#f4f4f4" border="0"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign="top" width="587"&gt;&lt;font size="1"&gt;&lt;font face="Verdana"&gt;&lt;span style="color: #0000ff"&gt;SELECT&lt;/span&gt; &lt;font color="#ff00ff"&gt;DateAdd&lt;/font&gt;(DD, &lt;font color="#ff00ff"&gt;DateDiff&lt;/font&gt;(DD, 0, &lt;font color="#ff00ff"&gt;GETDATE&lt;/font&gt;())-1, 0) &lt;span style="color: #0000ff"&gt;AS&lt;/span&gt; YDay               &lt;br /&gt;,&lt;font color="#ff00ff"&gt;DateAdd&lt;/font&gt;(DD, &lt;font color="#ff00ff"&gt;DateDiff&lt;/font&gt;(DD, 0, &lt;font color="#ff00ff"&gt;GETDATE&lt;/font&gt;()), 0) &lt;span style="color: #0000ff"&gt;as&lt;/span&gt; ToDay&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;&lt;font face="Verdana"&gt;&lt;strong&gt;Reason for doing this way instead of using some obvious ones&lt;/strong&gt; – As you may heard this from many SQL experts, “Whenever possible never use CONVERT/CAST or any functions in WHERE clause on table's column.”&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Verdana"&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;font face="Verdana"&gt;Question is Why?&lt;/font&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Verdana"&gt;Well whenever you use the any function on a column , SQL Server no longer uses the Index define on particular column. And use of a CAST or CONVERT functions slows down the query execution considerably. &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Verdana"&gt;You may say, I used the DateAdd and DateDiff function in the WHERE clause. Yes, I used them, but NOT on Date column from the table. I used them with the Getdate function which is more of a constant and NOT part of the table's column.&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Verdana"&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;font face="Verdana"&gt;Query Optimization Tip :&lt;/font&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Verdana"&gt;Whenever possible never use CONVERT/CAST or any functions in WHERE clause on table's column.&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Verdana"&gt;In future I'll have some more posts on Date comparison in WHERE condition. Also some more simple tricks to optimized the everyday's queries.&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Verdana"&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Mangal Pardeshi    &lt;br /&gt;SQL MVP &lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8585649008635531444-7243383674635301918?l=mangalpardeshi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mangalpardeshi.blogspot.com/feeds/7243383674635301918/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://mangalpardeshi.blogspot.com/2009/04/query-to-fetch-yesterday-data.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8585649008635531444/posts/default/7243383674635301918'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8585649008635531444/posts/default/7243383674635301918'/><link rel='alternate' type='text/html' href='http://mangalpardeshi.blogspot.com/2009/04/query-to-fetch-yesterday-data.html' title='Query to fetch the Yesterday&amp;#39;s Data'/><author><name>Mangal Pardeshi</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_weIRgO4yuTo/SzSmWMjAwJI/AAAAAAAAAKs/DgpUWlN5KZY/S220/y1m_Ev9g6OBzqJR8Z6lhdhzgWZ-bl8WwBuhHkrErOHngc14s42YU23gTajpglsbRjABGlnSHh-wUfbGievoo7soxuBY9uSp1K1I.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8585649008635531444.post-8176379340593680185</id><published>2009-04-08T17:33:00.001+05:30</published><updated>2009-04-08T17:36:39.857+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Downloads'/><title type='text'>SQL Server 2008 Service Pack 1 is Released</title><content type='html'>&lt;p&gt;&lt;font face="Verdana"&gt;Hi All,&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Verdana"&gt;Service Pack 1 for SQL Server 2008 is now available.&amp;#160; &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Verdana"&gt;You can download it from - &lt;/font&gt;&lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=66ab3dbb-bf3e-4f46-9559-ccc6a4f9dc19&amp;amp;displaylang=en" target="_blank"&gt;&lt;font face="Verdana" color="#0080ff"&gt;SQL Server 2008 Service Pack 1&lt;/font&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Verdana"&gt;For more information about SQL Server 2008 Service Pack 1, please review the &lt;/font&gt;&lt;a href="http://go.microsoft.com/fwlink/?LinkId=147331" target="_blank"&gt;&lt;font color="#0080ff"&gt;Release Notes.&lt;/font&gt;&lt;/a&gt;&lt;font face="Verdana"&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Verdana"&gt;You can also follow the following blog for more details -&lt;/font&gt;&lt;a href="http://blogs.msdn.com/petersad/archive/2009/04/08/sql-server-2008-service-pack-1-is-released.aspx" target="_blank"&gt;&lt;font face="Verdana" color="#0080ff"&gt;SQL Server Setup&lt;/font&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Verdana"&gt;Regards&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Verdana" color="#ff0080"&gt;Mangal Pardeshi&lt;/font&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8585649008635531444-8176379340593680185?l=mangalpardeshi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mangalpardeshi.blogspot.com/feeds/8176379340593680185/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://mangalpardeshi.blogspot.com/2009/04/sql-server-2008-service-pack-1-is.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8585649008635531444/posts/default/8176379340593680185'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8585649008635531444/posts/default/8176379340593680185'/><link rel='alternate' type='text/html' href='http://mangalpardeshi.blogspot.com/2009/04/sql-server-2008-service-pack-1-is.html' title='SQL Server 2008 Service Pack 1 is Released'/><author><name>Mangal Pardeshi</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_weIRgO4yuTo/SzSmWMjAwJI/AAAAAAAAAKs/DgpUWlN5KZY/S220/y1m_Ev9g6OBzqJR8Z6lhdhzgWZ-bl8WwBuhHkrErOHngc14s42YU23gTajpglsbRjABGlnSHh-wUfbGievoo7soxuBY9uSp1K1I.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8585649008635531444.post-8226993492417173610</id><published>2009-04-01T00:37:00.001+05:30</published><updated>2009-07-06T13:00:14.208+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='T-SQL'/><title type='text'>UNPIVOT Multiple Columns</title><content type='html'>&lt;p&gt;&lt;font face="Verdana"&gt;Unlike PIVOT which de-normalizes the data, UNPIVOT is more helpful in getting your data back to a more normalized form.&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Verdana"&gt;UNPIVOT performs the opposite operation to PIVOT by rotating columns of a table-valued expression into column values.&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Verdana"&gt;For a single column UNPIVOT examples and for more on PIVOT and UNPIVOT you can read from Microsoft Books Online &lt;/font&gt;&lt;a href="http://technet.microsoft.com/en-us/library/ms177410.aspx"&gt;&lt;font face="Verdana"&gt;- &lt;b&gt;Using PIVOT and UNPIVOT&lt;/b&gt;&lt;/font&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Verdana"&gt;In this article I’ll try to show you how to UNPIVOT multiple columns in a single query. There is simple trick to do that, if you are familiar with the UNPIVOT operator you will find it easy to understand. &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Verdana"&gt;First lets create some sample data :&lt;/font&gt;&lt;/p&gt;  &lt;table cellspacing="0" cellpadding="2" width="581" bgcolor="#f4f4f4" border="0"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign="top" width="579"&gt;         &lt;p&gt;&lt;font face="Verdana"&gt;-- Create sample table              &lt;br /&gt;CREATE TABLE Suppliers               &lt;br /&gt;(Id INT,               &lt;br /&gt;Product VARCHAR(500),               &lt;br /&gt;Supplier1 VARCHAR(500),               &lt;br /&gt;Supplier2 VARCHAR(500),               &lt;br /&gt;Supplier3 VARCHAR(500),               &lt;br /&gt;City1 VARCHAR(500),               &lt;br /&gt;City2 VARCHAR(500),               &lt;br /&gt;City3 VARCHAR(500)               &lt;br /&gt;)               &lt;br /&gt;GO &lt;/font&gt;&lt;/p&gt;          &lt;p&gt;&lt;font face="Verdana"&gt;-- Load Sample data              &lt;br /&gt;INSERT INTO Suppliers SELECT               &lt;br /&gt;1, 'Car', 'Tata Motors', 'Bajaj', 'Mahindra', 'Jamshedpur','Pune','Mumbai'              &lt;br /&gt;UNION ALL SELECT               &lt;br /&gt;2, 'Bike', 'Bajaj', 'Hero Honda', 'Suzuki', 'Pune', 'New Delhi', 'Chandigarh'               &lt;br /&gt;UNION ALL SELECT               &lt;br /&gt;3, 'Cycle', 'Hercules', 'Hero', 'Atlas', 'Mumbai', 'Banglaore', 'Pune'               &lt;br /&gt;GO &lt;/font&gt;&lt;/p&gt;          &lt;p&gt;&lt;font face="Verdana"&gt;-- Test sample data              &lt;br /&gt;SELECT Id, Product, Supplier1, Supplier2, Supplier3, City1, City2, City3               &lt;br /&gt;FROM Suppliers               &lt;br /&gt;GO&lt;/font&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;&lt;font face="Verdana"&gt;Here is how our sample table looks like :&lt;/font&gt;&lt;/p&gt;  &lt;table cellspacing="0" cellpadding="2" width="585" border="1"&gt;&lt;tbody&gt;     &lt;tr bgcolor="#c6c3b5"&gt;       &lt;td valign="top" width="30"&gt;&lt;strong&gt;&lt;font face="Verdana"&gt;Id&lt;/font&gt;&lt;/strong&gt;&lt;/td&gt;        &lt;td valign="top" width="64"&gt;&lt;strong&gt;&lt;font face="Verdana"&gt;Product&lt;/font&gt;&lt;/strong&gt;&lt;/td&gt;        &lt;td valign="top" width="91"&gt;&lt;strong&gt;&lt;font face="Verdana"&gt;Supplier1&lt;/font&gt;&lt;/strong&gt;&lt;/td&gt;        &lt;td valign="top" width="93"&gt;&lt;strong&gt;&lt;font face="Verdana"&gt;Supplier2&lt;/font&gt;&lt;/strong&gt;&lt;/td&gt;        &lt;td valign="top" width="70"&gt;&lt;strong&gt;&lt;font face="Verdana"&gt;Supplier3&lt;/font&gt;&lt;/strong&gt;&lt;/td&gt;        &lt;td valign="top" width="81"&gt;&lt;strong&gt;&lt;font face="Verdana"&gt;City1&lt;/font&gt;&lt;/strong&gt;&lt;/td&gt;        &lt;td valign="top" width="66"&gt;&lt;strong&gt;&lt;font face="Verdana"&gt;City2&lt;/font&gt;&lt;/strong&gt;&lt;/td&gt;        &lt;td valign="top" width="88"&gt;&lt;strong&gt;&lt;font face="Verdana"&gt;City3&lt;/font&gt;&lt;/strong&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="30"&gt;&lt;font face="Verdana"&gt;1&lt;/font&gt;&lt;/td&gt;        &lt;td valign="top" width="64"&gt;&lt;font face="Verdana"&gt;Car&lt;/font&gt;&lt;/td&gt;        &lt;td valign="top" width="91"&gt;&lt;font face="Verdana"&gt;TataMotors&lt;/font&gt;&lt;/td&gt;        &lt;td valign="top" width="93"&gt;&lt;font face="Verdana"&gt;Bajaj&lt;/font&gt;&lt;/td&gt;        &lt;td valign="top" width="70"&gt;&lt;font face="Verdana"&gt;Mahindra&lt;/font&gt;&lt;/td&gt;        &lt;td valign="top" width="81"&gt;&lt;font face="Verdana"&gt;Jamshedpur&lt;/font&gt;&lt;/td&gt;        &lt;td valign="top" width="66"&gt;&lt;font face="Verdana"&gt;Pune&lt;/font&gt;&lt;/td&gt;        &lt;td valign="top" width="88"&gt;&lt;font face="Verdana"&gt;Mumbai&lt;/font&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="30"&gt;&lt;font face="Verdana"&gt;2&lt;/font&gt;&lt;/td&gt;        &lt;td valign="top" width="64"&gt;&lt;font face="Verdana"&gt;Bike&lt;/font&gt;&lt;/td&gt;        &lt;td valign="top" width="91"&gt;&lt;font face="Verdana"&gt;Bajaj&lt;/font&gt;&lt;/td&gt;        &lt;td valign="top" width="93"&gt;&lt;font face="Verdana"&gt;Hero Honda&lt;/font&gt;&lt;/td&gt;        &lt;td valign="top" width="70"&gt;&lt;font face="Verdana"&gt;Suzuki&lt;/font&gt;&lt;/td&gt;        &lt;td valign="top" width="81"&gt;&lt;font face="Verdana"&gt;Pune&lt;/font&gt;&lt;/td&gt;        &lt;td valign="top" width="66"&gt;&lt;font face="Verdana"&gt;New Delhi&lt;/font&gt;&lt;/td&gt;        &lt;td valign="top" width="88"&gt;&lt;font face="Verdana"&gt;Chandigarh&lt;/font&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="30"&gt;&lt;font face="Verdana"&gt;3&lt;/font&gt;&lt;/td&gt;        &lt;td valign="top" width="64"&gt;&lt;font face="Verdana"&gt;Cycle&lt;/font&gt;&lt;/td&gt;        &lt;td valign="top" width="91"&gt;&lt;font face="Verdana"&gt;Hercules&lt;/font&gt;&lt;/td&gt;        &lt;td valign="top" width="93"&gt;&lt;font face="Verdana"&gt;Hero&lt;/font&gt;&lt;/td&gt;        &lt;td valign="top" width="70"&gt;&lt;font face="Verdana"&gt;Atlas&lt;/font&gt;&lt;/td&gt;        &lt;td valign="top" width="81"&gt;&lt;font face="Verdana"&gt;Mumbai&lt;/font&gt;&lt;/td&gt;        &lt;td valign="top" width="66"&gt;&lt;font face="Verdana"&gt;Bangalore&lt;/font&gt;&lt;/td&gt;        &lt;td valign="top" width="88"&gt;&lt;font face="Verdana"&gt;Pune&lt;/font&gt;&lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;&lt;font face="Verdana"&gt;And as you can see here we have 2 columns which needs to be UNPIVOT, first is Supplier and second is there respective Cities.&amp;#160; If it was single column to be UNPIVOTed it could have been a straight forward task.&amp;#160; Thing is you can write a query with 2 UNPIVOT operators, but question is how to JOIN two UNPIVOT sub queries correctly so we will get the each supplier with its respective city next to it in second column?&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Verdana"&gt;As I said earlier there is simple trick to do that.&amp;#160; See the following query and its WHERE condition :&lt;/font&gt;&lt;/p&gt;  &lt;table cellspacing="0" cellpadding="0" width="569" bgcolor="#f4f4f4" border="0"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign="top" width="567"&gt;         &lt;p&gt;&lt;font face="Verdana"&gt;SELECT Id,              &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; Product,               &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; ROW_NUMBER()OVER(Partition By Id Order By Suppliers) as SuppId,               &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; SupplierName,               &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; CityName               &lt;br /&gt;FROM               &lt;br /&gt;(               &lt;br /&gt;SELECT Id, Product, Supplier1, Supplier2, Supplier3, City1, City2, City3               &lt;br /&gt;FROM Suppliers               &lt;br /&gt;) Main &lt;/font&gt;&lt;/p&gt;          &lt;p&gt;           &lt;br /&gt;&lt;font face="Verdana"&gt;UNPIVOT              &lt;br /&gt;(               &lt;br /&gt;SupplierName FOR Suppliers IN (Supplier1, Supplier2, Supplier3)               &lt;br /&gt;) Sup &lt;/font&gt;&lt;/p&gt;          &lt;p&gt;           &lt;br /&gt;&lt;font face="Verdana"&gt;UNPIVOT              &lt;br /&gt;(               &lt;br /&gt;CityName For Cities IN (City1, City2, City3)               &lt;br /&gt;) Ct &lt;/font&gt;&lt;/p&gt;          &lt;p&gt;           &lt;br /&gt;&lt;font face="Verdana"&gt;WHERE RIGHT(Suppliers,1) =&amp;#160; RIGHT(Cities,1)&lt;/font&gt;&lt;/p&gt;          &lt;p&gt;&lt;font face="Verdana"&gt;&lt;/font&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;br /&gt;&lt;font face="Verdana"&gt;And here is the Output of the query :    &lt;br /&gt;&lt;/font&gt;  &lt;table cellspacing="0" cellpadding="0" width="449" border="1"&gt;&lt;tbody&gt;     &lt;tr bgcolor="#c6c3b5"&gt;       &lt;td valign="top" width="33"&gt;&lt;strong&gt;&lt;font face="Verdana"&gt;Id&lt;/font&gt;&lt;/strong&gt;&lt;/td&gt;        &lt;td valign="top" width="64"&gt;&lt;strong&gt;&lt;font face="Verdana"&gt;Product&lt;/font&gt;&lt;/strong&gt;&lt;/td&gt;        &lt;td valign="top" width="64"&gt;&lt;strong&gt;&lt;font face="Verdana"&gt;SuppId&lt;/font&gt;&lt;/strong&gt;&lt;/td&gt;        &lt;td valign="top" width="159"&gt;&lt;strong&gt;&lt;font face="Verdana"&gt;SupplierName&lt;/font&gt;&lt;/strong&gt;&lt;/td&gt;        &lt;td valign="top" width="127"&gt;&lt;strong&gt;&lt;font face="Verdana"&gt;CityName&lt;/font&gt;&lt;/strong&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="33"&gt;&lt;font face="Verdana"&gt;1&lt;/font&gt;&lt;/td&gt;        &lt;td valign="top" width="64"&gt;&lt;font face="Verdana"&gt;Car&lt;/font&gt;&lt;/td&gt;        &lt;td valign="top" width="64"&gt;&lt;font face="Verdana"&gt;1&lt;/font&gt;&lt;/td&gt;        &lt;td valign="top" width="159"&gt;&lt;font face="Verdana"&gt;Tata Motors&lt;/font&gt;&lt;/td&gt;        &lt;td valign="top" width="127"&gt;&lt;font face="Verdana"&gt;Jamshedpur&lt;/font&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="33"&gt;&lt;font face="Verdana"&gt;1&lt;/font&gt;&lt;/td&gt;        &lt;td valign="top" width="64"&gt;&lt;font face="Verdana"&gt;Car&lt;/font&gt;&lt;/td&gt;        &lt;td valign="top" width="64"&gt;&lt;font face="Verdana"&gt;2&lt;/font&gt;&lt;/td&gt;        &lt;td valign="top" width="159"&gt;&lt;font face="Verdana"&gt;Bajaj&lt;/font&gt;&lt;/td&gt;        &lt;td valign="top" width="127"&gt;&lt;font face="Verdana"&gt;Pune&lt;/font&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="33"&gt;&lt;font face="Verdana"&gt;1&lt;/font&gt;&lt;/td&gt;        &lt;td valign="top" width="64"&gt;&lt;font face="Verdana"&gt;Car&lt;/font&gt;&lt;/td&gt;        &lt;td valign="top" width="64"&gt;&lt;font face="Verdana"&gt;3&lt;/font&gt;&lt;/td&gt;        &lt;td valign="top" width="159"&gt;&lt;font face="Verdana"&gt;Mahindra&lt;/font&gt;&lt;/td&gt;        &lt;td valign="top" width="127"&gt;&lt;font face="Verdana"&gt;Mumbai&lt;/font&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="33"&gt;&lt;font face="Verdana"&gt;2&lt;/font&gt;&lt;/td&gt;        &lt;td valign="top" width="64"&gt;&lt;font face="Verdana"&gt;Bike&lt;/font&gt;&lt;/td&gt;        &lt;td valign="top" width="64"&gt;&lt;font face="Verdana"&gt;1&lt;/font&gt;&lt;/td&gt;        &lt;td valign="top" width="159"&gt;&lt;font face="Verdana"&gt;Bajaj&lt;/font&gt;&lt;/td&gt;        &lt;td valign="top" width="127"&gt;&lt;font face="Verdana"&gt;Pune&lt;/font&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="33"&gt;&lt;font face="Verdana"&gt;2&lt;/font&gt;&lt;/td&gt;        &lt;td valign="top" width="64"&gt;&lt;font face="Verdana"&gt;Bike&lt;/font&gt;&lt;/td&gt;        &lt;td valign="top" width="64"&gt;&lt;font face="Verdana"&gt;2&lt;/font&gt;&lt;/td&gt;        &lt;td valign="top" width="159"&gt;&lt;font face="Verdana"&gt;Hero Honda&lt;/font&gt;&lt;/td&gt;        &lt;td valign="top" width="127"&gt;&lt;font face="Verdana"&gt;New Delhi&lt;/font&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="33"&gt;&lt;font face="Verdana"&gt;2&lt;/font&gt;&lt;/td&gt;        &lt;td valign="top" width="64"&gt;&lt;font face="Verdana"&gt;Bike&lt;/font&gt;&lt;/td&gt;        &lt;td valign="top" width="64"&gt;&lt;font face="Verdana"&gt;3&lt;/font&gt;&lt;/td&gt;        &lt;td valign="top" width="159"&gt;&lt;font face="Verdana"&gt;Suzuki&lt;/font&gt;&lt;/td&gt;        &lt;td valign="top" width="127"&gt;&lt;font face="Verdana"&gt;Chandigarh&lt;/font&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="33"&gt;&lt;font face="Verdana"&gt;3&lt;/font&gt;&lt;/td&gt;        &lt;td valign="top" width="64"&gt;&lt;font face="Verdana"&gt;Cycle&lt;/font&gt;&lt;/td&gt;        &lt;td valign="top" width="64"&gt;&lt;font face="Verdana"&gt;1&lt;/font&gt;&lt;/td&gt;        &lt;td valign="top" width="159"&gt;&lt;font face="Verdana"&gt;Hercules&lt;/font&gt;&lt;/td&gt;        &lt;td valign="top" width="127"&gt;&lt;font face="Verdana"&gt;Mumbai&lt;/font&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="33"&gt;&lt;font face="Verdana"&gt;3&lt;/font&gt;&lt;/td&gt;        &lt;td valign="top" width="64"&gt;&lt;font face="Verdana"&gt;Cycle&lt;/font&gt;&lt;/td&gt;        &lt;td valign="top" width="64"&gt;&lt;font face="Verdana"&gt;2&lt;/font&gt;&lt;/td&gt;        &lt;td valign="top" width="159"&gt;&lt;font face="Verdana"&gt;Hero&lt;/font&gt;&lt;/td&gt;        &lt;td valign="top" width="127"&gt;&lt;font face="Verdana"&gt;Bangalore&lt;/font&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="33"&gt;&lt;font face="Verdana"&gt;3&lt;/font&gt;&lt;/td&gt;        &lt;td valign="top" width="64"&gt;&lt;font face="Verdana"&gt;Cycle&lt;/font&gt;&lt;/td&gt;        &lt;td valign="top" width="64"&gt;&lt;font face="Verdana"&gt;3&lt;/font&gt;&lt;/td&gt;        &lt;td valign="top" width="159"&gt;&lt;font face="Verdana"&gt;Atlas&lt;/font&gt;&lt;/td&gt;        &lt;td valign="top" width="127"&gt;&lt;font face="Verdana"&gt;Pune&lt;/font&gt;&lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;&lt;font face="Verdana"&gt;So the trick was this where condition - &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Verdana"&gt;WHERE RIGHT(Suppliers,1) =&amp;#160; RIGHT(Cities,1)&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Verdana"&gt;There are other ways also to UNPIVOT the multiple columns, may be some other time I’ll post them too.&amp;#160; &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Verdana"&gt;Source of inspiration for this post is following thread on MSDN forums - &lt;/font&gt;&lt;a title="http://social.msdn.microsoft.com/Forums/en-US/transactsql/thread/54626179-ee9f-4db7-a31e-c02104bdd6be" href="http://social.msdn.microsoft.com/Forums/en-US/transactsql/thread/54626179-ee9f-4db7-a31e-c02104bdd6beAt"&gt;&lt;font face="Verdana"&gt;http://social.msdn.microsoft.com/Forums/en-US/transactsql/thread/54626179-ee9f-4db7-a31e-c02104bdd6beAt&lt;/font&gt;&lt;/a&gt;&lt;font face="Verdana"&gt;&amp;#160;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Verdana"&gt;At the end of it, OP also come up with his own solution he got from SQLTeam’s forums. &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Verdana"&gt;Mangal Pardeshi&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Verdana"&gt;&lt;/font&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8585649008635531444-8226993492417173610?l=mangalpardeshi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mangalpardeshi.blogspot.com/feeds/8226993492417173610/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://mangalpardeshi.blogspot.com/2009/04/unpivot-multiple-columns.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8585649008635531444/posts/default/8226993492417173610'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8585649008635531444/posts/default/8226993492417173610'/><link rel='alternate' type='text/html' href='http://mangalpardeshi.blogspot.com/2009/04/unpivot-multiple-columns.html' title='UNPIVOT Multiple Columns'/><author><name>Mangal Pardeshi</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_weIRgO4yuTo/SzSmWMjAwJI/AAAAAAAAAKs/DgpUWlN5KZY/S220/y1m_Ev9g6OBzqJR8Z6lhdhzgWZ-bl8WwBuhHkrErOHngc14s42YU23gTajpglsbRjABGlnSHh-wUfbGievoo7soxuBY9uSp1K1I.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8585649008635531444.post-4467728538723348693</id><published>2009-03-21T22:50:00.001+05:30</published><updated>2009-06-12T16:18:04.242+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Reporting Services'/><title type='text'>RunningValue Function (Reporting Services) – Calculating Running Totals</title><content type='html'>&lt;p&gt;&lt;font face="Verdana"&gt;In one of my previous posts I talked about &lt;a href="http://mangalpardeshi.blogspot.com/2009/02/running-totals-in-sql.html" target="_blank"&gt;&lt;font color="#800000"&gt;Calculating Running Totals in T-SQL&lt;/font&gt;&lt;/a&gt;.&amp;#160; Now I will show you how you can calculate the running totals in Sql Server Reporting Services(SSRS).&amp;#160; Yes, it is very much possible with RunningValue function in SSRS and also very easy compare to doing it in SQL.&amp;#160;&amp;#160; &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Verdana"&gt;The syntax for RunningValue function goes like this - &lt;/font&gt;&lt;/p&gt;  &lt;table cellspacing="0" cellpadding="2" width="580" bgcolor="#f4f4f4" border="0"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign="top" width="578"&gt;&lt;font face="Verdana"&gt;RunningValue(expression, function, scope)&lt;/font&gt;&lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;ul&gt;   &lt;li&gt;&lt;font face="Verdana"&gt;&lt;em&gt;expression&lt;/em&gt; : The expression on which to perform the aggregation, for example, &lt;code&gt;[Quantity]&lt;/code&gt;. &lt;/font&gt;&lt;/li&gt;    &lt;li&gt;&lt;font face="Verdana"&gt;&lt;em&gt;function &lt;/em&gt;: The name of the aggregate function to apply to the expression, for example- &lt;strong&gt;Sum&lt;/strong&gt;. &lt;/font&gt;&lt;/li&gt;    &lt;li&gt;&lt;font face="Verdana"&gt;&lt;em&gt;scope&lt;/em&gt; :The name of a dataset, data region, group or Nothing. &lt;/font&gt;&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;font face="Verdana"&gt;See the table below and RunningTotal column which is Cumulative SUM of Quantity column.&amp;#160; &lt;/font&gt;&lt;/p&gt;  &lt;table cellspacing="0" cellpadding="2" width="399" border="1"&gt;&lt;tbody&gt;     &lt;tr bgcolor="#c6c3b5"&gt;       &lt;td valign="top" width="40"&gt;&lt;strong&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;ShipId&lt;/span&gt;&lt;/strong&gt;&lt;/td&gt;        &lt;td valign="top" width="49"&gt;&lt;strong&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;OrderId&lt;/span&gt;&lt;/strong&gt;&lt;/td&gt;        &lt;td valign="top" width="177"&gt;&lt;strong&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;ShipDate&lt;/span&gt;&lt;/strong&gt;&lt;/td&gt;        &lt;td valign="top" width="52"&gt;&lt;strong&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;Quantity&lt;/span&gt;&lt;/strong&gt;&lt;/td&gt;        &lt;td valign="top" width="79"&gt;&lt;strong&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;RunningTotal&lt;/span&gt;&lt;/strong&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="40"&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;1&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="49"&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;1&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="177"&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;2009-02-01 12:06:16.820&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="52"&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;10&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="79"&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;10&lt;/span&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="40"&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;2&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="49"&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;1&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="177"&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;2009-02-02 16:16:16.820&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="52"&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;15&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="79"&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;25&lt;/span&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="40"&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;3&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="49"&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;2&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="177"&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;2009-02-01 13:26:16.820&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="52"&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;20&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="79"&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;45&lt;/span&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="40"&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;4&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="49"&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;2&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="177"&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;2009-02-03 17:40:16.820&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="52"&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;12&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="79"&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;57&lt;/span&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="40"&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;5&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="49"&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;2&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="177"&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;2009-02-04 13:05:16.820&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="52"&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;15&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="79"&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;72&lt;/span&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="40"&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;6&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="49"&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;3&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="177"&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;2009-02-03 14:25:16.820&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="52"&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;25&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="79"&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;97&lt;/span&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="40"&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;7&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="49"&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;3&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="177"&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;2009-02-04 15:50:16.820&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="52"&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;50&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="79"&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;147&lt;/span&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="40"&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;8&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="49"&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;3&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="177"&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;2009-02-05 19:40:16.820&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="52"&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;30&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="79"&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;177&lt;/span&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="40"&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;9&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="49"&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;4&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="177"&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;2009-02-06 15:30:16.820&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="52"&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;20&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="79"&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;197&lt;/span&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="40"&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;10&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="49"&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;4&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="177"&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;2009-02-07 16:20:16.820&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="52"&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;10&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="79"&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;207&lt;/span&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="40"&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;11&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="49"&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;5&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="177"&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;2009-02-05 17:05:16.820&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="52"&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;35&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="79"&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;242&lt;/span&gt;&lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;&lt;font face="Verdana"&gt;For achieving that in SSRS, add extra column in your Report’s Layout Page and put following expression in it- &lt;/font&gt;&lt;/p&gt;  &lt;table cellspacing="0" cellpadding="2" width="580" bgcolor="#f4f4f4" border="0"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign="top" width="578"&gt;&lt;font face="Verdana"&gt;=RunningValue(Fields!Quantity.Value, &lt;font color="#0000ff"&gt;Sum&lt;/font&gt;, &lt;font color="#0000ff"&gt;Nothing&lt;/font&gt;)&lt;/font&gt;&lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;&lt;font face="Verdana"&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Verdana"&gt;Yes, it is easy and simple, isn’t it?&amp;#160; But what about when you want the RunningTotals for group of records?&amp;#160; Like for above example you want the Running Totals for each orderId separately.&amp;#160; See the table below :&lt;/font&gt;&lt;/p&gt;  &lt;table cellspacing="0" cellpadding="2" width="399" border="1"&gt;&lt;tbody&gt;     &lt;tr bgcolor="#c6c3b5"&gt;       &lt;td valign="top" width="40"&gt;&lt;strong&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;ShipId&lt;/span&gt;&lt;/strong&gt;&lt;/td&gt;        &lt;td valign="top" width="49"&gt;&lt;strong&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;OrderId&lt;/span&gt;&lt;/strong&gt;&lt;/td&gt;        &lt;td valign="top" width="177"&gt;&lt;strong&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;ShipDate&lt;/span&gt;&lt;/strong&gt;&lt;/td&gt;        &lt;td valign="top" width="52"&gt;&lt;strong&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;Quantity&lt;/span&gt;&lt;/strong&gt;&lt;/td&gt;        &lt;td valign="top" width="79"&gt;&lt;strong&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;RunningTotal&lt;/span&gt;&lt;/strong&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="40"&gt;&lt;span style="font-size: 78%; color: #ff0000; font-family: verdana"&gt;&lt;font color="#000040"&gt;1&lt;/font&gt;&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="49"&gt;&lt;span style="font-size: 78%; color: #ff0000; font-family: verdana"&gt;&lt;font color="#000040"&gt;1&lt;/font&gt;&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="177"&gt;&lt;span style="font-size: 78%; color: #ff0000; font-family: verdana"&gt;&lt;font color="#000040"&gt;2009-02-01 12:06:16.820&lt;/font&gt;&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="52"&gt;&lt;span style="font-size: 78%; color: #ff0000; font-family: verdana"&gt;&lt;font color="#000040"&gt;10&lt;/font&gt;&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="79"&gt;&lt;span style="font-size: 78%; color: #ff0000; font-family: verdana"&gt;&lt;font color="#000040"&gt;10&lt;/font&gt;&lt;/span&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="40"&gt;&lt;span style="font-size: 78%; color: #ff0000; font-family: verdana"&gt;&lt;font color="#000040"&gt;2&lt;/font&gt;&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="49"&gt;&lt;span style="font-size: 78%; color: #ff0000; font-family: verdana"&gt;&lt;font color="#000040"&gt;1&lt;/font&gt;&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="177"&gt;&lt;span style="font-size: 78%; color: #ff0000; font-family: verdana"&gt;&lt;font color="#000040"&gt;2009-02-02 16:16:16.820&lt;/font&gt;&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="52"&gt;&lt;span style="font-size: 78%; color: #ff0000; font-family: verdana"&gt;&lt;font color="#000040"&gt;15&lt;/font&gt;&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="79"&gt;&lt;span style="font-size: 78%; color: #ff0000; font-family: verdana"&gt;&lt;font color="#000040"&gt;25&lt;/font&gt;&lt;/span&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="40"&gt;&lt;span style="font-size: 78%; color: #008000; font-family: verdana"&gt;&lt;font color="#0080c0"&gt;3&lt;/font&gt;&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="49"&gt;&lt;span style="font-size: 78%; color: #008000; font-family: verdana"&gt;&lt;font color="#0080c0"&gt;2&lt;/font&gt;&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="177"&gt;&lt;span style="font-size: 78%; color: #008000; font-family: verdana"&gt;&lt;font color="#0080c0"&gt;2009-02-01 13:26:16.820&lt;/font&gt;&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="52"&gt;&lt;span style="font-size: 78%; color: #008000; font-family: verdana"&gt;&lt;font color="#0080c0"&gt;20&lt;/font&gt;&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="79"&gt;&lt;span style="font-size: 78%; color: #008000; font-family: verdana"&gt;&lt;font color="#0080c0"&gt;20&lt;/font&gt;&lt;/span&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="40"&gt;&lt;span style="font-size: 78%; color: #008000; font-family: verdana"&gt;&lt;font color="#0080c0"&gt;4&lt;/font&gt;&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="49"&gt;&lt;span style="font-size: 78%; color: #008000; font-family: verdana"&gt;&lt;font color="#0080c0"&gt;2&lt;/font&gt;&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="177"&gt;&lt;span style="font-size: 78%; color: #008000; font-family: verdana"&gt;&lt;font color="#0080c0"&gt;2009-02-03 17:40:16.820&lt;/font&gt;&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="52"&gt;&lt;span style="font-size: 78%; color: #008000; font-family: verdana"&gt;&lt;font color="#0080c0"&gt;12&lt;/font&gt;&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="79"&gt;&lt;span style="font-size: 78%; color: #008000; font-family: verdana"&gt;&lt;font color="#0080c0"&gt;32&lt;/font&gt;&lt;/span&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="40"&gt;&lt;span style="font-size: 78%; color: #008000; font-family: verdana"&gt;&lt;font color="#0080c0"&gt;5&lt;/font&gt;&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="49"&gt;&lt;span style="font-size: 78%; color: #008000; font-family: verdana"&gt;&lt;font color="#0080c0"&gt;2&lt;/font&gt;&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="177"&gt;&lt;span style="font-size: 78%; color: #008000; font-family: verdana"&gt;&lt;font color="#0080c0"&gt;2009-02-04 13:05:16.820&lt;/font&gt;&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="52"&gt;&lt;span style="font-size: 78%; color: #008000; font-family: verdana"&gt;&lt;font color="#0080c0"&gt;15&lt;/font&gt;&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="79"&gt;&lt;span style="font-size: 78%; color: #008000; font-family: verdana"&gt;&lt;font color="#0080c0"&gt;47&lt;/font&gt;&lt;/span&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="40"&gt;&lt;span style="font-size: 78%; color: #ff0000; font-family: verdana"&gt;&lt;font color="#000080"&gt;6&lt;/font&gt;&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="49"&gt;&lt;span style="font-size: 78%; color: #ff0000; font-family: verdana"&gt;&lt;font color="#000080"&gt;3&lt;/font&gt;&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="177"&gt;&lt;span style="font-size: 78%; color: #ff0000; font-family: verdana"&gt;&lt;font color="#000080"&gt;2009-02-03 14:25:16.820&lt;/font&gt;&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="52"&gt;&lt;span style="font-size: 78%; color: #ff0000; font-family: verdana"&gt;&lt;font color="#000080"&gt;25&lt;/font&gt;&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="79"&gt;&lt;span style="font-size: 78%; color: #ff0000; font-family: verdana"&gt;&lt;font color="#000080"&gt;25&lt;/font&gt;&lt;/span&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="40"&gt;&lt;span style="font-size: 78%; color: #ff0000; font-family: verdana"&gt;&lt;font color="#000080"&gt;7&lt;/font&gt;&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="49"&gt;&lt;span style="font-size: 78%; color: #ff0000; font-family: verdana"&gt;&lt;font color="#000080"&gt;3&lt;/font&gt;&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="177"&gt;&lt;span style="font-size: 78%; color: #ff0000; font-family: verdana"&gt;&lt;font color="#000080"&gt;2009-02-04 15:50:16.820&lt;/font&gt;&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="52"&gt;&lt;span style="font-size: 78%; color: #ff0000; font-family: verdana"&gt;&lt;font color="#000080"&gt;50&lt;/font&gt;&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="79"&gt;&lt;span style="font-size: 78%; color: #ff0000; font-family: verdana"&gt;&lt;font color="#000080"&gt;75&lt;/font&gt;&lt;/span&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="40"&gt;&lt;span style="font-size: 78%; color: #ff0000; font-family: verdana"&gt;&lt;font color="#000080"&gt;8&lt;/font&gt;&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="49"&gt;&lt;span style="font-size: 78%; color: #ff0000; font-family: verdana"&gt;&lt;font color="#000080"&gt;3&lt;/font&gt;&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="177"&gt;&lt;span style="font-size: 78%; color: #ff0000; font-family: verdana"&gt;&lt;font color="#000080"&gt;2009-02-05 19:40:16.820&lt;/font&gt;&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="52"&gt;&lt;span style="font-size: 78%; color: #ff0000; font-family: verdana"&gt;&lt;font color="#000080"&gt;30&lt;/font&gt;&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="79"&gt;&lt;span style="font-size: 78%; color: #ff0000; font-family: verdana"&gt;&lt;font color="#000080"&gt;105&lt;/font&gt;&lt;/span&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="40"&gt;&lt;span style="font-size: 78%; color: #008000; font-family: verdana"&gt;&lt;font color="#0080ff"&gt;9&lt;/font&gt;&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="49"&gt;&lt;span style="font-size: 78%; color: #008000; font-family: verdana"&gt;&lt;font color="#0080c0"&gt;4&lt;/font&gt;&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="177"&gt;&lt;span style="font-size: 78%; color: #008000; font-family: verdana"&gt;&lt;font color="#0080c0"&gt;2009-02-06 15:30:16.820&lt;/font&gt;&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="52"&gt;&lt;span style="font-size: 78%; color: #008000; font-family: verdana"&gt;&lt;font color="#0080c0"&gt;20&lt;/font&gt;&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="79"&gt;&lt;span style="font-size: 78%; color: #008000; font-family: verdana"&gt;&lt;font color="#0080c0"&gt;20&lt;/font&gt;&lt;/span&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="40"&gt;&lt;span style="font-size: 78%; color: #008000; font-family: verdana"&gt;&lt;font color="#0080c0"&gt;10&lt;/font&gt;&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="49"&gt;&lt;span style="font-size: 78%; color: #008000; font-family: verdana"&gt;&lt;font color="#0080c0"&gt;4&lt;/font&gt;&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="177"&gt;&lt;span style="font-size: 78%; color: #008000; font-family: verdana"&gt;&lt;font color="#0080c0"&gt;2009-02-07 16:20:16.820&lt;/font&gt;&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="52"&gt;&lt;span style="font-size: 78%; color: #008000; font-family: verdana"&gt;&lt;font color="#0080c0"&gt;10&lt;/font&gt;&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="79"&gt;&lt;span style="font-size: 78%; color: #008000; font-family: verdana"&gt;&lt;font color="#0080c0"&gt;30&lt;/font&gt;&lt;/span&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="40"&gt;&lt;span style="font-size: 78%; color: #ff0000; font-family: verdana"&gt;&lt;font color="#000080"&gt;11&lt;/font&gt;&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="49"&gt;&lt;span style="font-size: 78%; color: #ff0000; font-family: verdana"&gt;&lt;font color="#000080"&gt;5&lt;/font&gt;&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="177"&gt;&lt;span style="font-size: 78%; color: #ff0000; font-family: verdana"&gt;&lt;font color="#000080"&gt;2009-02-05 17:05:16.820&lt;/font&gt;&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="52"&gt;&lt;span style="font-size: 78%; color: #ff0000; font-family: verdana"&gt;&lt;font color="#000080"&gt;35&lt;/font&gt;&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="79"&gt;&lt;span style="font-size: 78%; color: #ff0000; font-family: verdana"&gt;&lt;font color="#000080"&gt;35&lt;/font&gt;&lt;/span&gt;&lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;&lt;font face="Verdana"&gt;Now for achieving that you need do followings :&lt;/font&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;font face="Verdana"&gt;First go to Report Layout page and add a new Group.&amp;#160;&amp;#160; Give some name to the group.&amp;#160; If you don’t gave any name the default name would be something like “table1_Group1”.&amp;#160; Just note that.&amp;#160; And add OrderId to “Group On” expression.&lt;/font&gt; &lt;/li&gt;    &lt;li&gt;&lt;font face="Verdana"&gt;Now change the expression at RunningTotal column as &lt;/font&gt;      &lt;table cellspacing="0" cellpadding="2" width="400" bgcolor="#f4f4f4" border="0"&gt;&lt;tbody&gt;         &lt;tr&gt;           &lt;td valign="top" width="400"&gt;&lt;font face="Verdana"&gt;=RunningValue(Fields!Quantity.Value,&lt;font color="#0000ff"&gt;SUM&lt;/font&gt;,&amp;quot;&lt;font color="#ff0000"&gt;table1_Group1&lt;/font&gt;&amp;quot;)&lt;/font&gt;&lt;/td&gt;         &lt;/tr&gt;       &lt;/tbody&gt;&lt;/table&gt;   &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;font face="Verdana"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Now if you have noticed I have replaced the scope &lt;font color="#0000ff"&gt;Nothing&lt;/font&gt; to Group name “&lt;font color="#ff0000"&gt;table1_Group1&lt;/font&gt;” . &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Verdana"&gt;Well after adding the extra group in the report you might see blank spaces after every&amp;#160; OrderId change. If you don’t want those blanks and want continuous report, then go to the property page of the new group added and set Visible to “false”.&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Verdana"&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Trebuchet MS" color="#ff80c0"&gt;Mangal Pardeshi &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Trebuchet MS" color="#ff80c0"&gt;SQL MVP&lt;/font&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8585649008635531444-4467728538723348693?l=mangalpardeshi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mangalpardeshi.blogspot.com/feeds/4467728538723348693/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://mangalpardeshi.blogspot.com/2009/03/runningvalue-function-reporting.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8585649008635531444/posts/default/4467728538723348693'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8585649008635531444/posts/default/4467728538723348693'/><link rel='alternate' type='text/html' href='http://mangalpardeshi.blogspot.com/2009/03/runningvalue-function-reporting.html' title='RunningValue Function (Reporting Services) – Calculating Running Totals'/><author><name>Mangal Pardeshi</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_weIRgO4yuTo/SzSmWMjAwJI/AAAAAAAAAKs/DgpUWlN5KZY/S220/y1m_Ev9g6OBzqJR8Z6lhdhzgWZ-bl8WwBuhHkrErOHngc14s42YU23gTajpglsbRjABGlnSHh-wUfbGievoo7soxuBY9uSp1K1I.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8585649008635531444.post-5015386945916602066</id><published>2009-03-16T17:24:00.001+05:30</published><updated>2009-03-16T18:51:30.519+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='FAQ'/><category scheme='http://www.blogger.com/atom/ns#' term='T-SQL'/><title type='text'>Script All the Stored Procedures in The Database</title><content type='html'>&lt;p&gt;&lt;font face="Verdana"&gt;In Sql Server 2005 and 2008 you can script the stored procedure in Management Studio by right clicking on Store Procedure name and clicking on “Script Store Procedure as” and then “Create To”. &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Verdana"&gt;But if you want to script all the Stored Procedures in the database programmatically, then here is the simple T-SQL query for it - &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;font face="Verdana"&gt;To script All the Stored Procedures in the Database :&lt;/font&gt;&lt;/b&gt;&lt;/p&gt;  &lt;table cellspacing="0" cellpadding="2" width="591" bgcolor="#f4f4f4" border="0"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign="top" width="589"&gt;         &lt;p&gt;&lt;font face="Verdana"&gt;&lt;font color="#0000ff"&gt;SELECT&lt;/font&gt;&amp;#160;&amp;#160;&amp;#160; O.Name &lt;font color="#0000ff"&gt;as&lt;/font&gt; ProcName               &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; ,M.Definition &lt;font color="#0000ff"&gt;as&lt;/font&gt; CreateScript               &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; ,O.Create_Date               &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; ,O.Modify_Date               &lt;br /&gt;&lt;font color="#0000ff"&gt;FROM&lt;/font&gt; &lt;font color="#008000"&gt;sys.sql_modules&lt;/font&gt; &lt;font color="#0000ff"&gt;as&lt;/font&gt; M INNER JOIN &lt;font color="#008000"&gt;sys.objects&lt;/font&gt; &lt;font color="#0000ff"&gt;as&lt;/font&gt; O               &lt;br /&gt;&lt;font color="#0000ff"&gt;ON&lt;/font&gt; M.object_id = O.object_id               &lt;br /&gt;&lt;font color="#0000ff"&gt;WHERE&lt;/font&gt; O.type = &lt;font color="#ff0000"&gt;'P'&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;&lt;font face="Verdana"&gt;If the Stored Procedure is created with ENCRYPTION option then you will get the NULL in the definition column.&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Verdana"&gt;Similarly,&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;font face="Verdana"&gt;To script All the Views in the Database :&lt;/font&gt;&lt;/b&gt;&lt;/p&gt;  &lt;table cellspacing="0" cellpadding="2" width="592" bgcolor="#f4f4f4" border="0"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign="top" width="590"&gt;         &lt;p&gt;&lt;font face="Verdana"&gt;&lt;font color="#0000ff"&gt;SELECT&lt;/font&gt;&amp;#160;&amp;#160;&amp;#160; O.Name &lt;font color="#0000ff"&gt;as&lt;/font&gt; ProcName               &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; ,M.Definition &lt;font color="#0000ff"&gt;as&lt;/font&gt; CreateScript               &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; ,O.Create_Date               &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; ,O.Modify_Date               &lt;br /&gt;&lt;font color="#0000ff"&gt;FROM&lt;/font&gt; &lt;font color="#008000"&gt;sys.sql_modules&lt;/font&gt; &lt;font color="#0000ff"&gt;as&lt;/font&gt; M INNER JOIN &lt;font color="#008000"&gt;sys.objects&lt;/font&gt; &lt;font color="#0000ff"&gt;as&lt;/font&gt; O               &lt;br /&gt;&lt;font color="#0000ff"&gt;ON&lt;/font&gt; M.object_id = O.object_id               &lt;br /&gt;&lt;font color="#0000ff"&gt;WHERE&lt;/font&gt; O.type = &lt;font color="#ff0000"&gt;'V'&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;&lt;b&gt;&lt;font face="Verdana"&gt;To script All the Functions in the Database :&lt;/font&gt;&lt;/b&gt;&lt;/p&gt;  &lt;table cellspacing="0" cellpadding="2" width="592" bgcolor="#f4f4f4" border="0"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign="top" width="590"&gt;         &lt;p&gt;&lt;font face="Verdana"&gt;&lt;font color="#0000ff"&gt;SELECT&lt;/font&gt;&amp;#160;&amp;#160;&amp;#160; O.Name &lt;font color="#0000ff"&gt;as&lt;/font&gt; ProcName               &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; ,M.Definition &lt;font color="#0000ff"&gt;as&lt;/font&gt; CreateScript               &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; ,O.Create_Date               &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; ,O.Modify_Date               &lt;br /&gt;&lt;font color="#0000ff"&gt;FROM&lt;/font&gt; &lt;font color="#008000"&gt;sys.sql_modules&lt;/font&gt; &lt;font color="#0000ff"&gt;as&lt;/font&gt; M INNER JOIN &lt;font color="#008000"&gt;sys.objects&lt;/font&gt; &lt;font color="#0000ff"&gt;as&lt;/font&gt; O               &lt;br /&gt;&lt;font color="#0000ff"&gt;ON&lt;/font&gt; M.object_id = O.object_id               &lt;br /&gt;&lt;font color="#0000ff"&gt;WHERE&lt;/font&gt; O.type = &lt;font color="#ff0000"&gt;'FN'&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;&lt;font face="Verdana"&gt;For scripting all Triggers small modification is required, instead of &lt;font color="#008000"&gt;sys.objects&lt;/font&gt; I joined the &lt;font color="#008000"&gt;sys.triggers&lt;/font&gt; with &lt;font color="#008000"&gt;sys.sql_modules&lt;/font&gt;.&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;font face="Verdana"&gt;To script All the Triggers in the Database :&lt;/font&gt;&lt;/b&gt;&lt;/p&gt;  &lt;table cellspacing="0" cellpadding="2" width="592" bgcolor="#f4f4f4" border="0"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign="top" width="590"&gt;         &lt;p&gt;&lt;font face="Verdana"&gt;&lt;font color="#0000ff"&gt;SELECT&lt;/font&gt;&amp;#160;&amp;#160;&amp;#160; O.Name &lt;font color="#0000ff"&gt;as&lt;/font&gt; ProcName               &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; ,M.Definition &lt;font color="#0000ff"&gt;as&lt;/font&gt; CreateScript               &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; ,O.Create_Date               &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; ,O.Modify_Date               &lt;br /&gt;&lt;font color="#0000ff"&gt;FROM&lt;/font&gt; &lt;font color="#008000"&gt;sys.sql_modules&lt;/font&gt; &lt;font color="#0000ff"&gt;as&lt;/font&gt; M INNER JOIN &lt;font color="#008000"&gt;sys.triggers&lt;/font&gt; &lt;font color="#0000ff"&gt;as&lt;/font&gt; O               &lt;br /&gt;&lt;font color="#0000ff"&gt;ON&lt;/font&gt; M.object_id = O.object_id &lt;/font&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;&lt;font face="Verdana"&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff0080"&gt;&lt;em&gt;Mangal Pardeshi        &lt;br /&gt;SQL MVP&lt;/em&gt;&lt;/font&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8585649008635531444-5015386945916602066?l=mangalpardeshi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mangalpardeshi.blogspot.com/feeds/5015386945916602066/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://mangalpardeshi.blogspot.com/2009/03/script-all-store-procedures-in-database.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8585649008635531444/posts/default/5015386945916602066'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8585649008635531444/posts/default/5015386945916602066'/><link rel='alternate' type='text/html' href='http://mangalpardeshi.blogspot.com/2009/03/script-all-store-procedures-in-database.html' title='Script All the Stored Procedures in The Database'/><author><name>Mangal Pardeshi</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_weIRgO4yuTo/SzSmWMjAwJI/AAAAAAAAAKs/DgpUWlN5KZY/S220/y1m_Ev9g6OBzqJR8Z6lhdhzgWZ-bl8WwBuhHkrErOHngc14s42YU23gTajpglsbRjABGlnSHh-wUfbGievoo7soxuBY9uSp1K1I.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8585649008635531444.post-7404830861823573314</id><published>2009-03-03T18:35:00.001+05:30</published><updated>2009-05-15T16:55:06.921+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='FAQ'/><category scheme='http://www.blogger.com/atom/ns#' term='T-SQL'/><title type='text'>How To Split A Comma Delimited String</title><content type='html'>&lt;p&gt;&lt;font face="Verdana"&gt;In one of my previous posts I wrote about “&lt;a href="http://mangalpardeshi.blogspot.com/2009/02/create-comma-delimited-list-from-column_888.html" target="_blank"&gt;&lt;font color="#400000"&gt;How to Create a Comma Delimited List&lt;/font&gt;&lt;/a&gt;”.&amp;#160; Now I’ll show you an example with reverse action, that is Splitting a Comma Delimited String or array() of values.&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Verdana"&gt;There can be different types of Delimiters also : like Comma ' , ', vertical bar ' | ', Single space or a Tab. &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Verdana"&gt;For example here is our Sample Table -&lt;/font&gt;&lt;/p&gt;  &lt;table bordercolor="#000000" height="100" bordercolordark="#808080" width="172" bgcolor="#ffffff" bordercolorlight="#808080" border="1"&gt;&lt;tbody&gt;     &lt;tr bgcolor="#c6c3b5"&gt;       &lt;td align="center" width="51"&gt;&lt;font face="Verdana"&gt;&lt;strong&gt;Id&lt;/strong&gt;&lt;/font&gt;&lt;/td&gt;        &lt;td align="center" width="119"&gt;&lt;font face="Verdana"&gt;&lt;strong&gt;AllNames&lt;/strong&gt;&lt;/font&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td align="center" width="51"&gt;&lt;font face="Verdana"&gt;1&lt;/font&gt;&lt;/td&gt;        &lt;td align="center" width="119"&gt;&lt;font face="Verdana"&gt;A,B,C&lt;/font&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td align="center" width="51"&gt;&lt;font face="Verdana"&gt;2&lt;/font&gt;&lt;/td&gt;        &lt;td align="center" width="119"&gt;&lt;font face="Verdana"&gt;A,B&lt;/font&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td align="center" width="51"&gt;&lt;font face="Verdana"&gt;3&lt;/font&gt;&lt;/td&gt;        &lt;td align="center" width="120"&gt;&lt;font face="Verdana"&gt;X,Y,Z&lt;/font&gt;&lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;&lt;font face="Verdana"&gt;And here is the expected output -&lt;/font&gt;&lt;/p&gt;  &lt;table style="color: #ffffff" bordercolordark="#808080" width="141" bordercolorlight="#808080" border="1" bg="bg"&gt;&lt;tbody&gt;     &lt;tr bgcolor="#c6c3b5"&gt;       &lt;td align="center" width="52"&gt;&lt;strong&gt;&lt;span style="font-family: verdana"&gt;&lt;font color="#000000"&gt;Id&lt;/font&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/td&gt;        &lt;td align="center" width="87"&gt;&lt;strong&gt;&lt;span style="font-family: verdana"&gt;&lt;font color="#000000"&gt;Names&lt;/font&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td align="center" width="52"&gt;&lt;span style="font-family: verdana"&gt;&lt;font color="#000000"&gt;1&lt;/font&gt;&lt;/span&gt;&lt;/td&gt;        &lt;td align="center" width="87"&gt;&lt;span style="font-family: verdana"&gt;&lt;font color="#000000"&gt;A&lt;/font&gt;&lt;/span&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td align="center" width="52"&gt;&lt;span style="font-family: verdana"&gt;&lt;font color="#000000"&gt;1&lt;/font&gt;&lt;/span&gt;&lt;/td&gt;        &lt;td align="center" width="87"&gt;&lt;span style="font-family: verdana"&gt;&lt;font color="#000000"&gt;B&lt;/font&gt;&lt;/span&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td align="center" width="52"&gt;&lt;span style="font-family: verdana"&gt;&lt;font color="#000000"&gt;1&lt;/font&gt;&lt;/span&gt;&lt;/td&gt;        &lt;td align="center" width="87"&gt;&lt;span style="font-family: verdana"&gt;&lt;font color="#000000"&gt;C&lt;/font&gt;&lt;/span&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td align="center" width="52"&gt;&lt;span style="font-family: verdana"&gt;&lt;font color="#000000"&gt;2&lt;/font&gt;&lt;/span&gt;&lt;/td&gt;        &lt;td align="center" width="87"&gt;&lt;span style="font-family: verdana"&gt;&lt;font color="#000000"&gt;A&lt;/font&gt;&lt;/span&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td align="center" width="52"&gt;&lt;span style="font-family: verdana"&gt;&lt;font color="#000000"&gt;2&lt;/font&gt;&lt;/span&gt;&lt;/td&gt;        &lt;td align="center" width="87"&gt;&lt;span style="font-family: verdana"&gt;&lt;font color="#000000"&gt;B&lt;/font&gt;&lt;/span&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td align="center" width="52"&gt;&lt;span style="font-family: verdana"&gt;&lt;font color="#000000"&gt;3&lt;/font&gt;&lt;/span&gt;&lt;/td&gt;        &lt;td align="center" width="87"&gt;&lt;span style="font-family: verdana"&gt;&lt;font color="#000000"&gt;X&lt;/font&gt;&lt;/span&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td align="center" width="52"&gt;&lt;span style="font-family: verdana"&gt;&lt;font color="#000000"&gt;3&lt;/font&gt;&lt;/span&gt;&lt;/td&gt;        &lt;td align="center" width="87"&gt;&lt;span style="font-family: verdana"&gt;&lt;font color="#000000"&gt;Y&lt;/font&gt;&lt;/span&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td align="center" width="52"&gt;&lt;span style="font-family: verdana"&gt;&lt;font color="#000000"&gt;3&lt;/font&gt;&lt;/span&gt;&lt;/td&gt;        &lt;td align="center" width="87"&gt;&lt;span style="font-family: verdana"&gt;&lt;font color="#000000"&gt;Z&lt;/font&gt;&lt;/span&gt;&lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;&lt;strong&gt;&lt;font face="Verdana"&gt;Create Sample Data : &lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;table cellspacing="0" cellpadding="0" width="600" bgcolor="#f4f4f4" border="0"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign="top" width="598"&gt;         &lt;p&gt;&lt;font face="Verdana"&gt;&lt;font color="#008040"&gt;-- Create Table for&amp;#160; Sample Data&lt;/font&gt;               &lt;br /&gt;&lt;font color="#0000ff"&gt;CREATE TABLE&lt;/font&gt; Test               &lt;br /&gt;(               &lt;br /&gt;ID &lt;font color="#0000ff"&gt;INT&lt;/font&gt;,               &lt;br /&gt;AllNames &lt;font color="#0000ff"&gt;VARCHAR&lt;/font&gt;(100)               &lt;br /&gt;)               &lt;br /&gt;GO               &lt;br /&gt;&lt;font color="#008040"&gt;-- Load Sample Data                &lt;br /&gt;&lt;/font&gt;&lt;font color="#0000ff"&gt;INSERT INTO&lt;/font&gt; test &lt;font color="#0000ff"&gt;SELECT&lt;/font&gt;               &lt;br /&gt;1, 'A,B,C' &lt;font color="#0000ff"&gt;UNION ALL SELECT&lt;/font&gt;               &lt;br /&gt;2, 'A,B'&amp;#160; &lt;font color="#0000ff"&gt;UNION ALL SELECT&lt;/font&gt;               &lt;br /&gt;3, 'X,Y,Z'               &lt;br /&gt;GO &lt;/font&gt;&lt;/p&gt;          &lt;p&gt;&lt;font face="Verdana"&gt;&lt;font color="#008040"&gt;-- Verify the Sample Data&lt;/font&gt;               &lt;br /&gt;&lt;font color="#0000ff"&gt;SELECT&lt;/font&gt; Id, AllNames               &lt;br /&gt;&lt;font color="#0000ff"&gt;FROM&lt;/font&gt; Test&lt;/font&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;&lt;font face="Verdana"&gt;&lt;strong&gt;And here is the query for How to split a comma delimited string :&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;  &lt;table bordercolor="#000000" bordercolordark="#808080" width="596" bgcolor="#f4f4f4" bordercolorlight="#808080" border="0"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td width="594"&gt;         &lt;p&gt;&lt;font face="Verdana"&gt;;&lt;font color="#0000ff"&gt;WITH&lt;/font&gt; Cte &lt;font color="#0000ff"&gt;AS&lt;/font&gt; &lt;/font&gt;&lt;/p&gt;          &lt;p&gt;&lt;font face="Verdana"&gt;(              &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;font color="#0000ff"&gt;SELECT&lt;/font&gt;               &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; id,               &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;font color="#ff00ff"&gt;CAST&lt;/font&gt;('&amp;lt;M&amp;gt;' + &lt;font color="#ff00ff"&gt;REPLACE&lt;/font&gt;( Allnames,&amp;#160; &lt;font color="#ff0000"&gt;','&lt;/font&gt; , &lt;font color="#ff0000"&gt;'&amp;lt;/M&amp;gt;&amp;lt;M&amp;gt;'&lt;/font&gt;) + &lt;font color="#ff0000"&gt;'&amp;lt;/M&amp;gt;'&lt;/font&gt; &lt;font color="#0000ff"&gt;AS XML&lt;/font&gt;) &lt;font color="#0000ff"&gt;AS&lt;/font&gt; Names               &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;font color="#0000ff"&gt;FROM&lt;/font&gt; Test               &lt;br /&gt;)               &lt;br /&gt;&lt;font color="#0000ff"&gt;SELECT&lt;/font&gt;               &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; ID,               &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; Split.a.&lt;font color="#0000ff"&gt;value&lt;/font&gt;(&lt;font color="#ff0000"&gt;'.'&lt;/font&gt;, &lt;font color="#ff0000"&gt;'VARCHAR(100)'&lt;/font&gt;) &lt;font color="#0000ff"&gt;AS&lt;/font&gt; Names               &lt;br /&gt;&lt;font color="#0000ff"&gt;FROM&lt;/font&gt; Cte               &lt;br /&gt;CROSS APPLY Names.nodes(&lt;font color="#ff0000"&gt;'/M'&lt;/font&gt;) Split(a)&lt;/font&gt;&lt;/p&gt;          &lt;p&gt;&lt;font face="Verdana"&gt;&amp;#160;&lt;/font&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;&lt;font face="Verdana"&gt;Acknowledgement : Well seriously don’t know.&amp;#160; Somewhere I came across this solution while answering / participating&amp;#160; on &lt;a href="http://social.msdn.microsoft.com/Forums/en-US/category/sqlserver/" target="_blank"&gt;&lt;font color="#400000"&gt;MSDN Sql Server Forums&lt;/font&gt;&lt;/a&gt;.&amp;#160; So credit goes to my fellow Moderators/answrers on MSDN Forums.&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Verdana"&gt;Actually whatever expertise I gained on T-SQL and Sql Server is by participating / answering to the posts on online forums.&amp;#160; I’m one of those freaks who hate to read books ;)&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;em&gt;&lt;font color="#ff0080"&gt;- Mangal Pardeshi&lt;/font&gt;&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8585649008635531444-7404830861823573314?l=mangalpardeshi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mangalpardeshi.blogspot.com/feeds/7404830861823573314/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://mangalpardeshi.blogspot.com/2009/03/how-to-split-comma-delimited-string.html#comment-form' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8585649008635531444/posts/default/7404830861823573314'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8585649008635531444/posts/default/7404830861823573314'/><link rel='alternate' type='text/html' href='http://mangalpardeshi.blogspot.com/2009/03/how-to-split-comma-delimited-string.html' title='How To Split A Comma Delimited String'/><author><name>Mangal Pardeshi</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_weIRgO4yuTo/SzSmWMjAwJI/AAAAAAAAAKs/DgpUWlN5KZY/S220/y1m_Ev9g6OBzqJR8Z6lhdhzgWZ-bl8WwBuhHkrErOHngc14s42YU23gTajpglsbRjABGlnSHh-wUfbGievoo7soxuBY9uSp1K1I.jpg'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8585649008635531444.post-6314871273648543454</id><published>2009-03-01T00:11:00.002+05:30</published><updated>2009-05-26T19:14:01.638+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='FAQ'/><title type='text'>How to Disable Right Click on your blog</title><content type='html'>&lt;p&gt;Apart from writing articles on Sql every now and then I would also like to share some tips on blog writing with my fellow bloggers.  To start with I’ll share a simple a trick on “How to disable the Right Click” on your blog, so that others can’t EASILY copy contents from your blog.  Well I think don’t need to write in detail why the hell you want to do that, so here you go -&lt;/p&gt;&lt;p&gt;&lt;strong&gt;How to Disable Right Click on your blog :&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;1. &lt;/strong&gt;Go to Layout page of your Blog Dashboard.&lt;/p&gt;&lt;p&gt;2. Click on Edit HTML tab.&lt;/p&gt;&lt;p&gt;3. And find &amp;lt;body&amp;gt;&lt;/p&gt;&lt;p&gt;4. Add oncontextmenu="return false;" after the body so it will look like this -&lt;/p&gt;&lt;p&gt;&amp;lt;body oncontextmenu="return false;"&amp;gt;&lt;/p&gt;&lt;p&gt;5. Just check ones and if you don't get any error messages, save the template.&lt;/p&gt;&lt;p&gt;That’s it!!  Now right click is disable from blog and nobody will be able do a simple right click and copy contents or photos from your blog. &lt;/p&gt;&lt;p&gt;Though with above trick right click is disable still it is not that impossible to copy contents or photos from your blog.&lt;/p&gt;&lt;p&gt;&lt;span style="color:#ff0000;"&gt;&lt;strong&gt;&lt;em&gt;- Mangal Pardeshi.&lt;/em&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8585649008635531444-6314871273648543454?l=mangalpardeshi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8585649008635531444/posts/default/6314871273648543454'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8585649008635531444/posts/default/6314871273648543454'/><link rel='alternate' type='text/html' href='http://mangalpardeshi.blogspot.com/2009/03/how-to-disable-right-click-on-your-blog.html' title='How to Disable Right Click on your blog'/><author><name>Mangal Pardeshi</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_weIRgO4yuTo/SzSmWMjAwJI/AAAAAAAAAKs/DgpUWlN5KZY/S220/y1m_Ev9g6OBzqJR8Z6lhdhzgWZ-bl8WwBuhHkrErOHngc14s42YU23gTajpglsbRjABGlnSHh-wUfbGievoo7soxuBY9uSp1K1I.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-8585649008635531444.post-6711411582558295124</id><published>2009-02-23T17:32:00.003+05:30</published><updated>2009-05-15T17:04:54.918+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='FAQ'/><category scheme='http://www.blogger.com/atom/ns#' term='T-SQL'/><title type='text'>Create A Comma Delimited List From a Column</title><content type='html'>&lt;p&gt;&lt;span style="font-family: verdana"&gt;In this article I will try to show you a simple example on how to Create a Comma Delimited List from a column also called as CSV (Comma Separated Values).&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-family: verdana"&gt;For example here is our Sample Table -&lt;/span&gt;&lt;/p&gt;  &lt;table style="color: #ffffff" bordercolordark="#c0c0c0" width="127" bordercolorlight="#c0c0c0" border="1" bg="bg"&gt;&lt;tbody&gt;     &lt;tr bgcolor="#c6c3b5"&gt;       &lt;td width="42"&gt;&lt;strong&gt;&lt;span style="font-family: verdana"&gt;&lt;font color="#000000"&gt;Id&lt;/font&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/td&gt;        &lt;td width="83"&gt;&lt;strong&gt;&lt;span style="font-family: verdana"&gt;&lt;font color="#000000"&gt;Names&lt;/font&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td width="42"&gt;&lt;span style="font-family: verdana"&gt;&lt;font color="#000000"&gt;1&lt;/font&gt;&lt;/span&gt;&lt;/td&gt;        &lt;td width="83"&gt;&lt;span style="font-family: verdana"&gt;&lt;font color="#000000"&gt;A&lt;/font&gt;&lt;/span&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td width="42"&gt;&lt;span style="font-family: verdana"&gt;&lt;font color="#000000"&gt;1&lt;/font&gt;&lt;/span&gt;&lt;/td&gt;        &lt;td width="83"&gt;&lt;span style="font-family: verdana"&gt;&lt;font color="#000000"&gt;B&lt;/font&gt;&lt;/span&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td width="42"&gt;&lt;span style="font-family: verdana"&gt;&lt;font color="#000000"&gt;1&lt;/font&gt;&lt;/span&gt;&lt;/td&gt;        &lt;td width="83"&gt;&lt;span style="font-family: verdana"&gt;&lt;font color="#000000"&gt;C&lt;/font&gt;&lt;/span&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td width="42"&gt;&lt;span style="font-family: verdana"&gt;&lt;font color="#000000"&gt;2&lt;/font&gt;&lt;/span&gt;&lt;/td&gt;        &lt;td width="83"&gt;&lt;span style="font-family: verdana"&gt;&lt;font color="#000000"&gt;A&lt;/font&gt;&lt;/span&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td width="42"&gt;&lt;span style="font-family: verdana"&gt;&lt;font color="#000000"&gt;2&lt;/font&gt;&lt;/span&gt;&lt;/td&gt;        &lt;td width="83"&gt;&lt;span style="font-family: verdana"&gt;&lt;font color="#000000"&gt;B&lt;/font&gt;&lt;/span&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td width="42"&gt;&lt;span style="font-family: verdana"&gt;&lt;font color="#000000"&gt;3&lt;/font&gt;&lt;/span&gt;&lt;/td&gt;        &lt;td width="83"&gt;&lt;span style="font-family: verdana"&gt;&lt;font color="#000000"&gt;X&lt;/font&gt;&lt;/span&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td width="42"&gt;&lt;span style="font-family: verdana"&gt;&lt;font color="#000000"&gt;3&lt;/font&gt;&lt;/span&gt;&lt;/td&gt;        &lt;td width="83"&gt;&lt;span style="font-family: verdana"&gt;&lt;font color="#000000"&gt;Y&lt;/font&gt;&lt;/span&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td width="42"&gt;&lt;span style="font-family: verdana"&gt;&lt;font color="#000000"&gt;3&lt;/font&gt;&lt;/span&gt;&lt;/td&gt;        &lt;td width="83"&gt;&lt;span style="font-family: verdana"&gt;&lt;font color="#000000"&gt;Z&lt;/font&gt;&lt;/span&gt;&lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;&lt;span style="font-family: verdana"&gt;&lt;font color="#000000"&gt;And here is the expected output -&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-family: verdana"&gt;&lt;font color="#000000"&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;  &lt;table style="color: #ffffff" bordercolordark="#c0c0c0" width="132" bordercolorlight="#c0c0c0" border="1" bg="bg"&gt;&lt;tbody&gt;     &lt;tr bgcolor="#c6c3b5"&gt;       &lt;td width="41"&gt;&lt;strong&gt;&lt;span style="font-family: verdana"&gt;&lt;font color="#000000"&gt;Id&lt;/font&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/td&gt;        &lt;td width="89"&gt;&lt;strong&gt;&lt;span style="font-family: verdana"&gt;&lt;font color="#000000"&gt;AllNames&lt;/font&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td width="41"&gt;&lt;span style="font-family: verdana"&gt;&lt;font color="#000000"&gt;1&lt;/font&gt;&lt;/span&gt;&lt;/td&gt;        &lt;td width="89"&gt;&lt;span style="font-family: verdana"&gt;&lt;font color="#000000"&gt;A, B, C&lt;/font&gt;&lt;/span&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td width="41"&gt;&lt;span style="font-family: verdana"&gt;&lt;font color="#000000"&gt;2&lt;/font&gt;&lt;/span&gt;&lt;/td&gt;        &lt;td width="89"&gt;&lt;span style="font-family: verdana"&gt;&lt;font color="#000000"&gt;A, B&lt;/font&gt;&lt;/span&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td width="41"&gt;&lt;span style="font-family: verdana"&gt;&lt;font color="#000000"&gt;3&lt;/font&gt;&lt;/span&gt;&lt;/td&gt;        &lt;td width="89"&gt;&lt;span style="font-family: verdana"&gt;&lt;font color="#000000"&gt;X, Y, Z&lt;/font&gt;&lt;/span&gt;&lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;&lt;span style="font-family: verdana"&gt;Though in above example I have used Comma, sometimes it may required to use other delimiters as well, like Single space (A B C) or Vertical bar (A | B | C) or may be some other delimiter. &lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-family: verdana"&gt;Create Sample Data -&lt;/span&gt;&lt;/p&gt;  &lt;table style="color: #f4f4f4" bordercolordark="#000000" width="561" bgcolor="#f4f4f4" bordercolorlight="#f4f4f4" border="0" bg="bg"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td width="559"&gt;&lt;span style="font-family: verdana"&gt;&lt;span style="color: #008040"&gt;--&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&lt;span style="color: #008040"&gt;Create sample table&lt;/span&gt;&lt;/span&gt;             &lt;br /&gt;&lt;span style="color: #0000ff"&gt;CREATE&lt;/span&gt; &lt;span style="color: #0000ff"&gt;TABLE&lt;/span&gt; &lt;font color="#000000"&gt;Test &lt;/font&gt;            &lt;br /&gt;&lt;font color="#000000"&gt;(              &lt;br /&gt;Id&lt;/font&gt; &lt;span style="color: #0000ff"&gt;INT&lt;/span&gt;,             &lt;br /&gt;&lt;span style="color: #0000ff"&gt;&lt;span style="color: #000000"&gt;Names&lt;/span&gt;&lt;/span&gt; &lt;span style="color: #0000ff"&gt;VARCHAR&lt;/span&gt;&lt;font color="#000000"&gt;(100)&lt;/font&gt;             &lt;br /&gt;&lt;font color="#000000"&gt;)&lt;/font&gt;             &lt;br /&gt;&lt;span style="color: #0000ff"&gt;GO&lt;/span&gt;             &lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008040"&gt;&lt;span style="font-family: verdana"&gt;-- Load sample data&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&lt;span style="font-family: verdana"&gt;                &lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: verdana"&gt;&lt;span style="color: #0000ff"&gt;INSERT&lt;/span&gt; &lt;span style="color: #0000ff"&gt;INTO&lt;/span&gt; &lt;font color="#000000"&gt;Test&lt;/font&gt; &lt;span style="color: #0000ff"&gt;SELECT&lt;/span&gt;             &lt;br /&gt;&lt;font color="#000000"&gt;1,&lt;/font&gt;&lt;span style="color: #006080"&gt;&lt;span style="color: #ff0000"&gt;'A'&lt;/span&gt;&lt;/span&gt; &lt;span style="color: #0000ff"&gt;UNION&lt;/span&gt; &lt;span style="color: #0000ff"&gt;ALL&lt;/span&gt; &lt;span style="color: #0000ff"&gt;SELECT&lt;/span&gt;             &lt;br /&gt;&lt;font color="#000000"&gt;1,&lt;/font&gt;&lt;span style="color: #006080"&gt;&lt;span style="color: #ff0000"&gt;'B'&lt;/span&gt;&lt;/span&gt; &lt;span style="color: #0000ff"&gt;UNION&lt;/span&gt; &lt;span style="color: #0000ff"&gt;ALL&lt;/span&gt; &lt;span style="color: #0000ff"&gt;SELECT&lt;/span&gt;             &lt;br /&gt;&lt;font color="#000000"&gt;1,&lt;/font&gt;&lt;span style="color: #006080"&gt;&lt;span style="color: #ff0000"&gt;'C'&lt;/span&gt;&lt;/span&gt; &lt;span style="color: #0000ff"&gt;UNION&lt;/span&gt; &lt;span style="color: #0000ff"&gt;ALL&lt;/span&gt; &lt;span style="color: #0000ff"&gt;SELECT&lt;/span&gt;             &lt;br /&gt;&lt;font color="#000000"&gt;2,&lt;/font&gt;&lt;span style="color: #006080"&gt;&lt;span style="color: #ff0000"&gt;'A'&lt;/span&gt;&lt;/span&gt; &lt;span style="color: #0000ff"&gt;UNION&lt;/span&gt; &lt;span style="color: #0000ff"&gt;ALL&lt;/span&gt; &lt;span style="color: #0000ff"&gt;SELECT&lt;/span&gt;&lt;font color="#000000"&gt;              &lt;br /&gt;2,&lt;/font&gt;&lt;span style="color: #006080"&gt;&lt;span style="color: #ff0000"&gt;'B'&lt;/span&gt;&lt;/span&gt; &lt;span style="color: #0000ff"&gt;UNION&lt;/span&gt; &lt;span style="color: #0000ff"&gt;ALL&lt;/span&gt; &lt;span style="color: #0000ff"&gt;SELECT&lt;/span&gt;             &lt;br /&gt;&lt;font color="#000000"&gt;3,&lt;/font&gt;&lt;span style="color: #006080"&gt;&lt;span style="color: #ff0000"&gt;'X'&lt;/span&gt;&lt;/span&gt; &lt;span style="color: #0000ff"&gt;UNION&lt;/span&gt; &lt;span style="color: #0000ff"&gt;ALL&lt;/span&gt; &lt;span style="color: #0000ff"&gt;SELECT&lt;/span&gt;             &lt;br /&gt;&lt;font color="#000000"&gt;3,&lt;/font&gt;&lt;span style="color: #006080"&gt;&lt;span style="color: #ff0000"&gt;'Y'&lt;/span&gt;&lt;/span&gt; &lt;span style="color: #0000ff"&gt;UNION&lt;/span&gt; &lt;span style="color: #0000ff"&gt;ALL&lt;/span&gt; &lt;span style="color: #0000ff"&gt;SELECT&lt;/span&gt;&lt;font color="#000000"&gt;              &lt;br /&gt;3,&lt;/font&gt;&lt;span style="color: #006080"&gt;&lt;span style="color: #ff0000"&gt;'Z'&lt;/span&gt;&lt;/span&gt;             &lt;br /&gt;&lt;font color="#000000"&gt;GO&lt;/font&gt;&lt;/span&gt;&lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;&lt;span style="font-family: verdana"&gt;&lt;/span&gt;&lt;/p&gt; &lt;span style="font-family: verdana"&gt;SQL Server 2005 / SQL Server 2008 Solution for Comma delimiter.&lt;/span&gt;   &lt;br /&gt;&lt;span style="font-family: verdana"&gt;&lt;strong&gt;1st Solution -&lt;/strong&gt;&lt;/span&gt;   &lt;br /&gt;  &lt;table style="color: #f4f4f4" cellspacing="0" cellpadding="0" width="556" bgcolor="#f4f4f4" border="0" bg="bg"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign="top" width="554"&gt;         &lt;p&gt;&lt;span style="font-family: verdana"&gt;&lt;font color="#000000"&gt;&lt;span style="color: #0000ff"&gt;SELECT&lt;/span&gt; T1.Id&amp;#160; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; ,AllNames = &lt;span style="color: #ff00ff"&gt;SubString&lt;/span&gt; (( &lt;span style="color: #0000ff"&gt;SELECT&lt;/span&gt; &lt;span style="color: #ff0000"&gt;', '&lt;/span&gt; + T2.Names                 &lt;br /&gt;&lt;span style="color: #0000ff"&gt;FROM&lt;/span&gt; Test as T2                 &lt;br /&gt;&lt;span style="color: #0000ff"&gt;WHERE&lt;/span&gt; T1.Id = T2.Id                 &lt;br /&gt;&lt;span style="color: #0000ff"&gt;FOR XML PATH&lt;/span&gt; ( &lt;span style="color: #ff0000"&gt;''&lt;/span&gt; ) ), 3, 1000)                 &lt;br /&gt;&lt;span style="color: #0000ff"&gt;FROM&lt;/span&gt; Test as T1                 &lt;br /&gt;&lt;span style="color: #0000ff"&gt;GROUP BY&lt;/span&gt; Id&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;&lt;span style="font-family: verdana"&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-family: verdana"&gt;If the column “Names” doesn’t contain any spaces in between its values then here is another solution -&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-family: verdana"&gt;&lt;strong&gt;2nd solution -&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;  &lt;table style="color: #f4f4f4" cellspacing="0" cellpadding="0" width="556" bgcolor="#f4f4f4" border="0" bg="bg"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign="top" width="554"&gt;         &lt;p&gt;&lt;span style="font-family: verdana"&gt;&lt;font color="#000000"&gt;&lt;span style="color: #0000ff"&gt;SELECT&lt;/span&gt; T1.Id                 &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; ,AllNames = &lt;span style="color: #ff00ff"&gt;REPLACE&lt;/span&gt; (( &lt;span style="color: #0000ff"&gt;SELECT&lt;/span&gt; T2.Names AS &lt;/font&gt;&lt;font color="#000000"&gt;&lt;span style="color: #ff0000"&gt;'data()'                  &lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;FROM&lt;/span&gt; Test as T2                 &lt;br /&gt;&lt;span style="color: #0000ff"&gt;WHERE&lt;/span&gt; T1.Id = T2.Id                 &lt;br /&gt;&lt;span style="color: #0000ff"&gt;FOR XML PATH&lt;/span&gt; ( &lt;span style="color: #ff0000"&gt;''&lt;/span&gt; ) ), &lt;span style="color: #ff0000"&gt;' '&lt;/span&gt;, &lt;span style="color: #ff0000"&gt;', '&lt;/span&gt;)                 &lt;br /&gt;&lt;span style="color: #0000ff"&gt;FROM&lt;/span&gt; Test as T1                 &lt;br /&gt;&lt;span style="color: #0000ff"&gt;GROUP BY&lt;/span&gt;&lt;/font&gt; Id&lt;/span&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;&lt;span style="font-family: verdana"&gt;Advantage with 2nd solution is that if the data type of column whose value you want to concatenate is INT or any other noncharacter data type you don’t need to CONVERT it into varchar data type. In 1st solution you will need to convert the column to Varchar if its original data type is numeric. But 2nd solution will fail in case there are some in-between spaces in column values. &lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-family: verdana"&gt;Now if you want to create the list using other delimiter, replace comma from above query with your required delimiter.&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-family: verdana"&gt;E.g. for Vertical Bar &lt;/span&gt;&lt;span style="font-family: verdana"&gt;&lt;/span&gt;&lt;/p&gt;  &lt;table style="color: #f4f4f4" cellspacing="0" cellpadding="0" width="556" border="0" bg="bg"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign="top" width="554"&gt;         &lt;p&gt;&lt;span style="font-family: verdana"&gt;&lt;font color="#000000"&gt;&lt;span style="color: #0000ff"&gt;SELECT&lt;/span&gt; T1.Id&amp;#160; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; ,AllNames = &lt;span style="color: #ff00ff"&gt;SubString&lt;/span&gt; (( &lt;span style="color: #0000ff"&gt;SELECT&lt;/span&gt; &lt;span style="color: #ff0000"&gt;'| '&lt;/span&gt; + T2.Names                 &lt;br /&gt;&lt;span style="color: #0000ff"&gt;FROM&lt;/span&gt; Test as T2                 &lt;br /&gt;&lt;span style="color: #0000ff"&gt;WHERE&lt;/span&gt; T1.Id = T2.Id                 &lt;br /&gt;&lt;span style="color: #0000ff"&gt;FOR XML PATH&lt;/span&gt; ( &lt;span style="color: #ff0000"&gt;''&lt;/span&gt; ) ), 3, 1000)                 &lt;br /&gt;&lt;span style="color: #0000ff"&gt;FROM&lt;/span&gt; Test as T1                 &lt;br /&gt;&lt;span style="color: #0000ff"&gt;GROUP BY&lt;/span&gt; Id&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;&lt;span style="font-size: 100%; color: #ff0000; font-family: trebuchet ms"&gt;&lt;strong&gt;&lt;em&gt;&lt;/em&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size: 100%; color: #ff0000; font-family: trebuchet ms"&gt;&lt;strong&gt;&lt;em&gt;Mangal Pardeshi&lt;/em&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size: 100%; color: #ff0000; font-family: trebuchet ms"&gt;&lt;strong&gt;&lt;em&gt;SQL MVP&lt;/em&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8585649008635531444-6711411582558295124?l=mangalpardeshi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mangalpardeshi.blogspot.com/feeds/6711411582558295124/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://mangalpardeshi.blogspot.com/2009/02/create-comma-delimited-list-from-column_888.html#comment-form' title='8 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8585649008635531444/posts/default/6711411582558295124'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8585649008635531444/posts/default/6711411582558295124'/><link rel='alternate' type='text/html' href='http://mangalpardeshi.blogspot.com/2009/02/create-comma-delimited-list-from-column_888.html' title='Create A Comma Delimited List From a Column'/><author><name>Mangal Pardeshi</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_weIRgO4yuTo/SzSmWMjAwJI/AAAAAAAAAKs/DgpUWlN5KZY/S220/y1m_Ev9g6OBzqJR8Z6lhdhzgWZ-bl8WwBuhHkrErOHngc14s42YU23gTajpglsbRjABGlnSHh-wUfbGievoo7soxuBY9uSp1K1I.jpg'/></author><thr:total>8</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8585649008635531444.post-1333858680660315494</id><published>2009-02-20T18:40:00.008+05:30</published><updated>2009-02-22T00:26:56.867+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Admin'/><title type='text'>SQL Server Versions and Editions.</title><content type='html'>&lt;p&gt;&lt;span style="font-family:verdana;"&gt;Lets see how to find which Sql Server Version is installed and Service Packs applied on your machine- &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:verdana;"&gt;To know Execute &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Verdana;"&gt;&lt;span style="color:#3333ff;"&gt;SELECT&lt;/span&gt; @@version&lt;/span&gt;&lt;/p&gt;&lt;span style="font-family:verdana;"&gt;If you are on Sql Server 2000 or later use following which will give you a more elegant output - &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:Verdana;"&gt;&lt;span style="color:#3333ff;"&gt;SELECT&lt;/span&gt; &lt;span style="color:#cc33cc;"&gt;SERVERPROPERTY&lt;/span&gt;(&lt;span style="color:#cc0000;"&gt;'productversion'&lt;/span&gt;) &lt;span style="color:#3333ff;"&gt;as&lt;/span&gt; VersioNumber&lt;br /&gt;,&lt;span style="color:#cc33cc;"&gt;SERVERPROPERTY&lt;/span&gt; (&lt;span style="color:#cc0000;"&gt;'productlevel'&lt;/span&gt;) &lt;span style="color:#3333ff;"&gt;as&lt;/span&gt; SPLevel&lt;br /&gt;,&lt;span style="color:#cc33cc;"&gt;SERVERPROPERTY&lt;/span&gt; (&lt;span style="color:#cc0000;"&gt;'edition'&lt;/span&gt;) &lt;span style="color:#3333ff;"&gt;as&lt;/span&gt; ServerEdition&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;p&gt;&lt;span style="font-family:verdana;"&gt;And here is detailed chart which will show you SQL Server version numbers and the corresponding product or service pack level -&lt;/span&gt;&lt;/p&gt;&lt;table cellspacing="0" cellpadding="0" width="402" border="1"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td valign="top" width="46"&gt;&lt;strong&gt;&lt;span style="font-family:Verdana;"&gt;Sr No&lt;/span&gt;&lt;/strong&gt;&lt;/td&gt;&lt;td valign="top" width="125"&gt;&lt;strong&gt;&lt;span style="font-family:Verdana;"&gt;Version Number&lt;/span&gt;&lt;/strong&gt;&lt;/td&gt;&lt;td valign="top" width="141"&gt;&lt;strong&gt;&lt;span style="font-family:Verdana;"&gt;Release&lt;/span&gt;&lt;/strong&gt;&lt;/td&gt;&lt;td valign="top" width="88"&gt;&lt;strong&gt;&lt;span style="font-family:Verdana;"&gt;SP Level&lt;/span&gt;&lt;/strong&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="top" width="46"&gt;&lt;span style="font-family:Verdana;"&gt;10.1&lt;/span&gt;&lt;/td&gt;&lt;td valign="top" width="125"&gt;&lt;span style="font-family:Verdana;"&gt;10.0.1600.22&lt;/span&gt;&lt;/td&gt;&lt;td valign="top" width="141"&gt;&lt;span style="font-family:Verdana;"&gt;SQL Server 2008&lt;/span&gt;&lt;/td&gt;&lt;td valign="top" width="88"&gt;&lt;span style="font-family:Verdana;"&gt;RTM&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="top" width="46"&gt;&lt;span style="font-family:Verdana;"&gt;-&lt;/span&gt;&lt;/td&gt;&lt;td valign="top" width="125"&gt;&lt;span style="font-family:Verdana;"&gt;-&lt;/span&gt;&lt;/td&gt;&lt;td valign="top" width="141"&gt;&lt;span style="font-family:Verdana;"&gt;-&lt;/span&gt;&lt;/td&gt;&lt;td valign="top" width="88"&gt;&lt;span style="font-family:Verdana;"&gt;-&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="top" width="46"&gt;&lt;span style="font-family:Verdana;"&gt;9.1&lt;/span&gt;&lt;/td&gt;&lt;td valign="top" width="125"&gt;&lt;span style="font-family:Verdana;"&gt;9.0.1399.00&lt;/span&gt;&lt;/td&gt;&lt;td valign="top" width="141"&gt;&lt;span style="font-family:Verdana;"&gt;SQL Server 2005&lt;/span&gt;&lt;/td&gt;&lt;td valign="top" width="88"&gt;&lt;span style="font-family:Verdana;"&gt;RTM&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="top" width="46"&gt;&lt;span style="font-family:Verdana;"&gt;9.2&lt;/span&gt;&lt;/td&gt;&lt;td valign="top" width="125"&gt;&lt;span style="font-family:Verdana;"&gt;9.0.2047.00&lt;/span&gt;&lt;/td&gt;&lt;td valign="top" width="141"&gt;&lt;span style="font-family:Verdana;"&gt;SQL Server 2005&lt;/span&gt;&lt;/td&gt;&lt;td valign="top" width="88"&gt;&lt;span style="font-family:Verdana;"&gt;SP1&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="top" width="46"&gt;&lt;span style="font-family:Verdana;"&gt;9.3&lt;/span&gt;&lt;/td&gt;&lt;td valign="top" width="125"&gt;&lt;span style="font-family:Verdana;"&gt;9.0.3042.00&lt;/span&gt;&lt;/td&gt;&lt;td valign="top" width="141"&gt;&lt;span style="font-family:Verdana;"&gt;SQL Server 2005&lt;/span&gt;&lt;/td&gt;&lt;td valign="top" width="88"&gt;&lt;span style="font-family:Verdana;"&gt;SP2&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="top" width="46"&gt;&lt;span style="font-family:Verdana;"&gt;9.4&lt;/span&gt;&lt;/td&gt;&lt;td valign="top" width="125"&gt;&lt;span style="font-family:Verdana;"&gt;9.0.4035.00&lt;/span&gt;&lt;/td&gt;&lt;td valign="top" width="141"&gt;&lt;span style="font-family:Verdana;"&gt;SQL Server 2005&lt;/span&gt;&lt;/td&gt;&lt;td valign="top" width="88"&gt;&lt;span style="font-family:Verdana;"&gt;SP3&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="top" width="46"&gt;&lt;span style="font-family:Verdana;"&gt;-&lt;/span&gt;&lt;/td&gt;&lt;td valign="top" width="125"&gt;&lt;span style="font-family:Verdana;"&gt;-&lt;/span&gt;&lt;/td&gt;&lt;td valign="top" width="141"&gt;&lt;span style="font-family:Verdana;"&gt;-&lt;/span&gt;&lt;/td&gt;&lt;td valign="top" width="88"&gt;&lt;span style="font-family:Verdana;"&gt;-&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="top" width="46"&gt;&lt;span style="font-family:Verdana;"&gt;8.1&lt;/span&gt;&lt;/td&gt;&lt;td valign="top" width="125"&gt;&lt;span style="font-family:Verdana;"&gt;8.00.194.00&lt;/span&gt;&lt;/td&gt;&lt;td valign="top" width="141"&gt;&lt;span style="font-family:Verdana;"&gt;SQL Server 2000&lt;/span&gt;&lt;/td&gt;&lt;td valign="top" width="88"&gt;&lt;span style="font-family:Verdana;"&gt;RTM&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="top" width="46"&gt;&lt;span style="font-family:Verdana;"&gt;8.2&lt;/span&gt;&lt;/td&gt;&lt;td valign="top" width="125"&gt;&lt;span style="font-family:Verdana;"&gt;8.00.384.00&lt;/span&gt;&lt;/td&gt;&lt;td valign="top" width="141"&gt;&lt;span style="font-family:Verdana;"&gt;SQL Server 2000&lt;/span&gt;&lt;/td&gt;&lt;td valign="top" width="88"&gt;&lt;span style="font-family:Verdana;"&gt;SP1&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="top" width="46"&gt;&lt;span style="font-family:Verdana;"&gt;8.3&lt;/span&gt;&lt;/td&gt;&lt;td valign="top" width="125"&gt;&lt;span style="font-family:Verdana;"&gt;8.00.534.00&lt;/span&gt;&lt;/td&gt;&lt;td valign="top" width="141"&gt;&lt;span style="font-family:Verdana;"&gt;SQL Server 2000&lt;/span&gt;&lt;/td&gt;&lt;td valign="top" width="88"&gt;&lt;span style="font-family:Verdana;"&gt;SP2&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="top" width="46"&gt;&lt;span style="font-family:Verdana;"&gt;8.4&lt;/span&gt;&lt;/td&gt;&lt;td valign="top" width="125"&gt;&lt;span style="font-family:Verdana;"&gt;8.00.760.00&lt;/span&gt;&lt;/td&gt;&lt;td valign="top" width="141"&gt;&lt;span style="font-family:Verdana;"&gt;SQL Server 2000&lt;/span&gt;&lt;/td&gt;&lt;td valign="top" width="88"&gt;&lt;span style="font-family:Verdana;"&gt;SP3&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="top" width="46"&gt;&lt;span style="font-family:Verdana;"&gt;8.5&lt;/span&gt;&lt;/td&gt;&lt;td valign="top" width="125"&gt;&lt;span style="font-family:Verdana;"&gt;8.00.2039.00&lt;/span&gt;&lt;/td&gt;&lt;td valign="top" width="141"&gt;&lt;span style="font-family:Verdana;"&gt;SQL Server 2000&lt;/span&gt;&lt;/td&gt;&lt;td valign="top" width="88"&gt;&lt;span style="font-family:Verdana;"&gt;SP4&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="top" width="46"&gt;&lt;span style="font-family:Verdana;"&gt;-&lt;/span&gt;&lt;/td&gt;&lt;td valign="top" width="125"&gt;&lt;span style="font-family:Verdana;"&gt;-&lt;/span&gt;&lt;/td&gt;&lt;td valign="top" width="141"&gt;&lt;span style="font-family:Verdana;"&gt;-&lt;/span&gt;&lt;/td&gt;&lt;td valign="top" width="88"&gt;&lt;span style="font-family:Verdana;"&gt;-&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="top" width="46"&gt;&lt;span style="font-family:Verdana;"&gt;7.1&lt;/span&gt;&lt;/td&gt;&lt;td valign="top" width="125"&gt;&lt;span style="font-family:Verdana;"&gt;7.00.623.00&lt;/span&gt;&lt;/td&gt;&lt;td valign="top" width="141"&gt;&lt;span style="font-family:Verdana;"&gt;SQL Server 7.0&lt;/span&gt;&lt;/td&gt;&lt;td valign="top" width="88"&gt;&lt;span style="font-family:Verdana;"&gt;RTM&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="top" width="46"&gt;&lt;span style="font-family:Verdana;"&gt;7.2&lt;/span&gt;&lt;/td&gt;&lt;td valign="top" width="125"&gt;&lt;span style="font-family:Verdana;"&gt;7.00.699.00&lt;/span&gt;&lt;/td&gt;&lt;td valign="top" width="141"&gt;&lt;span style="font-family:Verdana;"&gt;SQL Server 7.0&lt;/span&gt;&lt;/td&gt;&lt;td valign="top" width="88"&gt;&lt;span style="font-family:Verdana;"&gt;SP1&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="top" width="46"&gt;&lt;span style="font-family:Verdana;"&gt;7.3&lt;/span&gt;&lt;/td&gt;&lt;td valign="top" width="125"&gt;&lt;span style="font-family:Verdana;"&gt;7.00.842.00&lt;/span&gt;&lt;/td&gt;&lt;td valign="top" width="141"&gt;&lt;span style="font-family:Verdana;"&gt;SQL Server 7.0&lt;/span&gt;&lt;/td&gt;&lt;td valign="top" width="88"&gt;&lt;span style="font-family:Verdana;"&gt;SP2&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="top" width="46"&gt;&lt;span style="font-family:Verdana;"&gt;7.4&lt;/span&gt;&lt;/td&gt;&lt;td valign="top" width="125"&gt;&lt;span style="font-family:Verdana;"&gt;7.00.961.00&lt;/span&gt;&lt;/td&gt;&lt;td valign="top" width="141"&gt;&lt;span style="font-family:Verdana;"&gt;SQL Server 7.0&lt;/span&gt;&lt;/td&gt;&lt;td valign="top" width="88"&gt;&lt;span style="font-family:Verdana;"&gt;SP3&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="top" width="46"&gt;&lt;span style="font-family:Verdana;"&gt;7.5&lt;/span&gt;&lt;/td&gt;&lt;td valign="top" width="125"&gt;&lt;span style="font-family:Verdana;"&gt;7.00.1063.00&lt;/span&gt;&lt;/td&gt;&lt;td valign="top" width="141"&gt;&lt;span style="font-family:Verdana;"&gt;SQL Server 7.0&lt;/span&gt;&lt;/td&gt;&lt;td valign="top" width="88"&gt;&lt;span style="font-family:Verdana;"&gt;SP4&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="top" width="46"&gt;&lt;span style="font-family:Verdana;"&gt;-&lt;/span&gt;&lt;/td&gt;&lt;td valign="top" width="125"&gt;&lt;span style="font-family:Verdana;"&gt;-&lt;/span&gt;&lt;/td&gt;&lt;td valign="top" width="141"&gt;&lt;span style="font-family:Verdana;"&gt;-&lt;/span&gt;&lt;/td&gt;&lt;td valign="top" width="88"&gt;&lt;span style="font-family:Verdana;"&gt;-&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="top" width="46"&gt;&lt;span style="font-family:Verdana;"&gt;6.51&lt;/span&gt;&lt;/td&gt;&lt;td valign="top" width="125"&gt;&lt;span style="font-family:Verdana;"&gt;6.50.201.00&lt;/span&gt;&lt;/td&gt;&lt;td valign="top" width="141"&gt;&lt;span style="font-family:Verdana;"&gt;SQL Server 6.5&lt;/span&gt;&lt;/td&gt;&lt;td valign="top" width="88"&gt;&lt;span style="font-family:Verdana;"&gt;RTM&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="top" width="46"&gt;&lt;span style="font-family:Verdana;"&gt;6.52&lt;/span&gt;&lt;/td&gt;&lt;td valign="top" width="125"&gt;&lt;span style="font-family:Verdana;"&gt;6.50.213.00&lt;/span&gt;&lt;/td&gt;&lt;td valign="top" width="141"&gt;&lt;span style="font-family:Verdana;"&gt;SQL Server 6.5&lt;/span&gt;&lt;/td&gt;&lt;td valign="top" width="88"&gt;&lt;span style="font-family:Verdana;"&gt;SP1&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="top" width="46"&gt;&lt;span style="font-family:Verdana;"&gt;6.53&lt;/span&gt;&lt;/td&gt;&lt;td valign="top" width="125"&gt;&lt;span style="font-family:Verdana;"&gt;6.50.240.00&lt;/span&gt;&lt;/td&gt;&lt;td valign="top" width="141"&gt;&lt;span style="font-family:Verdana;"&gt;SQL Server 6.5&lt;/span&gt;&lt;/td&gt;&lt;td valign="top" width="88"&gt;&lt;span style="font-family:Verdana;"&gt;SP2&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="top" width="46"&gt;&lt;span style="font-family:Verdana;"&gt;6.54&lt;/span&gt;&lt;/td&gt;&lt;td valign="top" width="125"&gt;&lt;span style="font-family:Verdana;"&gt;6.50.258.00&lt;/span&gt;&lt;/td&gt;&lt;td valign="top" width="141"&gt;&lt;span style="font-family:Verdana;"&gt;SQL Server 6.5&lt;/span&gt;&lt;/td&gt;&lt;td valign="top" width="88"&gt;&lt;span style="font-family:Verdana;"&gt;SP3&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="top" width="46"&gt;&lt;span style="font-family:Verdana;"&gt;6.55&lt;/span&gt;&lt;/td&gt;&lt;td valign="top" width="125"&gt;&lt;span style="font-family:Verdana;"&gt;6.50.281.00&lt;/span&gt;&lt;/td&gt;&lt;td valign="top" width="141"&gt;&lt;span style="font-family:Verdana;"&gt;SQL Server 6.5&lt;/span&gt;&lt;/td&gt;&lt;td valign="top" width="88"&gt;&lt;span style="font-family:Verdana;"&gt;SP4&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="top" width="46"&gt;&lt;span style="font-family:Verdana;"&gt;6.56&lt;/span&gt;&lt;/td&gt;&lt;td valign="top" width="125"&gt;&lt;span style="font-family:Verdana;"&gt;6.50.415.00&lt;/span&gt;&lt;/td&gt;&lt;td valign="top" width="141"&gt;&lt;span style="font-family:Verdana;"&gt;SQL Server 6.5&lt;/span&gt;&lt;/td&gt;&lt;td valign="top" width="88"&gt;&lt;span style="font-family:Verdana;"&gt;SP5&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="top" width="46"&gt;&lt;span style="font-family:Verdana;"&gt;6.57&lt;/span&gt;&lt;/td&gt;&lt;td valign="top" width="125"&gt;&lt;span style="font-family:Verdana;"&gt;6.50.416.00&lt;/span&gt;&lt;/td&gt;&lt;td valign="top" width="141"&gt;&lt;span style="font-family:Verdana;"&gt;SQL Server 6.5&lt;/span&gt;&lt;/td&gt;&lt;td valign="top" width="88"&gt;&lt;span style="font-family:Verdana;"&gt;SP5a &lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="top" width="46"&gt;&lt;span style="font-family:Verdana;"&gt;6.58&lt;/span&gt;&lt;/td&gt;&lt;td valign="top" width="125"&gt;&lt;span style="font-family:Verdana;"&gt;6.50.479.00&lt;/span&gt;&lt;/td&gt;&lt;td valign="top" width="141"&gt;&lt;span style="font-family:Verdana;"&gt;SQL Server 6.5&lt;/span&gt;&lt;/td&gt;&lt;td valign="top" width="88"&gt;&lt;span style="font-family:Verdana;"&gt;SP5a update&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="top" width="46"&gt;&lt;span style="font-family:Verdana;"&gt;-&lt;/span&gt;&lt;/td&gt;&lt;td valign="top" width="125"&gt;&lt;span style="font-family:Verdana;"&gt;-&lt;/span&gt;&lt;/td&gt;&lt;td valign="top" width="141"&gt;&lt;span style="font-family:Verdana;"&gt;-&lt;/span&gt;&lt;/td&gt;&lt;td valign="top" width="88"&gt;&lt;span style="font-family:Verdana;"&gt;-&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="top" width="46"&gt;&lt;span style="font-family:Verdana;"&gt;6.01&lt;/span&gt;&lt;/td&gt;&lt;td valign="top" width="125"&gt;&lt;span style="font-family:Verdana;"&gt;6.00.121.00&lt;/span&gt;&lt;/td&gt;&lt;td valign="top" width="141"&gt;&lt;span style="font-family:Verdana;"&gt;SQL Server 6.0&lt;/span&gt;&lt;/td&gt;&lt;td valign="top" width="88"&gt;&lt;span style="font-family:Verdana;"&gt;RTM&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="top" width="46"&gt;&lt;span style="font-family:Verdana;"&gt;6.02&lt;/span&gt;&lt;/td&gt;&lt;td valign="top" width="125"&gt;&lt;span style="font-family:Verdana;"&gt;6.00.124.00&lt;/span&gt;&lt;/td&gt;&lt;td valign="top" width="141"&gt;&lt;span style="font-family:Verdana;"&gt;SQL Server 6.0&lt;/span&gt;&lt;/td&gt;&lt;td valign="top" width="88"&gt;&lt;span style="font-family:Verdana;"&gt;SP1&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="top" width="46"&gt;&lt;span style="font-family:Verdana;"&gt;6.03&lt;/span&gt;&lt;/td&gt;&lt;td valign="top" width="125"&gt;&lt;span style="font-family:Verdana;"&gt;6.00.139.00&lt;/span&gt;&lt;/td&gt;&lt;td valign="top" width="141"&gt;&lt;span style="font-family:Verdana;"&gt;SQL Server 6.0&lt;/span&gt;&lt;/td&gt;&lt;td valign="top" width="88"&gt;&lt;span style="font-family:Verdana;"&gt;SP2&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="top" width="46"&gt;&lt;span style="font-family:Verdana;"&gt;6.04&lt;/span&gt;&lt;/td&gt;&lt;td valign="top" width="125"&gt;&lt;span style="font-family:Verdana;"&gt;6.00.151.00&lt;/span&gt;&lt;/td&gt;&lt;td valign="top" width="141"&gt;&lt;span style="font-family:Verdana;"&gt;SQL Server 6.0&lt;/span&gt;&lt;/td&gt;&lt;td valign="top" width="88"&gt;&lt;span style="font-family:Verdana;"&gt;SP3&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&lt;span style="font-family:Verdana;"&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:trebuchet ms;font-size:100%;"&gt;&lt;strong&gt;&lt;em&gt;&lt;span style="font-family:Verdana;"&gt;- Mangal Pardeshi&lt;/span&gt;&lt;/em&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Verdana;"&gt;&lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8585649008635531444-1333858680660315494?l=mangalpardeshi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mangalpardeshi.blogspot.com/feeds/1333858680660315494/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://mangalpardeshi.blogspot.com/2009/02/sql-server-versions-and-editions.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8585649008635531444/posts/default/1333858680660315494'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8585649008635531444/posts/default/1333858680660315494'/><link rel='alternate' type='text/html' href='http://mangalpardeshi.blogspot.com/2009/02/sql-server-versions-and-editions.html' title='SQL Server Versions and Editions.'/><author><name>Mangal Pardeshi</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_weIRgO4yuTo/SzSmWMjAwJI/AAAAAAAAAKs/DgpUWlN5KZY/S220/y1m_Ev9g6OBzqJR8Z6lhdhzgWZ-bl8WwBuhHkrErOHngc14s42YU23gTajpglsbRjABGlnSHh-wUfbGievoo7soxuBY9uSp1K1I.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8585649008635531444.post-3143413165885119650</id><published>2009-02-20T12:15:00.008+05:30</published><updated>2009-08-10T11:22:33.430+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Linked Server'/><title type='text'>Excel 2007 Linked Server</title><content type='html'>&lt;span style="font-size: 100%; font-family: verdana"&gt;&lt;/span&gt;  &lt;p&gt;&lt;font face="Verdana"&gt;Lets see How to create a &lt;/font&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms188279.aspx"&gt;&lt;font face="Verdana"&gt;linked server&lt;/font&gt;&lt;/a&gt;&lt;font face="Verdana"&gt; with Excel 2007. Well most of the stuff you'll find on the net on how to create a linked Server is using Microsoft Jet 4.0 OLE DB Provider which is no longer able to connect to Excel 2007. &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Verdana"&gt;So here you go...      &lt;br /&gt;We will use &amp;quot;Microsoft.ACE.OLEDB.12.0&amp;quot; which come with Office 2007 pack. If you don't have it on Provider's list you can download it from &lt;/font&gt;&lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=7554F536-8C28-4598-9B72-EF94E038C891&amp;amp;displaylang=en"&gt;&lt;font face="Verdana"&gt;2007 Office System Driver: Data Connectivity Components&lt;/font&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Verdana"&gt;After downloading and Installing the ACE driver you can create the Linked server as &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Verdana"&gt;&lt;font color="#0000ff"&gt;exec&lt;/font&gt; &lt;font color="#800000"&gt;sp_addLinkedServer&lt;/font&gt;       &lt;br /&gt;@server=&lt;font color="#ff0000"&gt; 'XLFile'&lt;/font&gt;,       &lt;br /&gt;@srvproduct = &lt;font color="#ff0000"&gt;'ACE 12.0'&lt;/font&gt;,       &lt;br /&gt;@provider = &lt;font color="#ff0000"&gt;'Microsoft.ACE.OLEDB.12.0'&lt;/font&gt;,       &lt;br /&gt;@datasrc = &lt;font color="#ff0000"&gt;'E:\Mangal.xls'&lt;/font&gt;,       &lt;br /&gt;@provstr = &lt;font color="#ff0000"&gt;'Excel 12.0; HDR=No'&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Verdana"&gt;If you have the Column names in Excel do &lt;strong&gt;HDR&lt;/strong&gt;=&lt;strong&gt;yes&lt;/strong&gt;.&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Verdana"&gt;Now you can query your Excel just like any table - &lt;font color="#0000ff"&gt;SELECT&lt;/font&gt; * &lt;font color="#0000ff"&gt;FROM&lt;/font&gt; XLFile...[sheet1$] &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Verdana"&gt;Or if you don't want to create a Linked Server, and just want to execute the Excel then do - &lt;font color="#0000ff"&gt;       &lt;br /&gt;SELECT&lt;/font&gt; * &lt;font color="#0000ff"&gt;FROM OPENROWSET&lt;/font&gt; ( &lt;font color="#ff0000"&gt;'Microsoft.ACE.OLEDB.12.0'&lt;/font&gt;, &lt;font color="#ff0000"&gt;'Excel 12.0; Database=E:\Mangal.xls;HDR=No'&lt;/font&gt;, &lt;font color="#ff0000"&gt;'Select * from [Sheet1$]'&lt;/font&gt; )&lt;/font&gt; &lt;font face="Verdana"&gt;     &lt;br /&gt;And if you execute the above query and you get the error &lt;font color="#ff0000"&gt;       &lt;br /&gt;Msg 15281, Level 16, State 1, Line 1 SQL Server blocked access to STATEMENT 'OpenRowset/OpenDatasource' of component 'Ad Hoc Distributed Queries' because this component is turned off. That means first you need to enable the 'Ad Hoc Distributed Queries'.&lt;/font&gt; &lt;/font&gt;&lt;/p&gt;  &lt;pre&gt;&lt;font face="Verdana"&gt;For that first execute the following scripts. &lt;br /&gt;&lt;font color="#800000"&gt;sp_configure&lt;/font&gt; &lt;font color="#ff0000"&gt;'show advanced options'&lt;/font&gt;, 1&lt;br /&gt;GO&lt;br /&gt;&lt;font color="#0000ff"&gt;RECONFIGURE WITH&lt;/font&gt; OverRide&lt;br /&gt;GO&lt;br /&gt;&lt;font color="#800000"&gt;sp_configure&lt;/font&gt;&lt;font color="#ff0000"&gt; 'Ad Hoc Distributed Queries'&lt;/font&gt;, 1&lt;br /&gt;GO&lt;br /&gt;&lt;font color="#0000ff"&gt;RECONFIGURE WITH&lt;/font&gt; OverRide&lt;br /&gt;GO&lt;/font&gt;&lt;font face="Verdana"&gt;&lt;strong&gt;&lt;br /&gt;For Creating Linked Server from Management Studio:&lt;/strong&gt;&lt;br /&gt;Open the Management studio, connect to your server. And follow the steps&lt;br /&gt;1. Go to &amp;quot;Server Objects&amp;quot; then Right CLick on &amp;quot;Linked Servers&amp;quot; and write &amp;quot;New Linked Server&amp;quot;.&lt;br /&gt;2. Give any name to your linked server. In our example I've given &amp;quot;XL&amp;quot;.&lt;br /&gt;3. Now select Server Type as &amp;quot;Other Data Source&amp;quot;. Now select the provider&amp;quot;Microsoft Office 12.0 Access Database Engine OLE DB Provider.&amp;quot;&lt;br /&gt;4. Product Name : ACE 12.0&lt;br /&gt;5. Date Source : E:\Mangal.xls --- Here you need to put the path of your Excel Sheet.&lt;br /&gt;e.g. C:\Folder\New.xls Provider String : Excel 12.0; HDR=No &lt;/font&gt;&lt;font face="Verdana"&gt;&lt;br /&gt;Again remember if you have column names in Excel then HDR=Yes. &lt;/font&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;em&gt;&lt;font face="Verdana"&gt;- Mangal Pardeshi.&lt;/font&gt;&lt;/em&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8585649008635531444-3143413165885119650?l=mangalpardeshi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mangalpardeshi.blogspot.com/feeds/3143413165885119650/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://mangalpardeshi.blogspot.com/2009/02/excel-2007-linked-server.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8585649008635531444/posts/default/3143413165885119650'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8585649008635531444/posts/default/3143413165885119650'/><link rel='alternate' type='text/html' href='http://mangalpardeshi.blogspot.com/2009/02/excel-2007-linked-server.html' title='Excel 2007 Linked Server'/><author><name>Mangal Pardeshi</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_weIRgO4yuTo/SzSmWMjAwJI/AAAAAAAAAKs/DgpUWlN5KZY/S220/y1m_Ev9g6OBzqJR8Z6lhdhzgWZ-bl8WwBuhHkrErOHngc14s42YU23gTajpglsbRjABGlnSHh-wUfbGievoo7soxuBY9uSp1K1I.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8585649008635531444.post-938222288213412</id><published>2009-02-03T14:06:00.013+05:30</published><updated>2009-05-20T15:32:20.045+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='FAQ'/><category scheme='http://www.blogger.com/atom/ns#' term='T-SQL'/><title type='text'>Calculating Running Totals in SQL</title><content type='html'>&lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;NOTE: After realizing that, SELF JOIN is not efficient way of calculating Running Totals so I added another post on how to Calculate Running Totals using a co-related sub-query.&amp;#160; So instead of using the technique I used in this post you should use technique mentioned in my new post -&amp;#160; &lt;a href="http://mangalpardeshi.blogspot.com/2009/05/calculating-running-totals.html"&gt;How to Calculating Running Totals&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size: 100%; font-family: verdana"&gt;In this article I will show you a few different techniques for calculating Running Total on multiple rows. The different scenarios I’ll be covering in this post are -&lt;/span&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;span style="font-size: 100%; font-family: verdana"&gt;Running Total for all records. &lt;/span&gt;&lt;/li&gt;    &lt;li&gt;&lt;span style="font-size: 100%; font-family: verdana"&gt;Running Total on each Group of Records. &lt;/span&gt;&lt;/li&gt;    &lt;li&gt;&lt;span style="font-size: 100%; font-family: verdana"&gt;Running Total on each Date. &lt;/span&gt;&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;span style="font-size: 100%; font-family: verdana"&gt;Here is our sample table :&lt;/span&gt;&lt;/p&gt;  &lt;table cellspacing="0" cellpadding="2" width="329" border="1"&gt;&lt;tbody&gt;     &lt;tr bgcolor="#c6c3b5"&gt;       &lt;td valign="top" width="41"&gt;&lt;strong&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;ShipId&lt;/span&gt;&lt;/strong&gt;&lt;/td&gt;        &lt;td valign="top" width="51"&gt;&lt;strong&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;OrderId&lt;/span&gt;&lt;/strong&gt;&lt;/td&gt;        &lt;td valign="top" width="173"&gt;&lt;strong&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;ShipDate&lt;/span&gt;&lt;/strong&gt;&lt;/td&gt;        &lt;td valign="top" width="62"&gt;&lt;strong&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;Quantity&lt;/span&gt;&lt;/strong&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="41"&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;1&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="51"&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;1&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="173"&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;2009-02-01 12:06:16.820&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="62"&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;10&lt;/span&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="41"&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;2&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="51"&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;1&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="173"&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;2009-02-02 16:16:16.820&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="62"&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;15&lt;/span&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="41"&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;3&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="51"&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;2&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="173"&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;2009-02-01 13:26:16.820&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="62"&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;20&lt;/span&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="41"&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;4&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="51"&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;2&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="173"&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;2009-02-03 17:40:16.820&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="62"&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;12&lt;/span&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="41"&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;5&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="51"&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;2&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="173"&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;2009-02-04 13:05:16.820&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="62"&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;15&lt;/span&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="41"&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;6&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="51"&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;3&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="173"&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;2009-02-03 14:25:16.820&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="62"&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;25&lt;/span&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="41"&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;7&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="51"&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;3&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="173"&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;2009-02-04 15:50:16.820&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="62"&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;50&lt;/span&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="41"&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;8&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="51"&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;3&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="173"&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;2009-02-05 19:40:16.820&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="62"&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;30&lt;/span&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="41"&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;9&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="51"&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;4&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="173"&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;2009-02-06 15:30:16.820&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="62"&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;20&lt;/span&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="41"&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;10&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="51"&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;4&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="173"&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;2009-02-07 16:20:16.820&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="62"&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;10&lt;/span&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="41"&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;11&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="51"&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;5&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="173"&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;2009-02-05 17:05:16.820&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="62"&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;35&lt;/span&gt;&lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;&lt;b&gt;&lt;span style="font-size: 100%; font-family: verdana"&gt;Create Sample Data:&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;  &lt;table cellspacing="0" cellpadding="2" width="492" bgcolor="#f4f4f4" border="1"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign="top" width="490"&gt;         &lt;p&gt;&lt;span style="font-size: 78%"&gt;&lt;span style="font-family: verdana"&gt;&lt;span style="color: #008000"&gt;-- Create Table&lt;/span&gt;                 &lt;br /&gt;&lt;span style="color: #0000ff"&gt;CREATE&lt;/span&gt; &lt;span style="color: #0000ff"&gt;TABLE&lt;/span&gt; Sales                 &lt;br /&gt;( ShipId &lt;span style="color: #0000ff"&gt;INT&lt;/span&gt;,                 &lt;br /&gt;OrderId &lt;span style="color: #0000ff"&gt;INT&lt;/span&gt;,                 &lt;br /&gt;ShipDate DateTime,                 &lt;br /&gt;Quantity &lt;span style="color: #0000ff"&gt;INT&lt;/span&gt; )                 &lt;br /&gt;&lt;span style="color: #0000ff"&gt;GO&lt;/span&gt;                 &lt;br /&gt;&lt;span style="color: #008000"&gt;-- Load Sample Data&lt;/span&gt; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;          &lt;p&gt;&lt;span style="font-size: 78%"&gt;&lt;span style="font-family: verdana"&gt;INSERT &lt;span style="color: #0000ff"&gt;INTO&lt;/span&gt; Sales &lt;span style="color: #0000ff"&gt;SELECT&lt;/span&gt;                 &lt;br /&gt;1,1, &lt;span style="color: #006080"&gt;&lt;font color="#ff0000"&gt;'Feb 01 2009 12:06:16:820PM'&lt;/font&gt;&lt;/span&gt;,10 &lt;span style="color: #0000ff"&gt;UNION&lt;/span&gt; &lt;span style="color: #0000ff"&gt;ALL&lt;/span&gt; &lt;span style="color: #0000ff"&gt;SELECT&lt;/span&gt;                 &lt;br /&gt;2,1, &lt;span style="color: #006080"&gt;&lt;font color="#ff0000"&gt;'Feb 02 2009 04:16:16:820PM'&lt;/font&gt;&lt;/span&gt;,15 &lt;span style="color: #0000ff"&gt;UNION&lt;/span&gt; &lt;span style="color: #0000ff"&gt;ALL&lt;/span&gt; &lt;span style="color: #0000ff"&gt;SELECT&lt;/span&gt;                 &lt;br /&gt;3,2, &lt;span style="color: #006080"&gt;&lt;font color="#ff0000"&gt;'Feb 01 2009 01:26:16:820PM'&lt;/font&gt;&lt;/span&gt;,20 &lt;span style="color: #0000ff"&gt;UNION&lt;/span&gt; &lt;span style="color: #0000ff"&gt;ALL&lt;/span&gt; &lt;span style="color: #0000ff"&gt;SELECT&lt;/span&gt;                 &lt;br /&gt;4,2, &lt;span style="color: #006080"&gt;&lt;font color="#ff0000"&gt;'Feb 03 2009 02:40:16:820PM'&lt;/font&gt;&lt;/span&gt;,12 &lt;span style="color: #0000ff"&gt;UNION&lt;/span&gt; &lt;span style="color: #0000ff"&gt;ALL&lt;/span&gt; &lt;span style="color: #0000ff"&gt;SELECT&lt;/span&gt;                 &lt;br /&gt;5,2, &lt;span style="color: #006080"&gt;&lt;font color="#ff0000"&gt;'Feb 04 2009 01:05:16:820PM'&lt;/font&gt;&lt;/span&gt;,15 &lt;span style="color: #0000ff"&gt;UNION&lt;/span&gt; &lt;span style="color: #0000ff"&gt;ALL&lt;/span&gt; &lt;span style="color: #0000ff"&gt;SELECT&lt;/span&gt;                 &lt;br /&gt;6,3, &lt;span style="color: #006080"&gt;&lt;font color="#ff0000"&gt;'Feb 03 2009 05:25:16:820PM'&lt;/font&gt;&lt;/span&gt;,25 &lt;span style="color: #0000ff"&gt;UNION&lt;/span&gt; &lt;span style="color: #0000ff"&gt;ALL&lt;/span&gt; &lt;span style="color: #0000ff"&gt;SELECT&lt;/span&gt;                 &lt;br /&gt;7,3, &lt;span style="color: #006080"&gt;&lt;font color="#ff0000"&gt;'Feb 04 2009 03:50:16:820PM'&lt;/font&gt;&lt;/span&gt;,50 &lt;span style="color: #0000ff"&gt;UNION&lt;/span&gt; &lt;span style="color: #0000ff"&gt;ALL&lt;/span&gt; &lt;span style="color: #0000ff"&gt;SELECT&lt;/span&gt;                 &lt;br /&gt;8,3, &lt;span style="color: #006080"&gt;&lt;font color="#ff0000"&gt;'Feb 05 2009 07:40:16:820PM'&lt;/font&gt;&lt;/span&gt;,30 &lt;span style="color: #0000ff"&gt;UNION&lt;/span&gt; &lt;span style="color: #0000ff"&gt;ALL&lt;/span&gt; &lt;span style="color: #0000ff"&gt;SELECT&lt;/span&gt;                 &lt;br /&gt;9,4, &lt;span style="color: #006080"&gt;&lt;font color="#ff0000"&gt;'Feb 06 2009 03:30:16:820PM'&lt;/font&gt;&lt;/span&gt;,20 &lt;span style="color: #0000ff"&gt;UNION&lt;/span&gt; &lt;span style="color: #0000ff"&gt;ALL&lt;/span&gt; &lt;span style="color: #0000ff"&gt;SELECT&lt;/span&gt;                 &lt;br /&gt;10,4, &lt;span style="color: #006080"&gt;&lt;font color="#ff0000"&gt;'Feb 07 2009 04:20:16:820PM'&lt;/font&gt;&lt;/span&gt;,10 &lt;span style="color: #0000ff"&gt;UNION&lt;/span&gt; &lt;span style="color: #0000ff"&gt;ALL&lt;/span&gt; &lt;span style="color: #0000ff"&gt;SELECT&lt;/span&gt;                 &lt;br /&gt;11,5, &lt;span style="color: #006080"&gt;&lt;font color="#ff0000"&gt;'Feb 05 2009 05:05:16:820PM'&lt;/font&gt;&lt;/span&gt;,35&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt; &lt;span style="font-size: 100%"&gt;&lt;span style="font-family: verdana"&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/span&gt;  &lt;br /&gt;&lt;span style="font-size: 100%"&gt;&lt;span style="font-family: verdana"&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/span&gt;  &lt;br /&gt;&lt;span style="font-size: 100%"&gt;&lt;span style="font-family: verdana"&gt;&lt;strong&gt;Case I : &lt;/strong&gt;Running Total For all records.&lt;/span&gt;&lt;/span&gt;   &lt;br /&gt;&lt;span style="font-size: 100%; font-family: verdana"&gt;Here I will calculate the Running Totals for each records. For that I will JOIN the Sales table with itself. So the query will be : &lt;/span&gt;  &lt;br /&gt;  &lt;table cellspacing="0" cellpadding="2" width="493" bgcolor="#f4f4f4" border="1"&gt;&lt;tbody&gt;     &lt;tr height="20"&gt;       &lt;td valign="top" width="491"&gt;         &lt;p&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;&lt;span style="color: #0000ff"&gt;SELECT&lt;/span&gt; A.Shipid, A.Orderid, A.Shipdate, A.Quantity, &lt;span style="color: #ff00ff"&gt;SUM&lt;/span&gt;(B.Quantity) &lt;span style="color: #0000ff"&gt;AS&lt;/span&gt; RunningTotal               &lt;br /&gt;&lt;span style="color: #0000ff"&gt;FROM&lt;/span&gt; Sales A INNER &lt;span style="color: #808080"&gt;JOIN&lt;/span&gt; Sales B               &lt;br /&gt;&lt;span style="color: #0000ff"&gt;ON&lt;/span&gt; A.ShipId &amp;gt;= B.ShipId               &lt;br /&gt;&lt;span style="color: #0000ff"&gt;GROUP BY&lt;/span&gt; A.Shipid, A.Orderid, A.Shipdate, A.Quantity&lt;/span&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt; &lt;span style="font-size: 100%; font-family: verdana"&gt;&lt;/span&gt;  &lt;br /&gt;&lt;span style="font-size: 100%; font-family: verdana"&gt;Here is the result returned by above query :&lt;/span&gt;   &lt;br /&gt;  &lt;table cellspacing="0" cellpadding="2" width="399" border="1"&gt;&lt;tbody&gt;     &lt;tr bgcolor="#c6c3b5"&gt;       &lt;td valign="top" width="40"&gt;&lt;strong&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;ShipId&lt;/span&gt;&lt;/strong&gt;&lt;/td&gt;        &lt;td valign="top" width="49"&gt;&lt;strong&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;OrderId&lt;/span&gt;&lt;/strong&gt;&lt;/td&gt;        &lt;td valign="top" width="177"&gt;&lt;strong&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;ShipDate&lt;/span&gt;&lt;/strong&gt;&lt;/td&gt;        &lt;td valign="top" width="52"&gt;&lt;strong&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;Quantity&lt;/span&gt;&lt;/strong&gt;&lt;/td&gt;        &lt;td valign="top" width="79"&gt;&lt;strong&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;RunningTotal&lt;/span&gt;&lt;/strong&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="40"&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;1&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="49"&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;1&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="177"&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;2009-02-01 12:06:16.820&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="52"&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;10&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="79"&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;10&lt;/span&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="40"&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;2&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="49"&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;1&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="177"&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;2009-02-02 16:16:16.820&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="52"&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;15&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="79"&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;25&lt;/span&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="40"&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;3&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="49"&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;2&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="177"&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;2009-02-01 13:26:16.820&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="52"&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;20&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="79"&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;45&lt;/span&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="40"&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;4&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="49"&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;2&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="177"&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;2009-02-03 17:40:16.820&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="52"&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;12&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="79"&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;57&lt;/span&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="40"&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;5&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="49"&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;2&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="177"&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;2009-02-04 13:05:16.820&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="52"&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;15&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="79"&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;72&lt;/span&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="40"&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;6&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="49"&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;3&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="177"&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;2009-02-03 14:25:16.820&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="52"&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;25&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="79"&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;97&lt;/span&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="40"&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;7&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="49"&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;3&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="177"&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;2009-02-04 15:50:16.820&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="52"&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;50&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="79"&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;147&lt;/span&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="40"&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;8&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="49"&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;3&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="177"&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;2009-02-05 19:40:16.820&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="52"&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;30&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="79"&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;177&lt;/span&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="40"&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;9&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="49"&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;4&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="177"&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;2009-02-06 15:30:16.820&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="52"&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;20&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="79"&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;197&lt;/span&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="40"&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;10&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="49"&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;4&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="177"&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;2009-02-07 16:20:16.820&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="52"&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;10&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="79"&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;207&lt;/span&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="40"&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;11&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="49"&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;5&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="177"&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;2009-02-05 17:05:16.820&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="52"&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;35&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="79"&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;242&lt;/span&gt;&lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;&lt;span style="font-size: 100%"&gt;&lt;span style="font-family: verdana"&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size: 100%"&gt;&lt;span style="font-family: verdana"&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size: 100%"&gt;&lt;span style="font-family: verdana"&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size: 100%"&gt;&lt;span style="font-family: verdana"&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size: 100%"&gt;&lt;span style="font-family: verdana"&gt;&lt;strong&gt;Case II:&lt;/strong&gt; Running Total on each Group of Records.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size: 100%"&gt;&lt;span style="font-family: verdana"&gt;&lt;span style="font-size: 100%; font-family: verdana"&gt;Now instead of calculating the running total for each record we will calculate the running total for each OrderId. For that small change in our above query will be addition of one AND condition in ON clause, that will be - A.OrderId = B.OrderId. So the final query will be :&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;table cellspacing="0" cellpadding="2" width="492" bgcolor="#f4f4f4" border="1"&gt;&lt;tbody&gt;     &lt;tr height="45"&gt;       &lt;td valign="top" width="490"&gt;&lt;span style="font-size: 78%"&gt;&lt;span style="font-family: verdana"&gt;&lt;span style="color: #0000ff"&gt;SELECT&lt;/span&gt; A.Shipid, A.Orderid, A.Shipdate, A.Quantity, &lt;span style="color: #0000ff"&gt;&lt;span style="color: #ff00ff"&gt;SUM&lt;/span&gt;&lt;/span&gt;(B.Quantity) &lt;span style="color: #0000ff"&gt;AS&lt;/span&gt; RunningTotal &lt;span style="color: #0000ff"&gt;FROM&lt;/span&gt; Sales A INNER &lt;span style="color: #808080"&gt;&lt;span style="color: #0000ff"&gt;JOIN&lt;/span&gt;&lt;/span&gt; Sales B               &lt;br /&gt;&lt;span style="color: #0000ff"&gt;ON&lt;/span&gt; A.ShipId &amp;gt;= B.ShipId               &lt;br /&gt;&lt;span style="color: #0000ff"&gt;AND&lt;/span&gt; A.OrderId = B.OrderId               &lt;br /&gt;&lt;span style="color: #0000ff"&gt;GROUP&lt;/span&gt; &lt;span style="color: #0000ff"&gt;BY&lt;/span&gt; A.Shipid, A.Orderid, A.Shipdate, A.Quantity               &lt;br /&gt;&lt;span style="color: #0000ff"&gt;ORDER BY&lt;/span&gt; OrderId&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt; &lt;span style="font-size: 100%; font-family: verdana"&gt;&lt;/span&gt;  &lt;br /&gt;&lt;span style="font-size: 100%; font-family: verdana"&gt;And the Output :&lt;/span&gt;   &lt;br /&gt;  &lt;table cellspacing="0" cellpadding="2" width="399" border="1"&gt;&lt;tbody&gt;     &lt;tr bgcolor="#c6c3b5"&gt;       &lt;td valign="top" width="40"&gt;&lt;strong&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;ShipId&lt;/span&gt;&lt;/strong&gt;&lt;/td&gt;        &lt;td valign="top" width="49"&gt;&lt;strong&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;OrderId&lt;/span&gt;&lt;/strong&gt;&lt;/td&gt;        &lt;td valign="top" width="177"&gt;&lt;strong&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;ShipDate&lt;/span&gt;&lt;/strong&gt;&lt;/td&gt;        &lt;td valign="top" width="52"&gt;&lt;strong&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;Quantity&lt;/span&gt;&lt;/strong&gt;&lt;/td&gt;        &lt;td valign="top" width="79"&gt;&lt;strong&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;RunningTotal&lt;/span&gt;&lt;/strong&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="40"&gt;&lt;span style="font-size: 78%; color: #ff0000; font-family: verdana"&gt;1&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="49"&gt;&lt;span style="font-size: 78%; color: #ff0000; font-family: verdana"&gt;1&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="177"&gt;&lt;span style="font-size: 78%; color: #ff0000; font-family: verdana"&gt;2009-02-01 12:06:16.820&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="52"&gt;&lt;span style="font-size: 78%; color: #ff0000; font-family: verdana"&gt;10&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="79"&gt;&lt;span style="font-size: 78%; color: #ff0000; font-family: verdana"&gt;10&lt;/span&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="40"&gt;&lt;span style="font-size: 78%; color: #ff0000; font-family: verdana"&gt;2&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="49"&gt;&lt;span style="font-size: 78%; color: #ff0000; font-family: verdana"&gt;1&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="177"&gt;&lt;span style="font-size: 78%; color: #ff0000; font-family: verdana"&gt;2009-02-02 16:16:16.820&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="52"&gt;&lt;span style="font-size: 78%; color: #ff0000; font-family: verdana"&gt;15&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="79"&gt;&lt;span style="font-size: 78%; color: #ff0000; font-family: verdana"&gt;25&lt;/span&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="40"&gt;&lt;span style="font-size: 78%; color: #008000; font-family: verdana"&gt;3&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="49"&gt;&lt;span style="font-size: 78%; color: #008000; font-family: verdana"&gt;2&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="177"&gt;&lt;span style="font-size: 78%; color: #008000; font-family: verdana"&gt;2009-02-01 13:26:16.820&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="52"&gt;&lt;span style="font-size: 78%; color: #008000; font-family: verdana"&gt;20&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="79"&gt;&lt;span style="font-size: 78%; color: #008000; font-family: verdana"&gt;20&lt;/span&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="40"&gt;&lt;span style="font-size: 78%; color: #008000; font-family: verdana"&gt;4&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="49"&gt;&lt;span style="font-size: 78%; color: #008000; font-family: verdana"&gt;2&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="177"&gt;&lt;span style="font-size: 78%; color: #008000; font-family: verdana"&gt;2009-02-03 17:40:16.820&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="52"&gt;&lt;span style="font-size: 78%; color: #008000; font-family: verdana"&gt;12&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="79"&gt;&lt;span style="font-size: 78%; color: #008000; font-family: verdana"&gt;32&lt;/span&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="40"&gt;&lt;span style="font-size: 78%; color: #008000; font-family: verdana"&gt;5&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="49"&gt;&lt;span style="font-size: 78%; color: #008000; font-family: verdana"&gt;2&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="177"&gt;&lt;span style="font-size: 78%; color: #008000; font-family: verdana"&gt;2009-02-04 13:05:16.820&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="52"&gt;&lt;span style="font-size: 78%; color: #008000; font-family: verdana"&gt;15&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="79"&gt;&lt;span style="font-size: 78%; color: #008000; font-family: verdana"&gt;47&lt;/span&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="40"&gt;&lt;span style="font-size: 78%; color: #ff0000; font-family: verdana"&gt;6&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="49"&gt;&lt;span style="font-size: 78%; color: #ff0000; font-family: verdana"&gt;3&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="177"&gt;&lt;span style="font-size: 78%; color: #ff0000; font-family: verdana"&gt;2009-02-03 14:25:16.820&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="52"&gt;&lt;span style="font-size: 78%; color: #ff0000; font-family: verdana"&gt;25&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="79"&gt;&lt;span style="font-size: 78%; color: #ff0000; font-family: verdana"&gt;25&lt;/span&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="40"&gt;&lt;span style="font-size: 78%; color: #ff0000; font-family: verdana"&gt;7&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="49"&gt;&lt;span style="font-size: 78%; color: #ff0000; font-family: verdana"&gt;3&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="177"&gt;&lt;span style="font-size: 78%; color: #ff0000; font-family: verdana"&gt;2009-02-04 15:50:16.820&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="52"&gt;&lt;span style="font-size: 78%; color: #ff0000; font-family: verdana"&gt;50&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="79"&gt;&lt;span style="font-size: 78%; color: #ff0000; font-family: verdana"&gt;75&lt;/span&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="40"&gt;&lt;span style="font-size: 78%; color: #ff0000; font-family: verdana"&gt;8&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="49"&gt;&lt;span style="font-size: 78%; color: #ff0000; font-family: verdana"&gt;3&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="177"&gt;&lt;span style="font-size: 78%; color: #ff0000; font-family: verdana"&gt;2009-02-05 19:40:16.820&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="52"&gt;&lt;span style="font-size: 78%; color: #ff0000; font-family: verdana"&gt;30&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="79"&gt;&lt;span style="font-size: 78%; color: #ff0000; font-family: verdana"&gt;105&lt;/span&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="40"&gt;&lt;span style="font-size: 78%; color: #008000; font-family: verdana"&gt;9&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="49"&gt;&lt;span style="font-size: 78%; color: #008000; font-family: verdana"&gt;4&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="177"&gt;&lt;span style="font-size: 78%; color: #008000; font-family: verdana"&gt;2009-02-06 15:30:16.820&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="52"&gt;&lt;span style="font-size: 78%; color: #008000; font-family: verdana"&gt;20&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="79"&gt;&lt;span style="font-size: 78%; color: #008000; font-family: verdana"&gt;20&lt;/span&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="40"&gt;&lt;span style="font-size: 78%; color: #008000; font-family: verdana"&gt;10&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="49"&gt;&lt;span style="font-size: 78%; color: #008000; font-family: verdana"&gt;4&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="177"&gt;&lt;span style="font-size: 78%; color: #008000; font-family: verdana"&gt;2009-02-07 16:20:16.820&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="52"&gt;&lt;span style="font-size: 78%; color: #008000; font-family: verdana"&gt;10&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="79"&gt;&lt;span style="font-size: 78%; color: #008000; font-family: verdana"&gt;30&lt;/span&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="40"&gt;&lt;span style="font-size: 78%; color: #ff0000; font-family: verdana"&gt;11&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="49"&gt;&lt;span style="font-size: 78%; color: #ff0000; font-family: verdana"&gt;5&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="177"&gt;&lt;span style="font-size: 78%; color: #ff0000; font-family: verdana"&gt;2009-02-05 17:05:16.820&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="52"&gt;&lt;span style="font-size: 78%; color: #ff0000; font-family: verdana"&gt;35&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="79"&gt;&lt;span style="font-size: 78%; color: #ff0000; font-family: verdana"&gt;35&lt;/span&gt;&lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;&lt;span style="font-size: 100%; font-family: verdana"&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size: 100%; font-family: verdana"&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size: 100%; font-family: verdana"&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size: 100%; font-family: verdana"&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size: 100%"&gt;&lt;span style="font-family: verdana"&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size: 100%"&gt;&lt;span style="font-family: verdana"&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size: 100%"&gt;&lt;span style="font-family: verdana"&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size: 100%"&gt;&lt;span style="font-family: verdana"&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size: 100%"&gt;&lt;span style="font-family: verdana"&gt;&lt;strong&gt;Case III:&lt;/strong&gt; Running Total on each Date.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size: 100%; font-family: verdana"&gt;Now we will see how to calculate the Running Total for each day. For that some small modifications will required in our ON clause, observe them carefully and try to understand what I’m trying to do :&lt;/span&gt;&lt;/p&gt;  &lt;table cellspacing="0" cellpadding="2" width="492" bgcolor="#f4f4f4" border="1"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign="top" width="490"&gt;         &lt;p&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;&lt;span style="color: #0000ff"&gt;SELECT&lt;/span&gt; A.Shipid, A.Orderid, A.Shipdate, A.Quantity, &lt;span style="color: #ff00ff"&gt;SUM&lt;/span&gt;(B.Quantity) &lt;span style="color: #0000ff"&gt;AS&lt;/span&gt; RunningTotal               &lt;br /&gt;&lt;span style="color: #0000ff"&gt;FROM&lt;/span&gt; Sales A INNER &lt;span style="color: #808080"&gt;JOIN&lt;/span&gt; Sales B               &lt;br /&gt;&lt;span style="color: #0000ff"&gt;ON&lt;/span&gt; A.shipDate &amp;gt;= B.Shipdate               &lt;br /&gt;&lt;span style="color: #808080"&gt;AND&lt;/span&gt; &lt;span style="color: #ff00ff"&gt;DateAdd&lt;/span&gt;(dd, &lt;span style="color: #ff00ff"&gt;DateDiff&lt;/span&gt; (dd, 0, A.Shipdate), 0) &lt;/span&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;= &lt;span style="color: #ff00ff"&gt;DateAdd&lt;/span&gt;(dd, &lt;span style="color: #ff00ff"&gt;DateDiff&lt;/span&gt; (dd, 0, B.Shipdate) ,0)               &lt;br /&gt;&lt;span style="color: #0000ff"&gt;GROUP BY&lt;/span&gt; A.Shipid, A.Orderid, A.Shipdate, A.Quantity               &lt;br /&gt;&lt;span style="color: #0000ff"&gt;ORDER BY&lt;/span&gt; A.ShipDate&lt;/span&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;&lt;span style="font-size: 100%; font-family: verdana"&gt;And the output :&lt;/span&gt;&lt;/p&gt;  &lt;table cellspacing="0" cellpadding="2" width="422" border="1"&gt;&lt;tbody&gt;     &lt;tr bgcolor="#c6c3b5"&gt;       &lt;td valign="top" width="40"&gt;&lt;strong&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;ShipId&lt;/span&gt;&lt;/strong&gt;&lt;/td&gt;        &lt;td valign="top" width="49"&gt;&lt;strong&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;OrderId&lt;/span&gt;&lt;/strong&gt;&lt;/td&gt;        &lt;td valign="top" width="201"&gt;&lt;strong&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;ShipDate&lt;/span&gt;&lt;/strong&gt;&lt;/td&gt;        &lt;td valign="top" width="54"&gt;&lt;strong&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;Quantity&lt;/span&gt;&lt;/strong&gt;&lt;/td&gt;        &lt;td valign="top" width="76"&gt;&lt;strong&gt;&lt;span style="font-size: 78%; font-family: verdana"&gt;RunningTotal&lt;/span&gt;&lt;/strong&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="40"&gt;&lt;span style="font-size: 78%; color: #008000; font-family: verdana"&gt;1&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="49"&gt;&lt;span style="font-size: 78%; color: #008000; font-family: verdana"&gt;1&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="201"&gt;&lt;span style="color: #008000; font-family: verdana"&gt;2009-02-01 12:06:16.820&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="54"&gt;&lt;span style="font-size: 78%; color: #008000; font-family: verdana"&gt;10&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="76"&gt;&lt;span style="font-size: 78%; color: #008000; font-family: verdana"&gt;10&lt;/span&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="40"&gt;&lt;span style="font-size: 78%; color: #008000; font-family: verdana"&gt;3&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="49"&gt;&lt;span style="font-size: 78%; color: #008000; font-family: verdana"&gt;2&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="201"&gt;&lt;span style="color: #008000; font-family: verdana"&gt;2009-02-01 13:26:16.820&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="54"&gt;&lt;span style="font-size: 78%; color: #008000; font-family: verdana"&gt;20&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="76"&gt;&lt;span style="font-size: 78%; color: #008000; font-family: verdana"&gt;30&lt;/span&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="40"&gt;&lt;span style="font-size: 78%; color: #ff0000; font-family: verdana"&gt;2&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="49"&gt;&lt;span style="font-size: 78%; color: #ff0000; font-family: verdana"&gt;1&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="201"&gt;&lt;span style="color: #ff0000; font-family: verdana"&gt;2009-02-02 16:16:16.820&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="54"&gt;&lt;span style="font-size: 78%; color: #ff0000; font-family: verdana"&gt;15&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="76"&gt;&lt;span style="font-size: 78%; color: #ff0000; font-family: verdana"&gt;15&lt;/span&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="40"&gt;&lt;span style="font-size: 78%; color: #008000; font-family: verdana"&gt;6&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="49"&gt;&lt;span style="font-size: 78%; color: #008000; font-family: verdana"&gt;3&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="201"&gt;&lt;span style="color: #008000; font-family: verdana"&gt;2009-02-03 14:25:16.820&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="54"&gt;&lt;span style="font-size: 78%; color: #008000; font-family: verdana"&gt;25&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="76"&gt;&lt;span style="font-size: 78%; color: #008000; font-family: verdana"&gt;25&lt;/span&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="40"&gt;&lt;span style="font-size: 78%; color: #008000; font-family: verdana"&gt;4&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="49"&gt;&lt;span style="font-size: 78%; color: #008000; font-family: verdana"&gt;2&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="201"&gt;&lt;span style="color: #008000; font-family: verdana"&gt;2009-02-03 17:40:16.820&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="54"&gt;&lt;span style="font-size: 78%; color: #008000; font-family: verdana"&gt;12&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="76"&gt;&lt;span style="font-size: 78%; color: #008000; font-family: verdana"&gt;37&lt;/span&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="40"&gt;&lt;span style="font-size: 78%; color: #ff0000; font-family: verdana"&gt;5&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="49"&gt;&lt;span style="font-size: 78%; color: #ff0000; font-family: verdana"&gt;2&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="201"&gt;&lt;span style="color: #ff0000; font-family: verdana"&gt;2009-02-04 13:05:16.820&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="54"&gt;&lt;span style="font-size: 78%; color: #ff0000; font-family: verdana"&gt;15&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="76"&gt;&lt;span style="font-size: 78%; color: #ff0000; font-family: verdana"&gt;15&lt;/span&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="40"&gt;&lt;span style="font-size: 78%; color: #ff0000; font-family: verdana"&gt;7&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="49"&gt;&lt;span style="font-size: 78%; color: #ff0000; font-family: verdana"&gt;3&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="201"&gt;&lt;span style="color: #ff0000; font-family: verdana"&gt;2009-02-04 15:50:16.820&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="54"&gt;&lt;span style="font-size: 78%; color: #ff0000; font-family: verdana"&gt;50&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="76"&gt;&lt;span style="font-size: 78%; color: #ff0000; font-family: verdana"&gt;65&lt;/span&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="40"&gt;&lt;span style="font-size: 78%; color: #008000; font-family: verdana"&gt;11&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="49"&gt;&lt;span style="font-size: 78%; color: #008000; font-family: verdana"&gt;5&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="201"&gt;&lt;span style="color: #008000; font-family: verdana"&gt;2009-02-05 17:05:16.820&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="54"&gt;&lt;span style="font-size: 78%; color: #008000; font-family: verdana"&gt;35&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="76"&gt;&lt;span style="font-size: 78%; color: #008000; font-family: verdana"&gt;35&lt;/span&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="40"&gt;&lt;span style="font-size: 78%; color: #008000; font-family: verdana"&gt;8&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="49"&gt;&lt;span style="font-size: 78%; color: #008000; font-family: verdana"&gt;3&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="201"&gt;&lt;span style="color: #008000; font-family: verdana"&gt;2009-02-05 19:40:16.820&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="54"&gt;&lt;span style="font-size: 78%; color: #008000; font-family: verdana"&gt;30&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="76"&gt;&lt;span style="font-size: 78%; color: #008000; font-family: verdana"&gt;65&lt;/span&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="40"&gt;&lt;span style="font-size: 78%; color: #ff0000; font-family: verdana"&gt;9&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="49"&gt;&lt;span style="font-size: 78%; color: #ff0000; font-family: verdana"&gt;4&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="201"&gt;&lt;span style="color: #ff0000; font-family: verdana"&gt;2009-02-06 15:30:16.820&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="54"&gt;&lt;span style="font-size: 78%; color: #ff0000; font-family: verdana"&gt;20&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="76"&gt;&lt;span style="font-size: 78%; color: #ff0000; font-family: verdana"&gt;20&lt;/span&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="40"&gt;&lt;span style="font-size: 78%; color: #008000; font-family: verdana"&gt;10&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="49"&gt;&lt;span style="font-size: 78%; color: #008000; font-family: verdana"&gt;4&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="201"&gt;&lt;span style="color: #008000; font-family: verdana"&gt;2009-02-07 16:20:16.820&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="54"&gt;&lt;span style="font-size: 78%; color: #008000; font-family: verdana"&gt;10&lt;/span&gt;&lt;/td&gt;        &lt;td valign="top" width="76"&gt;&lt;span style="font-size: 78%; color: #008000; font-family: verdana"&gt;10&lt;/span&gt;&lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;&lt;span style="font-family: verdana"&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-family: verdana"&gt;Hopefully these examples will help you understand different methods that can be used to calculate running totals.&lt;/span&gt; &lt;/p&gt;  &lt;p&gt;&lt;span style="font-size: 130%; font-family: trebuchet ms"&gt;&lt;strong&gt;&lt;em&gt;- Mangal Pardeshi&lt;/em&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8585649008635531444-938222288213412?l=mangalpardeshi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mangalpardeshi.blogspot.com/feeds/938222288213412/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://mangalpardeshi.blogspot.com/2009/02/running-totals-in-sql.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8585649008635531444/posts/default/938222288213412'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8585649008635531444/posts/default/938222288213412'/><link rel='alternate' type='text/html' href='http://mangalpardeshi.blogspot.com/2009/02/running-totals-in-sql.html' title='Calculating Running Totals in SQL'/><author><name>Mangal Pardeshi</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_weIRgO4yuTo/SzSmWMjAwJI/AAAAAAAAAKs/DgpUWlN5KZY/S220/y1m_Ev9g6OBzqJR8Z6lhdhzgWZ-bl8WwBuhHkrErOHngc14s42YU23gTajpglsbRjABGlnSHh-wUfbGievoo7soxuBY9uSp1K1I.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8585649008635531444.post-5701997419898817374</id><published>2009-01-27T21:13:00.003+05:30</published><updated>2009-03-10T15:30:30.141+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='FAQ'/><category scheme='http://www.blogger.com/atom/ns#' term='T-SQL'/><title type='text'>RPAD and LPAD Functions in Sql Server</title><content type='html'>&lt;span style="font-family:verdana;"&gt;In &lt;a href="http://en.wikipedia.org/wiki/Microsoft_SQL_Server"&gt;&lt;span style="color:#3333ff;"&gt;Sql Server&lt;/span&gt;&lt;/a&gt; we don’t have&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;a href="http://download.oracle.com/docs/cd/B19306_01/server.102/b14200/functions140.htm"&gt;&lt;span style="color:#3333ff;"&gt;RPAD&lt;/span&gt;&lt;/a&gt; and &lt;a href="http://download.oracle.com/docs/cd/B28359_01/olap.111/b28126/dml_functions_2017.htm"&gt;&lt;span style="color:#3333ff;"&gt;LPAD&lt;/span&gt;&lt;/a&gt; functions as they are in &lt;a href="http://www.oracle.com/database/index.html"&gt;&lt;span style="color:#3333ff;"&gt;Oracle&lt;/span&gt;&lt;/a&gt;. But it is not that difficult to implement the same thing in Sql Server. With the help of &lt;a href="http://msdn.microsoft.com/en-us/library/ms177532.aspx"&gt;&lt;span style="color:#3333ff;"&gt;RIGHT&lt;/span&gt;&lt;/a&gt; and &lt;a href="http://msdn.microsoft.com/en-us/library/ms177601.aspx"&gt;&lt;span style="color:#3333ff;"&gt;LEFT&lt;/span&gt;&lt;/a&gt; functions we can achieve that easily. Let’s see how…&lt;br /&gt;&lt;br /&gt;First create this table:&lt;br /&gt;&lt;span style="color:#3333ff;"&gt;CREATE TABLE&lt;/span&gt; Temp(Id &lt;span style="color:#3333ff;"&gt;INT&lt;/span&gt;) &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;GO&lt;br /&gt;&lt;br /&gt;Now insert the table Temp with some sample data:&lt;br /&gt;&lt;span style="color:#3333ff;"&gt;INSERT INTO&lt;/span&gt; Temp &lt;span style="color:#3333ff;"&gt;SELECT&lt;/span&gt;&lt;br /&gt;1&lt;span style="color:#3333ff;"&gt; UNION SELECT&lt;br /&gt;&lt;/span&gt;2&lt;span style="color:#3333ff;"&gt; UNION SELECT&lt;/span&gt;&lt;br /&gt;12&lt;span style="color:#3333ff;"&gt; UNION SELECT&lt;/span&gt;&lt;br /&gt;123&lt;span style="color:#3333ff;"&gt; UNION SELECT&lt;/span&gt;&lt;br /&gt;1234&lt;span style="color:#3333ff;"&gt; UNION SELECT&lt;/span&gt;&lt;br /&gt;12345&lt;br /&gt;GO&lt;br /&gt;&lt;br /&gt;And here is our RPAD and LPAD query&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#3333ff;"&gt;SELECT&lt;/span&gt; ID&lt;br /&gt;,&lt;span style="color:#333333;"&gt;RIGHT&lt;/span&gt;( &lt;span style="color:#ff0000;"&gt;'00000'&lt;/span&gt; + &lt;span style="color:#cc33cc;"&gt;CONVERT&lt;/span&gt;(&lt;span style="color:#3333ff;"&gt;VARCHAR&lt;/span&gt;(5), Id), 5) &lt;span style="color:#3333ff;"&gt;as&lt;/span&gt; LPAD_Example&lt;br /&gt;,&lt;span style="color:#333333;"&gt;LEFT&lt;/span&gt;( &lt;span style="color:#cc33cc;"&gt;CONVERT &lt;/span&gt;(&lt;span style="color:#3333ff;"&gt;VARCHAR&lt;/span&gt;(5), Id)+&lt;span style="color:#ff0000;"&gt;'00000'&lt;/span&gt; , 5) &lt;span style="color:#3333ff;"&gt;as&lt;/span&gt; RAPD_Example&lt;br /&gt;&lt;span style="color:#3333ff;"&gt;FROM&lt;/span&gt; Temp&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;&lt;/span&gt;&lt;span style="font-family:verdana;"&gt;&lt;span style="color:#009900;"&gt;--END--&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;&lt;span style="color:#009900;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:trebuchet ms;color:#cc0000;"&gt;&lt;strong&gt;&lt;em&gt;- Mangal Pardeshi&lt;/em&gt;&lt;/strong&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8585649008635531444-5701997419898817374?l=mangalpardeshi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mangalpardeshi.blogspot.com/feeds/5701997419898817374/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://mangalpardeshi.blogspot.com/2009/01/rpad-and-lpad-functions-in-sql-server.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8585649008635531444/posts/default/5701997419898817374'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8585649008635531444/posts/default/5701997419898817374'/><link rel='alternate' type='text/html' href='http://mangalpardeshi.blogspot.com/2009/01/rpad-and-lpad-functions-in-sql-server.html' title='RPAD and LPAD Functions in Sql Server'/><author><name>Mangal Pardeshi</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_weIRgO4yuTo/SzSmWMjAwJI/AAAAAAAAAKs/DgpUWlN5KZY/S220/y1m_Ev9g6OBzqJR8Z6lhdhzgWZ-bl8WwBuhHkrErOHngc14s42YU23gTajpglsbRjABGlnSHh-wUfbGievoo7soxuBY9uSp1K1I.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8585649008635531444.post-3626577242794822537</id><published>2009-01-09T15:27:00.001+05:30</published><updated>2009-01-29T16:06:33.942+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Linked Server'/><title type='text'>Linked Server Error : Msg 7399, Level 16, State 1</title><content type='html'>&lt;span style="font-family:verdana;"&gt;In this post I'll show you a simple solution to a very common error you get while running a query against a &lt;a href="http://msdn.microsoft.com/en-us/library/ms188279.aspx"&gt;&lt;span style="color:#3333ff;"&gt;linked Server&lt;/span&gt;&lt;/a&gt;.&lt;br /&gt;You create a Linked Server with Flat Files, Excel or &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;DBF&lt;/span&gt; in &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;SQL&lt;/span&gt; Server using Microsoft.Jet.OLEDB.4.0 and when you try run a query against it you get the error&lt;br /&gt;&lt;/span&gt;&lt;span style="color:#006600;"&gt;--Error--&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;&lt;em&gt;OLE DB provider "Microsoft.Jet.OLEDB.4.0" for linked server " " returned message "Cannot start your application. The &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;workgroup&lt;/span&gt; information file is missing or opened exclusively by another user.".&lt;br /&gt;&lt;/em&gt;&lt;/span&gt;&lt;span style="color:#cc0000;"&gt;&lt;span style="font-family:verdana;"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_4"&gt;Msg&lt;/span&gt; 7399, Level 16, State 1, Line 2&lt;br /&gt;The OLE DB provider "Microsoft.Jet.OLEDB.4.0" for linked server "" reported an error. Authentication failed.&lt;br /&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_5"&gt;Msg&lt;/span&gt; 7303, Level 16, State 1, Line 2&lt;br /&gt;Cannot initialize the data source object of OLE DB provider "Microsoft.Jet.OLEDB.4.0" for linked server "".&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#cc0000;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;Well &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_6"&gt;whatever&lt;/span&gt; study I have done on this particular error, I have observed that you will get this error only when try to query from a remote machine. And this is something to do with the Security Context of the Linked Server.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;Solution to this problem is very simple. Simply follow steps -&lt;br /&gt;1.Open the &lt;strong&gt;Management Studio&lt;/strong&gt; and navigate to &lt;strong&gt;Server Objects&lt;/strong&gt; and then to &lt;strong&gt;Linked Server&lt;/strong&gt;.&lt;br /&gt;2.Right click on your Linked Server Name, and click on &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_7"&gt;Properties&lt;/span&gt;.&lt;br /&gt;3.Go to Security Page. Now for solving above problem you have 2 option, you can try any of the below 2 option.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;A] Select the option “&lt;strong&gt;Be made without using a security context&lt;/strong&gt;” by clicking on radio button.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;OR&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;B] Select the last option “&lt;strong&gt;Be made using this security context&lt;/strong&gt; ”.&lt;br /&gt;As soon as click on the radio button before “Be made using this security context ”, the“&lt;strong&gt;Remote &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_8"&gt;login&lt;/span&gt;&lt;/strong&gt;” and “&lt;strong&gt;With password&lt;/strong&gt;” text boxes become active to be filled in.&lt;br /&gt;Now in the “&lt;strong&gt;Remote &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_9"&gt;login&lt;/span&gt;&lt;/strong&gt;”, enter &lt;strong&gt;Admin&lt;/strong&gt; as the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_10"&gt;login&lt;/span&gt; user. Leave the password text box as blank.&lt;br /&gt;Now just click on OK, and now can run the query against your linked server without any error.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:trebuchet ms;color:#cc0000;"&gt;&lt;strong&gt;&lt;em&gt;- &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_11"&gt;Mangal&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_12"&gt;Pardeshi&lt;/span&gt;.&lt;/em&gt;&lt;/strong&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8585649008635531444-3626577242794822537?l=mangalpardeshi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mangalpardeshi.blogspot.com/feeds/3626577242794822537/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://mangalpardeshi.blogspot.com/2009/01/linked-server-error-msg-7399-level-16.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8585649008635531444/posts/default/3626577242794822537'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8585649008635531444/posts/default/3626577242794822537'/><link rel='alternate' type='text/html' href='http://mangalpardeshi.blogspot.com/2009/01/linked-server-error-msg-7399-level-16.html' title='Linked Server Error : Msg 7399, Level 16, State 1'/><author><name>Mangal Pardeshi</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_weIRgO4yuTo/SzSmWMjAwJI/AAAAAAAAAKs/DgpUWlN5KZY/S220/y1m_Ev9g6OBzqJR8Z6lhdhzgWZ-bl8WwBuhHkrErOHngc14s42YU23gTajpglsbRjABGlnSHh-wUfbGievoo7soxuBY9uSp1K1I.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8585649008635531444.post-5477321351862740710</id><published>2009-01-08T20:45:00.000+05:30</published><updated>2009-05-15T17:29:48.027+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='FAQ'/><category scheme='http://www.blogger.com/atom/ns#' term='T-SQL'/><title type='text'>How to delete the Duplicate Rows from SQL Server table</title><content type='html'>&lt;p&gt;&lt;span style="font-family: verdana"&gt;Lets see how to delete the duplicate Rows from SQL Server table. &lt;/span&gt;    &lt;br /&gt;&lt;span style="font-family: verdana"&gt;&lt;/span&gt;    &lt;br /&gt;&lt;span style="font-family: verdana"&gt;Sample Table:&lt;/span&gt;&lt;/p&gt;  &lt;table bordercolor="#000000" height="100" bordercolordark="#c0c0c0" width="190" bgcolor="#ffffff" bordercolorlight="#c0c0c0" border="1"&gt;&lt;tbody&gt;     &lt;tr bgcolor="#c6c3b5"&gt;       &lt;td width="41"&gt;&lt;strong&gt;&lt;font face="Verdana"&gt;ID&lt;/font&gt;&lt;/strong&gt;&lt;/td&gt;        &lt;td width="75"&gt;&lt;strong&gt;&lt;font face="Verdana"&gt;NAMES&lt;/font&gt;&lt;/strong&gt;&lt;/td&gt;        &lt;td width="72"&gt;&lt;strong&gt;&lt;font face="Verdana"&gt;CODE&lt;/font&gt;&lt;/strong&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td width="41"&gt;&lt;font face="Verdana"&gt;1&lt;/font&gt;&lt;/td&gt;        &lt;td width="75"&gt;&lt;font face="Verdana"&gt;Mangal&lt;/font&gt;&lt;/td&gt;        &lt;td width="72"&gt;&lt;font face="Verdana"&gt;101&lt;/font&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td width="41"&gt;&lt;font face="Verdana"&gt;1&lt;/font&gt;&lt;/td&gt;        &lt;td width="75"&gt;&lt;font face="Verdana"&gt;Mangal&lt;/font&gt;&lt;/td&gt;        &lt;td width="72"&gt;&lt;font face="Verdana"&gt;101&lt;/font&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td width="41"&gt;&lt;font face="Verdana"&gt;1&lt;/font&gt;&lt;/td&gt;        &lt;td width="75"&gt;&lt;font face="Verdana"&gt;Mangal&lt;/font&gt;&lt;/td&gt;        &lt;td width="72"&gt;&lt;font face="Verdana"&gt;101&lt;/font&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td width="41"&gt;&lt;font face="Verdana"&gt;2&lt;/font&gt;&lt;/td&gt;        &lt;td width="75"&gt;&lt;font face="Verdana"&gt;Ricky&lt;/font&gt;&lt;/td&gt;        &lt;td width="72"&gt;&lt;font face="Verdana"&gt;102&lt;/font&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td width="41"&gt;&lt;font face="Verdana"&gt;3&lt;/font&gt;&lt;/td&gt;        &lt;td width="75"&gt;&lt;font face="Verdana"&gt;Brian&lt;/font&gt;&lt;/td&gt;        &lt;td width="72"&gt;&lt;font face="Verdana"&gt;103&lt;/font&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td width="41"&gt;&lt;font face="Verdana"&gt;4&lt;/font&gt;&lt;/td&gt;        &lt;td width="75"&gt;&lt;font face="Verdana"&gt;shiv&lt;/font&gt;&lt;/td&gt;        &lt;td width="72"&gt;&lt;font face="Verdana"&gt;104&lt;/font&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td width="41"&gt;&lt;font face="Verdana"&gt;4&lt;/font&gt;&lt;/td&gt;        &lt;td width="75"&gt;&lt;font face="Verdana"&gt;Shiv&lt;/font&gt;&lt;/td&gt;        &lt;td width="72"&gt;&lt;font face="Verdana"&gt;104&lt;/font&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td width="41"&gt;&lt;font face="Verdana"&gt;5&lt;/font&gt;&lt;/td&gt;        &lt;td width="75"&gt;&lt;font face="Verdana"&gt;Kunal&lt;/font&gt;&lt;/td&gt;        &lt;td width="72"&gt;&lt;font face="Verdana"&gt;105&lt;/font&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td width="41"&gt;&lt;font face="Verdana"&gt;5&lt;/font&gt;&lt;/td&gt;        &lt;td width="75"&gt;&lt;font face="Verdana"&gt;Kunal&lt;/font&gt;&lt;/td&gt;        &lt;td width="72"&gt;&lt;font face="Verdana"&gt;105&lt;/font&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td width="41"&gt;&lt;font face="Verdana"&gt;6&lt;/font&gt;&lt;/td&gt;        &lt;td width="75"&gt;&lt;font face="Verdana"&gt;Kate&lt;/font&gt;&lt;/td&gt;        &lt;td width="72"&gt;&lt;font face="Verdana"&gt;106&lt;/font&gt;&lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt; &lt;span style="font-family: verdana"&gt;&lt;/span&gt;&lt;font face="Verdana"&gt;&lt;/font&gt;  &lt;p&gt;&lt;span style="font-family: verdana"&gt;As you can see in above table, record with Id 1 has come thrice, and ID 4 and 7 has come twice.&lt;/span&gt;     &lt;br /&gt;    &lt;br /&gt;&lt;span style="font-family: verdana"&gt;Desired Output: after removing duplicates -&lt;/span&gt;&lt;/p&gt;  &lt;table bordercolor="#000000" bordercolordark="#c0c0c0" width="183" bgcolor="#ffffff" bordercolorlight="#c0c0c0" border="1"&gt;&lt;tbody&gt;     &lt;tr bgcolor="#c6c3b5"&gt;       &lt;td width="33"&gt;&lt;strong&gt;&lt;font face="Verdana"&gt;ID&lt;/font&gt;&lt;/strong&gt;&lt;/td&gt;        &lt;td width="83"&gt;&lt;strong&gt;&lt;font face="Verdana"&gt;NAMES&lt;/font&gt;&lt;/strong&gt;&lt;/td&gt;        &lt;td width="65"&gt;&lt;strong&gt;&lt;font face="Verdana"&gt;CODE&lt;/font&gt;&lt;/strong&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td width="33"&gt;&lt;font face="Verdana"&gt;1&lt;/font&gt;&lt;/td&gt;        &lt;td width="83"&gt;&lt;font face="Verdana"&gt;Mangal&lt;/font&gt;&lt;/td&gt;        &lt;td width="65"&gt;&lt;font face="Verdana"&gt;101&lt;/font&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td width="33"&gt;&lt;font face="Verdana"&gt;2&lt;/font&gt;&lt;/td&gt;        &lt;td width="83"&gt;&lt;font face="Verdana"&gt;Ricky&lt;/font&gt;&lt;/td&gt;        &lt;td width="65"&gt;&lt;font face="Verdana"&gt;102&lt;/font&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td width="33"&gt;&lt;font face="Verdana"&gt;3&lt;/font&gt;&lt;/td&gt;        &lt;td width="83"&gt;&lt;font face="Verdana"&gt;Brian&lt;/font&gt;&lt;/td&gt;        &lt;td width="65"&gt;&lt;font face="Verdana"&gt;103&lt;/font&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td width="33"&gt;&lt;font face="Verdana"&gt;4&lt;/font&gt;&lt;/td&gt;        &lt;td width="83"&gt;&lt;font face="Verdana"&gt;Shiv&lt;/font&gt;&lt;/td&gt;        &lt;td width="65"&gt;&lt;font face="Verdana"&gt;104&lt;/font&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td width="33"&gt;&lt;font face="Verdana"&gt;5&lt;/font&gt;&lt;/td&gt;        &lt;td width="83"&gt;&lt;font face="Verdana"&gt;Kunal&lt;/font&gt;&lt;/td&gt;        &lt;td width="65"&gt;&lt;font face="Verdana"&gt;105&lt;/font&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td width="33"&gt;&lt;font face="Verdana"&gt;6&lt;/font&gt;&lt;/td&gt;        &lt;td width="83"&gt;&lt;font face="Verdana"&gt;Kate&lt;/font&gt;&lt;/td&gt;        &lt;td width="65"&gt;&lt;font face="Verdana"&gt;106&lt;/font&gt;&lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;&lt;span style="font-family: verdana"&gt;Create And Load Sample Data -&lt;/span&gt;&lt;/p&gt;  &lt;table bordercolor="#000000" bordercolordark="#808080" width="534" bgcolor="#f4f4f4" bordercolorlight="#808080" border="0"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td width="532"&gt;         &lt;p&gt;&lt;font face="Verdana"&gt;&lt;font color="#008040"&gt;-- Create Sample table                &lt;br /&gt;&lt;/font&gt;&lt;font color="#0000ff"&gt;CREATE TABLE&lt;/font&gt; Temp               &lt;br /&gt;(               &lt;br /&gt;Id &lt;font color="#0000ff"&gt;INT&lt;/font&gt;,               &lt;br /&gt;Names &lt;font color="#0000ff"&gt;VARCHAR&lt;/font&gt;(100),               &lt;br /&gt;Code &lt;font color="#0000ff"&gt;INT&lt;/font&gt;               &lt;br /&gt;)               &lt;br /&gt;GO               &lt;br /&gt;&lt;font color="#008040"&gt;-- Load sample data&lt;/font&gt;               &lt;br /&gt;&lt;font color="#0000ff"&gt;INSERT INTO&lt;/font&gt; Temp SELECT               &lt;br /&gt;1, &lt;font color="#ff0000"&gt;'Mangal'&lt;/font&gt;, 123 &lt;font color="#0000ff"&gt;UNION ALL SELECT&lt;/font&gt;               &lt;br /&gt;1,&lt;font color="#ff0000"&gt; 'Mangal'&lt;/font&gt;, 123 &lt;font color="#0000ff"&gt;UNION ALL SELECT&lt;/font&gt;               &lt;br /&gt;1,&lt;font color="#ff0000"&gt; 'Mangal'&lt;/font&gt;, 123 &lt;font color="#0000ff"&gt;UNION ALL SELECT&lt;/font&gt;               &lt;br /&gt;2, &lt;font color="#ff0000"&gt;'Ricky'&lt;/font&gt;, 134&amp;#160; &lt;font color="#0000ff"&gt;UNION ALL SELECT&lt;/font&gt;               &lt;br /&gt;3, &lt;font color="#ff0000"&gt;'Brian'&lt;/font&gt;, 435 &lt;font color="#0000ff"&gt;UNION ALL SELECT&lt;/font&gt;               &lt;br /&gt;4, &lt;font color="#ff0000"&gt;'Shiv'&lt;/font&gt;, 223&amp;#160;&amp;#160; &lt;font color="#0000ff"&gt;UNION ALL SELECT&lt;/font&gt;               &lt;br /&gt;4, &lt;font color="#ff0000"&gt;'Shiv'&lt;/font&gt;, 223&amp;#160;&amp;#160; &lt;font color="#0000ff"&gt;UNION ALL SELECT&lt;/font&gt;               &lt;br /&gt;5, &lt;font color="#ff0000"&gt;'Kunal'&lt;/font&gt;, 654&amp;#160; &lt;font color="#0000ff"&gt;UNION ALL SELECT                &lt;br /&gt;&lt;/font&gt;5,&lt;font color="#ff0000"&gt; 'Kunal'&lt;/font&gt;, 654&amp;#160; &lt;font color="#0000ff"&gt;UNION ALL SELECT&lt;/font&gt;               &lt;br /&gt;6, &lt;font color="#ff0000"&gt;'Kate'&lt;/font&gt;, 611               &lt;br /&gt;GO&lt;/font&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;&lt;span style="font-family: verdana"&gt;Now first lets see how to find duplicate rows. With SQL Server 2005/2008 and Row_Number function, it has become very easy. &lt;/span&gt;    &lt;br /&gt;    &lt;br /&gt;&lt;span style="font-family: verdana"&gt;&lt;/span&gt;    &lt;br /&gt;&lt;span style="font-family: verdana"&gt;&lt;strong&gt;To Find Duplicate rows :&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;  &lt;table bordercolor="#000000" height="10" bordercolordark="#808080" width="530" bgcolor="#f4f4f4" bordercolorlight="#808080" border="0"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td width="528"&gt;&lt;span style="color: #3333ff"&gt;WITH&lt;/span&gt; Cte &lt;span style="color: #3333ff"&gt;AS&lt;/span&gt;           &lt;br /&gt;(           &lt;br /&gt;&lt;span style="color: #3333ff"&gt;SELECT&lt;/span&gt; Id, Names, Code, &lt;span style="color: #993399"&gt;ROW_NUMBER&lt;/span&gt;() &lt;span style="color: #3333ff"&gt;Over&lt;/span&gt; (PARTITION BY Id &lt;span style="color: #3333ff"&gt;ORDER BY&lt;/span&gt; ID) &lt;span style="color: #3333ff"&gt;as&lt;/span&gt; Seq           &lt;br /&gt;&lt;span style="color: #3333ff"&gt;FROM&lt;/span&gt; TEMP           &lt;br /&gt;)           &lt;br /&gt;&lt;span style="color: #3333ff"&gt;SELECT&lt;/span&gt; &lt;span style="color: #3333ff"&gt;DISTINCT&lt;/span&gt; ID, Names, Code           &lt;br /&gt;&lt;span style="color: #3333ff"&gt;FROM&lt;/span&gt; Cte           &lt;br /&gt;&lt;span style="color: #3333ff"&gt;WHERE&lt;/span&gt; Seq &amp;gt; 1           &lt;br /&gt;&lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;&lt;span style="font-family: verdana"&gt;&lt;strong&gt;To Delete the Duplicate Rows&lt;/strong&gt; : &lt;/span&gt;&lt;/p&gt;  &lt;table bordercolor="#000000" height="10" bordercolordark="#808080" width="530" bgcolor="#f4f4f4" bordercolorlight="#808080" border="0"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td width="528"&gt;&lt;span style="font-family: verdana"&gt;&lt;span style="color: #3333ff"&gt;WITH&lt;/span&gt; Cte &lt;span style="color: #3333ff"&gt;AS&lt;/span&gt;             &lt;br /&gt;(             &lt;br /&gt;&lt;span style="color: #3333ff"&gt;SELECT&lt;/span&gt; Id, Names, Code, &lt;span style="color: #993399"&gt;ROW_NUMBER&lt;/span&gt;() &lt;span style="color: #3333ff"&gt;Over&lt;/span&gt; (&lt;span style="color: #3333ff"&gt;PARTITION BY&lt;/span&gt; Id &lt;span style="color: #3333ff"&gt;ORDER BY&lt;/span&gt; ID) &lt;span style="color: #3333ff"&gt;as&lt;/span&gt; Seq             &lt;br /&gt;&lt;span style="color: #3333ff"&gt;FROM&lt;/span&gt; TEMP             &lt;br /&gt;)             &lt;br /&gt;&lt;span style="color: #3333ff"&gt;DELETE FROM&lt;/span&gt; cte             &lt;br /&gt;&lt;span style="color: #3333ff"&gt;WHERE&lt;/span&gt; Seq &amp;gt; 1&lt;/span&gt; &lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;   &lt;br /&gt;    &lt;br /&gt;&lt;span style="color: #cc33cc; font-family: verdana"&gt;&lt;span style="color: #cc0000; font-family: trebuchet ms"&gt;&lt;em&gt;&lt;strong&gt;- Mangal Pardeshi&lt;/strong&gt;&lt;/em&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8585649008635531444-5477321351862740710?l=mangalpardeshi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mangalpardeshi.blogspot.com/feeds/5477321351862740710/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://mangalpardeshi.blogspot.com/2009/01/how-to-delete-duplicate-rows-in-sql.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8585649008635531444/posts/default/5477321351862740710'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8585649008635531444/posts/default/5477321351862740710'/><link rel='alternate' type='text/html' href='http://mangalpardeshi.blogspot.com/2009/01/how-to-delete-duplicate-rows-in-sql.html' title='How to delete the Duplicate Rows from SQL Server table'/><author><name>Mangal Pardeshi</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_weIRgO4yuTo/SzSmWMjAwJI/AAAAAAAAAKs/DgpUWlN5KZY/S220/y1m_Ev9g6OBzqJR8Z6lhdhzgWZ-bl8WwBuhHkrErOHngc14s42YU23gTajpglsbRjABGlnSHh-wUfbGievoo7soxuBY9uSp1K1I.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8585649008635531444.post-6394944169785562090</id><published>2008-12-27T23:01:00.000+05:30</published><updated>2009-03-10T15:30:30.142+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='FAQ'/><category scheme='http://www.blogger.com/atom/ns#' term='T-SQL'/><title type='text'>Removing Time from DateTime column in Sql Server 2005</title><content type='html'>&lt;p&gt;&lt;span style="font-family:verdana;"&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:verdana;"&gt;Well this is most common question I answered many times on Sql Server MSDN forums. &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:verdana;"&gt;How to remove Time from Datetime column in Sql Server 2005 and 2000? &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:verdana;"&gt;Actually this is one of the biggest drawbacks in Sql server till the Sql Server 2008 happened; that we don’t have only Date datatype. In Sql server 2000 and 2005 we have Datetime datatype, which always come with time part attached with Date. &lt;/span&gt;&lt;span style="font-family:verdana;"&gt;Thankfully in Sql Server 2008 we have simple Date datatype. &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:verdana;"&gt;Let it be, we’ll see how to remove Time part while querying the Datetime column. Actually it is quite easy with simple CONVERT function. &lt;/span&gt;&lt;span style="font-family:verdana;"&gt;The Sql syntax for it is as follows – &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:verdana;"&gt;SELECT CONVERT ( varchar(12), DateColumn[, Style] ) as Date &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:verdana;"&gt;FROM TableName.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:verdana;"&gt;Ahh, actually I wanted to create a chart out of it, but with Blogger you can’t create one, so I ended up writing this long list. Here I used getdate function; you can put the Datetime Column name in place of getdate() of your table in following examples. &lt;/span&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-family:verdana;"&gt;Format: mm/dd/yy&lt;br /&gt;&lt;span style="color:#3333ff;"&gt;SELECT&lt;/span&gt; &lt;span style="color:#cc33cc;"&gt;CONVERT&lt;/span&gt;( &lt;span style="color:#3333ff;"&gt;Varchar&lt;/span&gt;(12), &lt;span style="color:#cc33cc;"&gt;GetDate&lt;/span&gt;(),1)&lt;br /&gt;Output: 12/27/08&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-family:verdana;"&gt;Format: mm/dd/yyyy&lt;br /&gt;&lt;span style="color:#3333ff;"&gt;SELECT&lt;/span&gt; &lt;span style="color:#cc33cc;"&gt;CONVERT&lt;/span&gt;(&lt;span style="color:#3333ff;"&gt;Varchar&lt;/span&gt;(12),&lt;span style="color:#cc33cc;"&gt;GetDate&lt;/span&gt;(),101)&lt;br /&gt;Output: 12/27/2008 &lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;span style="font-family:Verdana;"&gt;&lt;/span&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-family:verdana;"&gt;Format: yy.mm.dd&lt;br /&gt;&lt;span style="color:#3333ff;"&gt;SELECT&lt;/span&gt; &lt;span style="color:#cc33cc;"&gt;CONVERT&lt;/span&gt;(&lt;span style="color:#3333ff;"&gt;Varchar&lt;/span&gt;(12),&lt;span style="color:#cc33cc;"&gt;GetDate&lt;/span&gt;(),2)&lt;br /&gt;Output: 08.12.27&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;span style="font-family:Verdana;"&gt;&lt;/span&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-family:verdana;"&gt;Format: yyyy.mm.dd&lt;br /&gt;&lt;span style="color:#3333ff;"&gt;SELECT&lt;/span&gt; &lt;span style="color:#cc33cc;"&gt;CONVERT&lt;/span&gt;(&lt;span style="color:#3333ff;"&gt;Varchar&lt;/span&gt;(12),&lt;span style="color:#cc33cc;"&gt;GetDate&lt;/span&gt;(),102)&lt;br /&gt;Output: 2008.12.27 &lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;span style="font-family:Verdana;"&gt;&lt;/span&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-family:verdana;"&gt;Format: dd/mm/yy&lt;br /&gt;&lt;span style="color:#3333ff;"&gt;SELECT&lt;/span&gt; &lt;span style="color:#cc33cc;"&gt;CONVERT&lt;/span&gt;(&lt;span style="color:#3333ff;"&gt;Varchar&lt;/span&gt;(12),&lt;span style="color:#cc33cc;"&gt;GetDate&lt;/span&gt;(), 3)&lt;br /&gt;Output: 27/12/08 &lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;span style="font-family:Verdana;"&gt;&lt;/span&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-family:verdana;"&gt;Format: dd/mm/yyyy&lt;br /&gt;&lt;span style="color:#3333ff;"&gt;SELECT&lt;/span&gt; &lt;span style="color:#cc33cc;"&gt;CONVERT&lt;/span&gt;(&lt;span style="color:#3333ff;"&gt;Varchar&lt;/span&gt;(12),&lt;span style="color:#cc33cc;"&gt;GetDate&lt;/span&gt;(), 103)&lt;br /&gt;Output: 27/12/2008 &lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;span style="font-family:Verdana;"&gt;&lt;/span&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-family:verdana;"&gt;Format: dd.mm.yy&lt;br /&gt;&lt;span style="color:#3333ff;"&gt;SELECT&lt;/span&gt; &lt;span style="color:#cc33cc;"&gt;CONVERT&lt;/span&gt;(&lt;span style="color:#3333ff;"&gt;Varchar&lt;/span&gt;(12),&lt;span style="color:#cc33cc;"&gt;GetDate&lt;/span&gt;(), 4)&lt;br /&gt;Output: 27.12.08&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;span style="font-family:Verdana;"&gt;&lt;/span&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-family:verdana;"&gt;Format: dd.mm.yyyy&lt;br /&gt;&lt;span style="color:#3333ff;"&gt;SELECT&lt;/span&gt; &lt;span style="color:#cc33cc;"&gt;CONVERT&lt;/span&gt;(&lt;span style="color:#3333ff;"&gt;Varchar&lt;/span&gt;(12),&lt;span style="color:#cc33cc;"&gt;GetDate&lt;/span&gt;(),104)&lt;br /&gt;Output: 27.12.2008&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;span style="font-family:Verdana;"&gt;&lt;/span&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-family:verdana;"&gt;Format: dd-mm-yy&lt;br /&gt;&lt;span style="color:#3333ff;"&gt;SELECT&lt;/span&gt; &lt;span style="color:#cc33cc;"&gt;CONVERT&lt;/span&gt;(&lt;span style="color:#3333ff;"&gt;Varchar&lt;/span&gt;(12),&lt;span style="color:#cc33cc;"&gt;GetDate&lt;/span&gt;(), 5)&lt;br /&gt;Output: 27-12-08 &lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;span style="font-family:Verdana;"&gt;&lt;/span&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-family:verdana;"&gt;Format: dd-mm-yyyy&lt;br /&gt;&lt;span style="color:#3333ff;"&gt;SELECT&lt;/span&gt; &lt;span style="color:#cc33cc;"&gt;CONVERT&lt;/span&gt;(&lt;span style="color:#3333ff;"&gt;Varchar&lt;/span&gt;(12),&lt;span style="color:#cc33cc;"&gt;GetDate&lt;/span&gt;(),105)&lt;br /&gt;Output: 27-12-2008&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;span style="font-family:Verdana;"&gt;&lt;/span&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-family:verdana;"&gt;Format: dd mon yy&lt;br /&gt;&lt;span style="color:#3333ff;"&gt;SELECT&lt;/span&gt; &lt;span style="color:#cc33cc;"&gt;CONVERT&lt;/span&gt;(&lt;span style="color:#3333ff;"&gt;Varchar&lt;/span&gt;(12),&lt;span style="color:#cc33cc;"&gt;GetDate&lt;/span&gt;(), 6)&lt;br /&gt;Output: 27 Dec 08 &lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;span style="font-family:Verdana;"&gt;&lt;/span&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-family:verdana;"&gt;Format: dd mon yyyy&lt;br /&gt;&lt;span style="color:#3333ff;"&gt;SELECT&lt;/span&gt; &lt;span style="color:#cc33cc;"&gt;CONVERT&lt;/span&gt;(&lt;span style="color:#3333ff;"&gt;Varchar&lt;/span&gt;(12),&lt;span style="color:#cc33cc;"&gt;GetDate&lt;/span&gt;(),106)&lt;br /&gt;Output: 27 Dec 2008 &lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;span style="font-family:Verdana;"&gt;&lt;/span&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-family:verdana;"&gt;Format: mon dd, yy&lt;br /&gt;&lt;span style="color:#3333ff;"&gt;SELECT&lt;/span&gt; &lt;span style="color:#cc33cc;"&gt;CONVERT&lt;/span&gt;(&lt;span style="color:#3333ff;"&gt;Varchar&lt;/span&gt;(12),&lt;span style="color:#cc33cc;"&gt;GetDate&lt;/span&gt;(),7)&lt;br /&gt;Output: Dec 27, 08 &lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;span style="font-family:Verdana;"&gt;&lt;/span&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-family:verdana;"&gt;Format: mon dd, yyyy&lt;br /&gt;&lt;span style="color:#3333ff;"&gt;SELECT&lt;/span&gt; &lt;span style="color:#cc33cc;"&gt;CONVERT&lt;/span&gt;(&lt;span style="color:#3333ff;"&gt;Varchar&lt;/span&gt;(12),&lt;span style="color:#cc33cc;"&gt;GetDate&lt;/span&gt;(),107)&lt;br /&gt;Output: Dec 27, 2008 &lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;span style="font-family:Verdana;"&gt;&lt;/span&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-family:verdana;"&gt;Format: mm-dd-yy&lt;br /&gt;&lt;span style="color:#3333ff;"&gt;SELECT&lt;/span&gt; &lt;span style="color:#cc33cc;"&gt;CONVERT&lt;/span&gt;(&lt;span style="color:#3333ff;"&gt;Varchar&lt;/span&gt;(12),&lt;span style="color:#cc33cc;"&gt;GetDate&lt;/span&gt;(),10)&lt;br /&gt;Output: 12-27-08 &lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;span style="font-family:Verdana;"&gt;&lt;/span&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-family:verdana;"&gt;Format: mm-dd-yyyy&lt;br /&gt;&lt;span style="color:#3333ff;"&gt;SELECT&lt;/span&gt; &lt;span style="color:#cc33cc;"&gt;CONVERT&lt;/span&gt;(&lt;span style="color:#3333ff;"&gt;Varchar&lt;/span&gt;(12),&lt;span style="color:#cc33cc;"&gt;GetDate&lt;/span&gt;(),110)&lt;br /&gt;Output: 12-27-2008 &lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;span style="font-family:Verdana;"&gt;&lt;/span&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-family:verdana;"&gt;Format: yy/mm/dd&lt;br /&gt;&lt;span style="color:#3333ff;"&gt;SELECT&lt;/span&gt; &lt;span style="color:#cc33cc;"&gt;CONVERT&lt;/span&gt;(&lt;span style="color:#3333ff;"&gt;Varchar&lt;/span&gt;(12),&lt;span style="color:#cc33cc;"&gt;GetDate&lt;/span&gt;(),11)&lt;br /&gt;Output: 08/12/27 &lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;span style="font-family:Verdana;"&gt;&lt;/span&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-family:verdana;"&gt;Format: yyyy/mm/dd&lt;br /&gt;&lt;span style="color:#3333ff;"&gt;SELECT&lt;/span&gt; &lt;span style="color:#cc33cc;"&gt;CONVERT&lt;/span&gt;(&lt;span style="color:#3333ff;"&gt;Varchar&lt;/span&gt;(12),&lt;span style="color:#cc33cc;"&gt;GetDate&lt;/span&gt;(),111)&lt;br /&gt;Output: 2008/12/27&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-family:verdana;"&gt;Format: yymmdd&lt;br /&gt;&lt;span style="color:#3333ff;"&gt;SELECT&lt;/span&gt; &lt;span style="color:#cc33cc;"&gt;CONVERT&lt;/span&gt;(&lt;span style="color:#3333ff;"&gt;Varchar&lt;/span&gt;(12),&lt;span style="color:#cc33cc;"&gt;GetDate&lt;/span&gt;(),12)&lt;br /&gt;Output: 081227 &lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-family:verdana;"&gt;Format: yyyymmdd&lt;br /&gt;&lt;span style="color:#3333ff;"&gt;SELECT&lt;/span&gt; &lt;span style="color:#cc33cc;"&gt;CONVERT&lt;/span&gt;(&lt;span style="color:#3333ff;"&gt;Varchar&lt;/span&gt;(12),&lt;span style="color:#cc33cc;"&gt;GetDate&lt;/span&gt;(),112)&lt;br /&gt;Output: 20081227&lt;br /&gt;&lt;br /&gt;Well I already wrote one blog entry on how to convert date in required format.&lt;br /&gt;&lt;/span&gt;&lt;a href="http://mangalpardeshi.blogspot.com/2008/11/date-formats-in-sql-server.html"&gt;&lt;span style="font-family:verdana;"&gt;Date Formats In SQL SERVER.&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:verdana;"&gt;&lt;br /&gt;&lt;br /&gt;For more on CONVERT see&lt;br /&gt;&lt;/span&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms187928.aspx"&gt;&lt;span style="font-family:verdana;"&gt;CAST and CONVERT (Transact-SQL) Books Online&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:verdana;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#cc0000;"&gt;&lt;em&gt;- Mangal Pardeshi.&lt;/em&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8585649008635531444-6394944169785562090?l=mangalpardeshi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mangalpardeshi.blogspot.com/feeds/6394944169785562090/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://mangalpardeshi.blogspot.com/2008/12/removing-time-from-datetime-column-in.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8585649008635531444/posts/default/6394944169785562090'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8585649008635531444/posts/default/6394944169785562090'/><link rel='alternate' type='text/html' href='http://mangalpardeshi.blogspot.com/2008/12/removing-time-from-datetime-column-in.html' title='Removing Time from DateTime column in Sql Server 2005'/><author><name>Mangal Pardeshi</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_weIRgO4yuTo/SzSmWMjAwJI/AAAAAAAAAKs/DgpUWlN5KZY/S220/y1m_Ev9g6OBzqJR8Z6lhdhzgWZ-bl8WwBuhHkrErOHngc14s42YU23gTajpglsbRjABGlnSHh-wUfbGievoo7soxuBY9uSp1K1I.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8585649008635531444.post-8543484591176517160</id><published>2008-12-27T12:16:00.002+05:30</published><updated>2009-08-11T17:52:24.714+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Linked Server'/><title type='text'>Linked Server With DBF Files</title><content type='html'>&lt;span style="font-family: verdana"&gt;In my previous post I wrote about &lt;a href="http://msdn.microsoft.com/en-us/library/ms188279.aspx"&gt;&lt;span style="color: #3333ff"&gt;Linked Server&lt;/span&gt;&lt;/a&gt; with Excel. Now we will see how to create a linked server for DBF files. That is accessing and querying DBF files from SQL Server Management Studio.    &lt;br /&gt;    &lt;br /&gt;First I’ll show you how to set up the &lt;a href="http://msdn.microsoft.com/en-us/library/ms188279.aspx"&gt;&lt;span style="color: #3333ff"&gt;Linked Server&lt;/span&gt;&lt;/a&gt; from Management Studio.    &lt;br /&gt;    &lt;br /&gt;Open the &lt;strong&gt;Management Studio&lt;/strong&gt; and navigate to &lt;strong&gt;Server Objects&lt;/strong&gt; and then to &lt;strong&gt;Linked Server&lt;/strong&gt;. Right click on the Linked Servers node and select “Create New Linked Server”. &lt;/span&gt;  &lt;br /&gt;&lt;span style="font-family: verdana"&gt;Enter in the name of your linked server in the text box that appears next to the “Linked Server” label. This can be any name that you would recognize to describe the object. &lt;/span&gt;  &lt;br /&gt;&lt;span style="font-family: verdana"&gt;   &lt;br /&gt;Then under Server Type, choose the “&lt;strong&gt;Other Data Source&lt;/strong&gt;” Radio button. And select the provider “&lt;strong&gt;Microsoft Jet 4.0 OLE DB Provider&lt;/strong&gt;” from the list.    &lt;br /&gt;For “&lt;strong&gt;Product Name&lt;/strong&gt;” enter “&lt;strong&gt;Microsoft Jet&lt;/strong&gt;”    &lt;br /&gt;In the “Data Source” text box, enter the full folder path to your dbf files. For mine I entered this: “D:\DBF Project\Data”.    &lt;br /&gt;For the “Provider String” enter “&lt;strong&gt;dBASE 5.0&lt;/strong&gt;”    &lt;br /&gt;    &lt;br /&gt;Then go to the security page. Here you have 2 options.    &lt;br /&gt;Either select “&lt;strong&gt;Be made without using a security context&lt;/strong&gt;”    &lt;br /&gt;OR    &lt;br /&gt;Select “&lt;strong&gt;Be made using this security context&lt;/strong&gt;” radio button found near the bottom of the window. The “Remote login” and “With password” text boxes become active to be filled in.    &lt;br /&gt;In the “&lt;strong&gt;Remote login&lt;/strong&gt;”, enter “&lt;strong&gt;Admin&lt;/strong&gt;” as the login user. Leave the password text box blank. Well I don’t know the exact answer why this needs; I tried searching on Net but couldn’t find the answer, but this how it works.    &lt;br /&gt;    &lt;br /&gt;And say “ok”, now your Linked Server DBF files is ready. Just expand the Linked Server and then now created Linked server, after expanding the Default you will see Tables and Views. Expand the Tables node to see a list of table objects for the folder.    &lt;br /&gt;    &lt;br /&gt;Now you can query the DBF files just like any other table from management studio. Now open the new query window to write a query on DBF files. Just remember you have to include the linked server and table name in a four part address. Namely, [LinkedServername]…[TableName].    &lt;br /&gt;    &lt;br /&gt;So your select query will be like    &lt;br /&gt;&lt;span style="color: #3333ff"&gt;SELECT&lt;/span&gt; * &lt;span style="color: #3333ff"&gt;FROM&lt;/span&gt; [Linked_Server_Name]…[TableName]    &lt;br /&gt;    &lt;br /&gt;e.g.    &lt;br /&gt;&lt;span style="color: #3333ff"&gt;SELECT&lt;/span&gt; * &lt;span style="color: #3333ff"&gt;FROM&lt;/span&gt; DbfLinked…Items.    &lt;br /&gt;    &lt;br /&gt;Here DbfLinked is the linked server name I gave and “Items” is the table name. Observe that there are &lt;strong&gt;3 dots&lt;/strong&gt; between linked server name and table name.    &lt;br /&gt;    &lt;br /&gt;We can use almost any select statement to retrieve our dbf data. For example JOINS with other tables in Sql Server or with other DBF tables, WHERE conditions, GROUP BY, HAVING, ORDER BY, even the UPDATE, DELETE or for that matter any valid Sql statement you normally do with tables.    &lt;br /&gt;    &lt;br /&gt;    &lt;br /&gt;Same Linked Server you can create using Sql Statement.    &lt;br /&gt;&lt;span style="color: #006600"&gt;-- To create Linked Server With DBF Files     &lt;br /&gt;&lt;/span&gt;&lt;span style="color: #3333ff"&gt;EXEC master.&lt;/span&gt;dbo.&lt;span style="color: #660000"&gt;&lt;span style="color: #990000"&gt;sp_addlinkedserver&lt;/span&gt;      &lt;br /&gt;&lt;/span&gt;@server = &lt;span style="color: #cc0000"&gt;'DbfLinked'&lt;/span&gt;,    &lt;br /&gt;@srvproduct = &lt;span style="color: #cc0000"&gt;'Microsoft Jet'&lt;/span&gt;,    &lt;br /&gt;@provider = &lt;span style="color: #cc0000"&gt;'Microsoft.Jet.OLEDB.4.0'&lt;/span&gt;,    &lt;br /&gt;@datasrc = &lt;span style="color: #cc0000"&gt;'D:\DBF Project\Data'&lt;/span&gt;,    &lt;br /&gt;@provstr = &lt;span style="color: #cc0000"&gt;'dBASE 5.0'     &lt;br /&gt;&lt;/span&gt;    &lt;br /&gt;    &lt;br /&gt;&lt;span style="color: #006600"&gt;/* Now use either of two secuirty Context*/     &lt;br /&gt;-- To select security Context “Be made without using a security context”&lt;/span&gt;    &lt;br /&gt;    &lt;br /&gt;&lt;span style="color: #3333ff"&gt;EXEC master.&lt;/span&gt;dbo.&lt;span style="color: #990000"&gt;sp_addlinkedsrvlogin     &lt;br /&gt;&lt;/span&gt;@rmtsrvname =&lt;span style="color: #cc0000"&gt; 'DB'&lt;/span&gt;,    &lt;br /&gt;@useself = &lt;span style="color: #cc0000"&gt;'False'&lt;/span&gt;,    &lt;br /&gt;@locallogin = &lt;span style="color: #666666"&gt;NULL,&lt;/span&gt;    &lt;br /&gt;@rmtuser = &lt;span style="color: #666666"&gt;NULL,&lt;/span&gt;    &lt;br /&gt;@rmtpassword = &lt;span style="color: #666666"&gt;NULL     &lt;br /&gt;&lt;/span&gt;    &lt;br /&gt;&lt;span style="color: #006600"&gt;-- Or using “Be made using this security context”&lt;/span&gt;    &lt;br /&gt;&lt;span style="color: #3333ff"&gt;EXEC master&lt;/span&gt;.dbo.&lt;span style="color: #990000"&gt;sp_addlinkedsrvlogin     &lt;br /&gt;&lt;/span&gt;@rmtsrvname = &lt;span style="color: #cc0000"&gt;'DB'&lt;/span&gt;,    &lt;br /&gt;@useself =&lt;span style="color: #cc0000"&gt; 'False'&lt;/span&gt;,    &lt;br /&gt;@locallogin = &lt;span style="color: #666666"&gt;NULL,     &lt;br /&gt;&lt;/span&gt;@rmtuser = &lt;span style="color: #cc0000"&gt;'Admin'&lt;/span&gt;,    &lt;br /&gt;@rmtpassword =&lt;span style="color: #cc0000"&gt; ''&lt;/span&gt;    &lt;br /&gt;    &lt;br /&gt;&lt;/span&gt;  &lt;br /&gt;&lt;span style="font-family: verdana"&gt;&lt;span style="color: #cc0000"&gt;&lt;em&gt;- Mangal Pardeshi.&lt;/em&gt;&lt;/span&gt;    &lt;br /&gt;    &lt;br /&gt;    &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: verdana"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: verdana"&gt;&lt;/span&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8585649008635531444-8543484591176517160?l=mangalpardeshi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mangalpardeshi.blogspot.com/feeds/8543484591176517160/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://mangalpardeshi.blogspot.com/2008/12/linked-server-with-dbf-files-dbase.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8585649008635531444/posts/default/8543484591176517160'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8585649008635531444/posts/default/8543484591176517160'/><link rel='alternate' type='text/html' href='http://mangalpardeshi.blogspot.com/2008/12/linked-server-with-dbf-files-dbase.html' title='Linked Server With DBF Files'/><author><name>Mangal Pardeshi</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_weIRgO4yuTo/SzSmWMjAwJI/AAAAAAAAAKs/DgpUWlN5KZY/S220/y1m_Ev9g6OBzqJR8Z6lhdhzgWZ-bl8WwBuhHkrErOHngc14s42YU23gTajpglsbRjABGlnSHh-wUfbGievoo7soxuBY9uSp1K1I.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8585649008635531444.post-8518780255012328607</id><published>2008-12-21T18:32:00.000+05:30</published><updated>2009-03-10T15:30:30.143+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='FAQ'/><category scheme='http://www.blogger.com/atom/ns#' term='Admin'/><title type='text'>How To Enable Xp_CmdShell in Sql Server?</title><content type='html'>&lt;span style="font-family:verdana;"&gt;Today I will show you how to enable the Xp_CmdShell extended stored procedure in Sql Server 2005 and 2008.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;Well normal error message you'll get when Xp_CmdShell is not enabled on your Sql Server and you to try execute some Windows commands using Xp_CmdShell is&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:verdana;color:#cc0000;"&gt;Msg 15281, Level 16, State 1, Procedure xp_cmdshell, Line 1&lt;br /&gt;SQL Server blocked access to procedure 'sys.xp_cmdshell' of component 'xp_cmdshell' because this component is turned off as part of the security configuration for this server. A system administrator can enable the use of 'xp_cmdshell' by using sp_configure. For more information about enabling 'xp_cmdshell', see "Surface Area Configuration" in SQL Server Books Online.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:verdana;color:#cc0000;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:verdana;color:#000000;"&gt;You can enable the Xp_CmdShell using 2 ways, either by executing T-sql statements or from&lt;br /&gt;"Surface Area Configuration Manager". We'll see both of them.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#000000;"&gt;&lt;span style="font-family:verdana;font-size:130%;color:#cc0000;"&gt;A. Enable Xp_Cmdshell from Management Studio.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;For enabling Xp_CmdShell from Management Studio you need to execute following code.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:verdana;color:#cc0000;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;&lt;span style="color:#006600;"&gt;-- To allow advanced options to be changed.&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#3333ff;"&gt;EXEC&lt;/span&gt; &lt;span style="color:#990000;"&gt;sp_configure&lt;/span&gt; &lt;span style="color:#cc0000;"&gt;'show advanced options'&lt;/span&gt;, 1&lt;br /&gt;&lt;span style="color:#3333ff;"&gt;GO&lt;br /&gt;&lt;/span&gt;&lt;span style="color:#006600;"&gt;-- To update the currently configured value for advanced options.&lt;br /&gt;&lt;/span&gt;&lt;span style="color:#3333ff;"&gt;RECONFIGURE&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#3333ff;"&gt;GO&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#006600;"&gt;-- To enable the feature.&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#3333ff;"&gt;EXEC&lt;/span&gt; &lt;span style="color:#990000;"&gt;sp_configure&lt;/span&gt; &lt;span style="color:#cc0000;"&gt;'xp_cmdshell'&lt;/span&gt;, 1&lt;br /&gt;&lt;span style="color:#3333ff;"&gt;GO&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#006600;"&gt;-- To update the currently configured value for this feature.&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#3333ff;"&gt;RECONFIGURE&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#3333ff;"&gt;GO&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#990000;"&gt;&lt;span style="font-family:verdana;font-size:130%;"&gt;B. Enable the Xp_CmdShell from "Surface Area Configuration Manager."&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:verdana;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;1. Click &lt;strong&gt;Start&lt;/strong&gt;, point to &lt;strong&gt;Programs&lt;/strong&gt;, point to &lt;strong&gt;Microsoft SQL Server 2005&lt;/strong&gt;, point to &lt;strong&gt;Configuration Tools&lt;/strong&gt;, and then click &lt;strong&gt;SQL Server Surface Area Configuration&lt;/strong&gt;.&lt;br /&gt;2. On the SQL Server 2005 Surface Area Configuration page, click &lt;strong&gt;Surface Area Configuration for Features&lt;/strong&gt;.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;3. Click on &lt;strong&gt;xp_cmdshell&lt;/strong&gt; and tick on checkbox of &lt;strong&gt;"Enable the xp_cmdshell&lt;/strong&gt;".&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:verdana;color:#cc0000;"&gt;- Mangal Pardeshi.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8585649008635531444-8518780255012328607?l=mangalpardeshi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mangalpardeshi.blogspot.com/feeds/8518780255012328607/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://mangalpardeshi.blogspot.com/2008/12/how-to-enable-xpcmdshell-stored.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8585649008635531444/posts/default/8518780255012328607'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8585649008635531444/posts/default/8518780255012328607'/><link rel='alternate' type='text/html' href='http://mangalpardeshi.blogspot.com/2008/12/how-to-enable-xpcmdshell-stored.html' title='How To Enable Xp_CmdShell in Sql Server?'/><author><name>Mangal Pardeshi</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_weIRgO4yuTo/SzSmWMjAwJI/AAAAAAAAAKs/DgpUWlN5KZY/S220/y1m_Ev9g6OBzqJR8Z6lhdhzgWZ-bl8WwBuhHkrErOHngc14s42YU23gTajpglsbRjABGlnSHh-wUfbGievoo7soxuBY9uSp1K1I.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8585649008635531444.post-1358618835736349710</id><published>2008-12-21T17:36:00.000+05:30</published><updated>2009-02-09T15:42:57.182+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Admin'/><title type='text'>How to configure SQL Server 2005 to allow remote connections</title><content type='html'>&lt;p&gt;&lt;span style="font-family:verdana;"&gt;By default, SQL Server 2005 does not allow remote connections. To configure SQL Server 2005 to allow remote connections, we need to follow the steps: &lt;/span&gt;&lt;/p&gt;&lt;span style="font-family:verdana;"&gt;&lt;ul&gt;&lt;li&gt;Enable remote connections on the instance of SQL Server that you want to connect to from a remote computer. &lt;/li&gt;&lt;li&gt;Turn on the SQL Server Browser service. (If you are using Named Instance or Sql Express.)&lt;/li&gt;&lt;li&gt;Configure the firewall to allow network traffic that is related to SQL Server and to the SQL Server Browser service.&lt;br /&gt;&lt;br /&gt;So we will see how to achieve above 3 points one by one.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;br /&gt;&lt;span style="color:#990000;"&gt;A] How to Enable remote connections for SQL 2005?&lt;/span&gt;&lt;br /&gt;1. Click on Start &gt;&gt; Programs &gt;&gt; Microsoft SQL Server 2005 &gt;&gt; Configuration Tools, and then click SQL Server Surface Area Configuration.&lt;br /&gt;2. On the SQL Server 2005 Surface Area Configuration page, click Surface Area Configuration for Services and Connections.&lt;br /&gt;3. On the Surface Area Configuration for Services and Connections page, expand Database Engine, click Remote Connections, click Local and remote connections, click the appropriate protocol to enable for your environment, and then click Apply.&lt;br /&gt;4. On the Surface Area Configuration for Services and Connections page, expand Database Engine, click Service, click Stop, wait until the MSSQLSERVER service stops, and then click Start to restart the MSSQLSERVER service.&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:130%;color:#990000;"&gt;B] How to Enable the SQL Server Browser service?&lt;/span&gt;&lt;/p&gt;&lt;p&gt;If you are running SQL Server 2005 by using an instance name and you are not using a specific TCP/IP port number in your connection string, you must enable the SQL Server Browser service to allow for remote connections.&lt;/p&gt;&lt;p&gt;1. Click on Start &gt;&gt;Programs &gt;&gt; Microsoft SQL Server 2005 &gt;&gt; Configuration Tools, and then click SQL Server Surface Area Configuration.&lt;br /&gt;2. On the SQL Server 2005 Surface Area Configuration page, click Surface Area Configuration for Services and Connections.&lt;br /&gt;3. On the Surface Area Configuration for Services and Connections page, click SQL Server Browser, click Automatic for Startup type, and then click Apply. &lt;/p&gt;&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; When you click the Automatic option, the SQL Server Browser service starts automatically every time that you start Microsoft Windows.&lt;br /&gt;4. Click Start, and then click OK.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:130%;color:#990000;"&gt;C] How to Create exceptions in Windows Firewall?&lt;/span&gt;&lt;/p&gt;&lt;p&gt;If you are running a firewall on the computer that is running SQL Server 2005, external connections to SQL Server 2005 will be blocked unless SQL Server 2005 and the SQL Server Browser service can communicate through the firewall. You must create an exception for each instance of SQL Server 2005 that you want to accept remote connections and an exception for the SQL Server Browser service.&lt;/p&gt;&lt;p&gt;To open Windows Firewall, click &lt;strong&gt;Start&lt;/strong&gt;, click &lt;strong&gt;Run&lt;/strong&gt;, type &lt;strong&gt;firewall.cpl&lt;/strong&gt;, and then click OK. &lt;/p&gt;&lt;p&gt;1. In Windows Firewall, click the Exceptions tab, and then click Add Program.&lt;br /&gt;2. In the Add a Program window, click Browse.&lt;br /&gt;3. Click the C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Binn\sqlservr.exe executable program, click Open, and then click OK. Note The path may be different depending on where SQL Server 2005 is installed. MSSQL.1 is a placeholder for the instance ID that you obtained in step 3 of the previous procedure.&lt;br /&gt;4. Repeat steps 1 through 3 for each instance of SQL Server 2005 that needs an exception. &lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;span style="color:#990000;"&gt;&lt;span style="font-size:130%;"&gt;To create an exception for the SQL Server Browser service in Windows Firewall&lt;/span&gt;,&lt;/span&gt; follow these steps:&lt;br /&gt;1. In Windows Firewall, click the Exceptions tab, and then click Add Program.&lt;br /&gt;2. In the Add a Program window, click Browse.&lt;br /&gt;3. Click the C:\Program Files\Microsoft SQL Server\90\Shared\sqlbrowser.exe executable program, click Open, and then click OK. &lt;/p&gt;&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; The path may be different depending on where SQL Server 2005 is installed.&lt;/p&gt;&lt;p&gt;The source - &lt;a href="http://support.microsoft.com/kb/914277"&gt;http://support.microsoft.com/kb/914277&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:georgia;color:#cc0000;"&gt;&lt;em&gt;- Mangal Pardeshi.&lt;/em&gt;&lt;/span&gt;&lt;/p&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8585649008635531444-1358618835736349710?l=mangalpardeshi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mangalpardeshi.blogspot.com/feeds/1358618835736349710/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://mangalpardeshi.blogspot.com/2008/12/how-to-configure-sql-server-2005-to.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8585649008635531444/posts/default/1358618835736349710'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8585649008635531444/posts/default/1358618835736349710'/><link rel='alternate' type='text/html' href='http://mangalpardeshi.blogspot.com/2008/12/how-to-configure-sql-server-2005-to.html' title='How to configure SQL Server 2005 to allow remote connections'/><author><name>Mangal Pardeshi</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_weIRgO4yuTo/SzSmWMjAwJI/AAAAAAAAAKs/DgpUWlN5KZY/S220/y1m_Ev9g6OBzqJR8Z6lhdhzgWZ-bl8WwBuhHkrErOHngc14s42YU23gTajpglsbRjABGlnSHh-wUfbGievoo7soxuBY9uSp1K1I.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8585649008635531444.post-8063856553883753035</id><published>2008-12-08T21:58:00.000+05:30</published><updated>2010-08-21T01:02:06.595+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='FAQ'/><category scheme='http://www.blogger.com/atom/ns#' term='T-SQL'/><title type='text'>Check Constraint to allow alphabets only in Sql Server</title><content type='html'>&lt;span style="font-family: verdana"&gt;How to create a check constraint to allow alphabets i.e. A-Z characters only or alphabets + numbers with no special characters in Sql Server?   &lt;br /&gt;I think many of us have faced this problem sometimes. Here is the scenario, you have column with varchar/char datatype and you don’t want user to enter any numbers or any Special characters like &lt;span style="color: #cc0000"&gt;@, #, $, *.&lt;/span&gt; And sometimes characters + numbers with no special characters. And we don’t know any efficient way to handle and we end up writing a long NOT LIKE check constraint.    &lt;br /&gt;So let’s see how to write a simple CHECK CONSTARINT for allowing only alphabets and numbers.    &lt;br /&gt;    &lt;br /&gt;First I’ll show you how to write a WHERE conditions for such different cases, so you will get an idea.    &lt;br /&gt;Let’s create 1 temporary table and populate it with some data    &lt;br /&gt;    &lt;br /&gt;&lt;span style="color: #3333ff"&gt;CREATE TABLE&lt;/span&gt; #temp    &lt;br /&gt;(ID &lt;span style="color: #3333ff"&gt;varchar&lt;/span&gt;(50))    &lt;br /&gt;&lt;span style="color: #3333ff"&gt;GO&lt;/span&gt;    &lt;br /&gt;    &lt;br /&gt;&lt;span style="color: #3333ff"&gt;INSERT INTO&lt;/span&gt; #TEMP &lt;span style="color: #3333ff"&gt;SELECT&lt;/span&gt;    &lt;br /&gt;&lt;span style="color: #cc0000"&gt;'Mangal'&lt;/span&gt; &lt;span style="color: #3333ff"&gt;UNION SELECT&lt;/span&gt;    &lt;br /&gt;&lt;span style="color: #cc0000"&gt;'Mangal Pardeshi'&lt;/span&gt; &lt;span style="color: #3333ff"&gt;UNION SELECT&lt;/span&gt;    &lt;br /&gt;&lt;span style="color: #cc0000"&gt;'Mangal19'&lt;/span&gt; &lt;span style="color: #3333ff"&gt;UNION SELECT&lt;/span&gt;    &lt;br /&gt;&lt;span style="color: #cc0000"&gt;'19'&lt;/span&gt; &lt;span style="color: #3333ff"&gt;UNION SELECT     &lt;br /&gt;&lt;/span&gt;&lt;span style="color: #cc0000"&gt;'@Mangal***'&lt;/span&gt; &lt;span style="color: #3333ff"&gt;UNION SELECT&lt;/span&gt;    &lt;br /&gt;&lt;span style="color: #cc0000"&gt;'@#$%^&amp;amp;*'&lt;/span&gt; &lt;span style="color: #3333ff"&gt;UNION SELECT&lt;/span&gt;    &lt;br /&gt;&lt;span style="color: #cc0000"&gt;'Mangal19**'     &lt;br /&gt;&lt;/span&gt;&lt;span style="color: #3333ff"&gt;GO     &lt;br /&gt;&lt;/span&gt;    &lt;br /&gt;Now our sample table #temp is ready.    &lt;br /&gt;&lt;span style="color: #3333ff"&gt;SELECT&lt;/span&gt; * &lt;span style="color: #3333ff"&gt;FROM&lt;/span&gt; #TEMP    &lt;br /&gt;    &lt;br /&gt;&lt;span style="color: #006600"&gt;-- Output --     &lt;br /&gt;      &lt;br /&gt;@#$%^&amp;amp;*      &lt;br /&gt;@Mangal***      &lt;br /&gt;19      &lt;br /&gt;Mangal      &lt;br /&gt;Mangal Pardeshi      &lt;br /&gt;Mangal19      &lt;br /&gt;Mangal19**      &lt;br /&gt;--------------      &lt;br /&gt;&lt;/span&gt;    &lt;br /&gt;Case 1 : We just want to get rows with only Alphabets (A-Z characters) with no numbers and Special characters.    &lt;br /&gt;    &lt;br /&gt;&lt;span style="color: #3333ff"&gt;SELECT&lt;/span&gt; id    &lt;br /&gt;&lt;span style="color: #3333ff"&gt;FROM&lt;/span&gt; #TEMP    &lt;br /&gt;&lt;span style="color: #3333ff"&gt;WHERE&lt;/span&gt; id &lt;span style="color: #333333"&gt;NOT LIKE&lt;/span&gt; &lt;span style="color: #cc0000"&gt;'%[^A-Z]%'     &lt;br /&gt;&lt;/span&gt;    &lt;br /&gt;&lt;span style="color: #006600"&gt;-- Output --     &lt;br /&gt;Mangal&lt;/span&gt; &lt;/span&gt;  &lt;br /&gt;&lt;span style="font-family: verdana"&gt;--------------   &lt;br /&gt;    &lt;br /&gt;Now if you notice here &lt;span style="color: #cc0000"&gt;‘Mangal Pardeshi’&lt;/span&gt; din’t get selected as it contains a SPACE in between. To avoid that we need include a single space in our condtion &lt;span style="color: #cc0000"&gt;'%[^A-Z]%'&lt;/span&gt;. Now we will put &lt;span style="color: #cc0000"&gt;'%[^A-Z ]%'&lt;/span&gt;.    &lt;br /&gt;    &lt;br /&gt;&lt;span style="color: #3333ff"&gt;SELECT&lt;/span&gt; id    &lt;br /&gt;&lt;span style="color: #3333ff"&gt;FROM&lt;/span&gt; #TEMP    &lt;br /&gt;&lt;span style="color: #3333ff"&gt;WHERE&lt;/span&gt; id &lt;span style="color: #333333"&gt;NOT LIKE&lt;/span&gt; &lt;span style="color: #cc0000"&gt;'%[^A-Z ]%'&lt;/span&gt;    &lt;br /&gt;    &lt;br /&gt;&lt;span style="color: #006600"&gt;-- Output --     &lt;br /&gt;Mangal      &lt;br /&gt;Mangal Pardeshi &lt;/span&gt;&lt;/span&gt;  &lt;br /&gt;&lt;span style="font-family: verdana"&gt;&lt;span style="color: #006600"&gt;--------------&lt;/span&gt;    &lt;br /&gt;    &lt;br /&gt;Case 2 : Now we want select all the rows with alphabets + numbers or any of the both with no special characters.    &lt;br /&gt;    &lt;br /&gt;&lt;span style="color: #3333ff"&gt;SELECT&lt;/span&gt; id    &lt;br /&gt;&lt;span style="color: #3333ff"&gt;FROM&lt;/span&gt; #TEMP    &lt;br /&gt;&lt;span style="color: #3333ff"&gt;WHERE&lt;/span&gt; id &lt;span style="color: #333333"&gt;NOT LIKE&lt;/span&gt; &lt;span style="color: #cc0000"&gt;'%[^A-Z0-9 ]%'&lt;/span&gt;    &lt;br /&gt;    &lt;br /&gt;&lt;span style="color: #006600"&gt;-- Output --     &lt;br /&gt;19      &lt;br /&gt;Mangal      &lt;br /&gt;Mangal Pardeshi      &lt;br /&gt;Mangal19      &lt;br /&gt;--------------&lt;/span&gt;    &lt;br /&gt;Case 3 : Now we want characters + numbers or characters or numbers or a special character *. So I just add a * in our condition.    &lt;br /&gt;    &lt;br /&gt;&lt;span style="color: #3333ff"&gt;SELECT&lt;/span&gt; id    &lt;br /&gt;&lt;span style="color: #3333ff"&gt;FROM&lt;/span&gt; #TEMP    &lt;br /&gt;&lt;span style="color: #3333ff"&gt;WHERE&lt;/span&gt; id &lt;span style="color: #333333"&gt;NOT LIKE&lt;/span&gt; &lt;span style="color: #cc0000"&gt;'%[^A-Z0-9* ]%'&lt;/span&gt;    &lt;br /&gt;    &lt;br /&gt;&lt;span style="color: #006600"&gt;-- Output --     &lt;br /&gt;19      &lt;br /&gt;Mangal      &lt;br /&gt;Mangal Pardeshi      &lt;br /&gt;Mangal19      &lt;br /&gt;Mangal19**      &lt;br /&gt;---------------&lt;/span&gt;    &lt;br /&gt;Same way you can inculde any special character. You just need to add that character into our original condition.    &lt;br /&gt;    &lt;br /&gt;Now writing a Check Constraint is very simple.    &lt;br /&gt;    &lt;br /&gt;For allowing Alphabets only    &lt;br /&gt;    &lt;br /&gt;&lt;span style="color: #3333ff"&gt;ALTER TABLE&lt;/span&gt; TableName &lt;span style="color: #3333ff"&gt;ADD CONSTRAINT&lt;/span&gt; Only_Characters &lt;span style="color: #3333ff"&gt;CHECK&lt;/span&gt; ColumnName &lt;span style="color: #333333"&gt;NOT LIKE&lt;/span&gt; &lt;span style="color: #cc0000"&gt;'%[^A-Z ]%'&lt;/span&gt;    &lt;br /&gt;**Remember to add extra space.    &lt;br /&gt;    &lt;br /&gt;For alphabets + Numbers    &lt;br /&gt;    &lt;br /&gt;&lt;span style="color: #3333ff"&gt;ALTER TABLE&lt;/span&gt; TableName &lt;span style="color: #3333ff"&gt;ADD CONSTRAINT&lt;/span&gt; Only_Characters_And_Numebrs &lt;span style="color: #3333ff"&gt;CHECK&lt;/span&gt; ColumnName &lt;span style="color: #333333"&gt;NOT LIKE&lt;/span&gt;&lt;span style="color: #cc0000"&gt; '%[^A-Z0-9 ]%'&lt;/span&gt;    &lt;br /&gt;    &lt;br /&gt;    &lt;br /&gt;Hopefuly this post will help many of you.    &lt;br /&gt;&lt;/span&gt;  &lt;br /&gt;  &lt;br /&gt;&lt;span style="font-family: verdana"&gt;&lt;span style="color: #cc0000"&gt;&lt;em&gt;- Mangal Pardeshi.&lt;/em&gt;&lt;/span&gt;    &lt;br /&gt;    &lt;br /&gt;    &lt;br /&gt;    &lt;br /&gt;    &lt;br /&gt;    &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: verdana"&gt;&lt;/span&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8585649008635531444-8063856553883753035?l=mangalpardeshi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mangalpardeshi.blogspot.com/feeds/8063856553883753035/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://mangalpardeshi.blogspot.com/2008/12/check-constraint-to-allow-alphabets.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8585649008635531444/posts/default/8063856553883753035'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8585649008635531444/posts/default/8063856553883753035'/><link rel='alternate' type='text/html' href='http://mangalpardeshi.blogspot.com/2008/12/check-constraint-to-allow-alphabets.html' title='Check Constraint to allow alphabets only in Sql Server'/><author><name>Mangal Pardeshi</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_weIRgO4yuTo/SzSmWMjAwJI/AAAAAAAAAKs/DgpUWlN5KZY/S220/y1m_Ev9g6OBzqJR8Z6lhdhzgWZ-bl8WwBuhHkrErOHngc14s42YU23gTajpglsbRjABGlnSHh-wUfbGievoo7soxuBY9uSp1K1I.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8585649008635531444.post-2930284776411315287</id><published>2008-12-06T12:09:00.003+05:30</published><updated>2009-04-13T23:16:14.904+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='FAQ'/><category scheme='http://www.blogger.com/atom/ns#' term='T-SQL'/><title type='text'>How to create a time dimension in SQL Server</title><content type='html'>&lt;span style="font-family: verdana"&gt;In this post I’ll help you creating a Time Dimesnion as it is very much required if you are working on Sql Server Analysis Services. Until now you need to write a complex Sql procedure running into loops for creating a large Time Dimension. But with Sql Server 2005 and Common Table Expressions (CTE) it is very easy to create your own Time Dimension. A time Dimension is also called as Calendar Table by many.   &lt;br /&gt;When I started working on SSAS 2005 I also searched for a good Time Dimension, but now I have created my own Time Dimension with following Script.    &lt;br /&gt;    &lt;br /&gt;Following script creates a table named TimeDiemension and populates it from 2000-01-01 to 2020-12-31. You can easily put your required dates. &lt;/span&gt;  &lt;br /&gt;&lt;span style="font-family: verdana"&gt;Even though following query may look little big but believe me, it's nothing but a simple SELECT statement with CTE. &lt;/span&gt;  &lt;br /&gt;&lt;span style="font-family: verdana"&gt;&lt;span style="color: #006600"&gt;------- TimeDimension -------&lt;/span&gt;    &lt;br /&gt;    &lt;br /&gt;&lt;span style="color: #3333ff"&gt;WITH&lt;/span&gt; Mangal &lt;span style="color: #3333ff"&gt;as&lt;/span&gt;    &lt;br /&gt;(    &lt;br /&gt;&lt;span style="color: #3333ff"&gt;SELECT&lt;/span&gt; &lt;span style="color: #cc33cc"&gt;Cast &lt;/span&gt;(&lt;span style="color: #ff0000"&gt;'2000-01-01'&lt;/span&gt; &lt;span style="color: #3333ff"&gt;as&lt;/span&gt; &lt;span style="color: #3333ff"&gt;DateTime&lt;/span&gt;) Date &lt;span style="color: #006600"&gt;--Start Date&lt;/span&gt;    &lt;br /&gt;&lt;span style="color: #3333ff"&gt;UNION ALL&lt;/span&gt;    &lt;br /&gt;&lt;span style="color: #3333ff"&gt;SELECT&lt;/span&gt; Date + 1    &lt;br /&gt;&lt;span style="color: #3333ff"&gt;FROM&lt;/span&gt; Mangal    &lt;br /&gt;&lt;span style="color: #3333ff"&gt;WHERE&lt;/span&gt; Date + 1 &amp;lt; = '2020-12-31' &lt;span style="color: #006600"&gt;--End date&lt;/span&gt; &lt;/span&gt;  &lt;br /&gt;&lt;span style="font-family: verdana"&gt;) &lt;/span&gt;  &lt;br /&gt;&lt;span style="font-family: verdana"&gt;&lt;/span&gt;  &lt;br /&gt;&lt;span style="font-family: verdana"&gt;&lt;span style="color: #3333ff"&gt;SELECT&lt;/span&gt; &lt;span style="color: #cc33cc"&gt;Row_Number&lt;/span&gt;() &lt;span style="color: #3333ff"&gt;OVER&lt;/span&gt; (&lt;span style="color: #3333ff"&gt;ORDER BY&lt;/span&gt; Date) &lt;span style="color: #3333ff"&gt;as&lt;/span&gt; DateId &lt;/span&gt;  &lt;br /&gt;&lt;span style="font-family: verdana"&gt;,Date &lt;/span&gt;  &lt;br /&gt;&lt;span style="font-family: verdana"&gt;,&lt;span style="color: #cc33cc"&gt;YEAR&lt;/span&gt; (date) &lt;span style="color: #3333ff"&gt;as&lt;/span&gt; Year &lt;/span&gt;  &lt;br /&gt;&lt;span style="font-family: verdana"&gt;,&lt;span style="color: #cc33cc"&gt;DatePart&lt;/span&gt; ( qq, date) &lt;span style="color: #3333ff"&gt;as&lt;/span&gt; Quarter &lt;/span&gt;  &lt;br /&gt;&lt;span style="font-family: verdana"&gt;,&lt;span style="color: #cc33cc"&gt;MONTH&lt;/span&gt; (date) &lt;span style="color: #3333ff"&gt;as&lt;/span&gt; Month_Number_Year &lt;/span&gt;  &lt;br /&gt;&lt;span style="font-family: verdana"&gt;,&lt;span style="color: #cc33cc"&gt;DateDiff(mm,DateAdd(qq,DateDiff(qq,0,date),0),date)+1 &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: verdana"&gt;&lt;span style="color: #3333ff"&gt;as&lt;/span&gt; Month_Number_Of_Quarter &lt;/span&gt;  &lt;br /&gt;&lt;span style="font-family: verdana"&gt;,&lt;span style="color: #cc33cc"&gt;DatePart&lt;/span&gt; (wk, Date) &lt;span style="color: #3333ff"&gt;as&lt;/span&gt; Week_Number_Of_Year &lt;/span&gt;  &lt;br /&gt;&lt;span style="font-family: verdana"&gt;,datediff(wk,dateadd(qq,datediff(qq,0,date),0),date)+1 &lt;span style="color: #3333ff"&gt;as&lt;/span&gt; Week_Number_Of_Quarter &lt;/span&gt;  &lt;br /&gt;&lt;span style="font-family: verdana"&gt;,datediff(wk,dateadd(mm,datediff(mm,0,date),0),date)+1 &lt;span style="color: #3333ff"&gt;as&lt;/span&gt; Week_Number_Of_Month &lt;/span&gt;  &lt;br /&gt;&lt;span style="font-family: verdana"&gt;,&lt;span style="color: #cc33cc"&gt;DatePart&lt;/span&gt; (dy, date) &lt;span style="color: #3333ff"&gt;as&lt;/span&gt; Day_Number_Of_Year &lt;/span&gt;  &lt;br /&gt;&lt;span style="font-family: verdana"&gt;,datediff(dd,dateadd(qq,datediff(qq,0,date),0),date)+1 &lt;span style="color: #3333ff"&gt;as&lt;/span&gt; Day_Number_Of_Quarter &lt;/span&gt;  &lt;br /&gt;&lt;span style="font-family: verdana"&gt;,&lt;span style="color: #cc33cc"&gt;DAY&lt;/span&gt; (date) &lt;span style="color: #3333ff"&gt;as&lt;/span&gt; Day_Number_Of_Month &lt;/span&gt;  &lt;br /&gt;&lt;span style="font-family: verdana"&gt;,&lt;span style="color: #cc33cc"&gt;DatePart&lt;/span&gt; (dw, date) &lt;span style="color: #3333ff"&gt;as&lt;/span&gt; Day_Number_Of_Week &lt;/span&gt;  &lt;br /&gt;&lt;span style="font-family: verdana"&gt;,&lt;span style="color: #cc33cc"&gt;DateName&lt;/span&gt; (mm, date) &lt;span style="color: #3333ff"&gt;as&lt;/span&gt; Month_Name &lt;/span&gt;  &lt;br /&gt;&lt;span style="font-family: verdana"&gt;,&lt;span style="color: #666666"&gt;LEFT&lt;/span&gt; ( &lt;span style="color: #cc33cc"&gt;DateName&lt;/span&gt; (mm, date), 3) Month_Name_Abbreviation &lt;/span&gt;  &lt;br /&gt;&lt;span style="font-family: verdana"&gt;,&lt;span style="color: #cc33cc"&gt;DateName&lt;/span&gt; (dw, date) &lt;span style="color: #3333ff"&gt;as&lt;/span&gt; Day_Name &lt;/span&gt;  &lt;br /&gt;&lt;span style="font-family: verdana"&gt;,&lt;span style="color: #666666"&gt;LEFT&lt;/span&gt; (&lt;span style="color: #cc33cc"&gt;DateName&lt;/span&gt; (dw, date), 3) &lt;span style="color: #3333ff"&gt;as&lt;/span&gt; Day_Name_Abbreviation &lt;/span&gt;  &lt;br /&gt;&lt;span style="font-family: verdana"&gt;,&lt;span style="color: #cc33cc"&gt;CONVERT&lt;/span&gt;(&lt;span style="color: #3333ff"&gt;VarChar&lt;/span&gt;(10),date,112) &lt;span style="color: #3333ff"&gt;as&lt;/span&gt; YYYYMMDD &lt;/span&gt;  &lt;br /&gt;&lt;span style="font-family: verdana"&gt;,&lt;span style="color: #cc33cc"&gt;CONVERT&lt;/span&gt;(&lt;span style="color: #3333ff"&gt;VarChar&lt;/span&gt;(10),date,111) &lt;span style="color: #3333ff"&gt;as&lt;/span&gt; [YYYY/MM/DD] &lt;/span&gt;  &lt;br /&gt;&lt;span style="font-family: verdana"&gt;,&lt;span style="color: #cc33cc"&gt;CONVERT&lt;/span&gt;(&lt;span style="color: #3333ff"&gt;VarChar&lt;/span&gt;(11),date,100) &lt;span style="color: #3333ff"&gt;as&lt;/span&gt; [mon dd yyyy] &lt;/span&gt;  &lt;br /&gt;&lt;span style="font-family: verdana"&gt;,&lt;span style="color: #cc33cc"&gt;CONVERT&lt;/span&gt;(&lt;span style="color: #3333ff"&gt;VarChar&lt;/span&gt;(11),date,120) &lt;span style="color: #3333ff"&gt;as&lt;/span&gt; [yyyy-mm-dd] &lt;/span&gt;  &lt;br /&gt;&lt;span style="font-family: verdana"&gt;&lt;/span&gt;  &lt;br /&gt;&lt;span style="font-family: verdana"&gt;&lt;span style="color: #3333ff"&gt;INTO&lt;/span&gt; TimeDimension &lt;span style="color: #006600"&gt;-- Name of the Table&lt;/span&gt; &lt;/span&gt;  &lt;br /&gt;&lt;span style="font-family: verdana"&gt;&lt;/span&gt;  &lt;br /&gt;&lt;span style="font-family: verdana"&gt;&lt;span style="color: #3333ff"&gt;FROM&lt;/span&gt; Mangal&lt;/span&gt;  &lt;br /&gt;  &lt;br /&gt;&lt;span style="font-family: verdana"&gt;&lt;span style="color: #3333ff"&gt;OPTION&lt;/span&gt; (&lt;span style="color: #3333ff"&gt;MAXRECURSION&lt;/span&gt; 0) &lt;/span&gt;  &lt;br /&gt;&lt;span style="font-family: verdana"&gt;&lt;/span&gt;  &lt;br /&gt;&lt;span style="font-family: verdana"&gt;&lt;span style="color: #006600"&gt;---- Script Ends Here ----&lt;/span&gt; &lt;/span&gt;  &lt;br /&gt;&lt;span style="font-family: verdana"&gt;&lt;/span&gt;&lt;span style="font-family: verdana"&gt;Now your TimeDimension is ready. Do a simple &lt;/span&gt;  &lt;br /&gt;&lt;span style="font-family: verdana"&gt;&lt;span style="color: #3333ff"&gt;SELECT &lt;/span&gt;* &lt;span style="color: #3333ff"&gt;FROM&lt;/span&gt; TimeDimension&lt;/span&gt;  &lt;br /&gt;&lt;span style="font-family: verdana"&gt;for a check.&lt;/span&gt;  &lt;br /&gt;&lt;span style="font-family: verdana"&gt;Hopefully you will find this script helpful. Any questions and suggestions are welcome. &lt;/span&gt;  &lt;br /&gt;&lt;span style="font-family: verdana"&gt;&lt;span style="color: #993399"&gt;- Mangal Pardeshi.     &lt;br /&gt;&lt;/span&gt;    &lt;br /&gt;    &lt;br /&gt;    &lt;br /&gt;    &lt;br /&gt;    &lt;br /&gt;    &lt;br /&gt;    &lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: verdana"&gt;&lt;/span&gt;&lt;span style="font-family: verdana"&gt;&lt;/span&gt;&lt;span style="font-family: verdana"&gt;&lt;/span&gt;&lt;span style="font-family: verdana"&gt;&lt;/span&gt;&lt;span style="font-family: verdana"&gt;&lt;/span&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8585649008635531444-2930284776411315287?l=mangalpardeshi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mangalpardeshi.blogspot.com/feeds/2930284776411315287/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://mangalpardeshi.blogspot.com/2008/12/how-to-create-time-dimension-in-sql.html#comment-form' title='8 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8585649008635531444/posts/default/2930284776411315287'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8585649008635531444/posts/default/2930284776411315287'/><link rel='alternate' type='text/html' href='http://mangalpardeshi.blogspot.com/2008/12/how-to-create-time-dimension-in-sql.html' title='How to create a time dimension in SQL Server'/><author><name>Mangal Pardeshi</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_weIRgO4yuTo/SzSmWMjAwJI/AAAAAAAAAKs/DgpUWlN5KZY/S220/y1m_Ev9g6OBzqJR8Z6lhdhzgWZ-bl8WwBuhHkrErOHngc14s42YU23gTajpglsbRjABGlnSHh-wUfbGievoo7soxuBY9uSp1K1I.jpg'/></author><thr:total>8</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8585649008635531444.post-2282219014725411973</id><published>2008-12-03T21:49:00.000+05:30</published><updated>2009-03-10T15:30:30.144+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='FAQ'/><category scheme='http://www.blogger.com/atom/ns#' term='T-SQL'/><title type='text'>Saving the Result of a query to a Text File in Sql Server</title><content type='html'>&lt;span style="font-family:verdana;"&gt;After being a part of the Sql Server MSDN forum for a quite a long time, One question I answered many time is “How to save the output of query to a text file in Sql Server?”&lt;br /&gt;So thought of sharing a simple solution with you using BCP utility.&lt;br /&gt;&lt;br /&gt;A simple query to save output of query to a text file is goes like this –&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#3333ff;"&gt;EXEC&lt;/span&gt; master..&lt;span style="color:#660000;"&gt;XP_CmdShell&lt;/span&gt; &lt;span style="color:#cc0000;"&gt;'BCP "SELECT * FROM Database.dbo.TableName" queryout "c:\Mangal.txt" -c -T'&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;If you execute the above query and get the following error –&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#cc0000;"&gt;Msg 15281, Level 16, State 1, Procedure xp_cmdshell, Line 1&lt;br /&gt;SQL Server blocked access to procedure 'sys.xp_cmdshell' of component 'xp_cmdshell' because this component is turned off as part of the security configuration for this server. A system administrator can enable the use of 'xp_cmdshell' by using sp_configure. For more information about enabling 'xp_cmdshell', see "Surface Area Configuration" in SQL Server Books Online.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Then first you need to enable the xp_cmdshell procedure. To enable the xp_cmdshell execute - &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;&lt;br /&gt;&lt;span style="color:#990000;"&gt;sp_configure&lt;/span&gt; &lt;span style="color:#cc0000;"&gt;'show advanced options'&lt;/span&gt;,1&lt;br /&gt;GO&lt;br /&gt;&lt;span style="color:#3333ff;"&gt;RECONFIGURE&lt;br /&gt;&lt;/span&gt;GO&lt;br /&gt;&lt;span style="color:#990000;"&gt;sp_configure&lt;/span&gt; &lt;span style="color:#660000;"&gt;Xp_CmdShell&lt;/span&gt;,1&lt;br /&gt;GO&lt;br /&gt;&lt;span style="color:#3333ff;"&gt;RECONFIGURE WITH&lt;/span&gt; OVERRIDE&lt;br /&gt;GO&lt;br /&gt;&lt;br /&gt;Again back to BCP, Here&lt;br /&gt;-c : Performs the operation using a character data type. This option does not prompt for each field; it uses char as the storage type, without prefixes and with \t (tab character) as the field separator and \n (new line character) as the row terminator.&lt;br /&gt;&lt;br /&gt;-T : Specifies that the bcp utility connects to SQL Server with a trusted connection using integrated security. The security credentials of the network user, login_id, and password are not required. If –T is not specified, you need to specify –U and –P to successfully log in.&lt;br /&gt;&lt;br /&gt;You can save the file to txt, xls, dbf, xml formats also.&lt;br /&gt;&lt;br /&gt;There are so many other options available with BCP command.&lt;br /&gt;e.g.&lt;br /&gt;With –U and –P you can provide the username and password when you are not using the Windows Authentication (Trusted Connection).&lt;br /&gt;&lt;br /&gt;For more on BCP utility you can read from Microsoft’s Books Online.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms162802.aspx"&gt;BCP Utility Books Online&lt;/a&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;&lt;br /&gt;Idea for this post was just to provide a simple solution on how to save the result of a query to a file?.&lt;br /&gt;&lt;br /&gt;Well there is another way of directly sending the result of query to a file is by setting the “Result To Text” in management studio.&lt;br /&gt;For that do –&lt;br /&gt;Open the Management Studio.&lt;br /&gt;In menu bar click to “Query” &gt;&gt; “Result to” and then select “Result To Text.”&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;Hopefully many of you find this post helpful.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:verdana;"&gt;&lt;/span&gt;&lt;p&gt;&lt;span style="font-family:verdana;"&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:verdana;"&gt;- &lt;span style="font-family:trebuchet ms;font-size:130%;color:#663366;"&gt;&lt;strong&gt;&lt;em&gt;Mangal&lt;/em&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8585649008635531444-2282219014725411973?l=mangalpardeshi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mangalpardeshi.blogspot.com/feeds/2282219014725411973/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://mangalpardeshi.blogspot.com/2008/12/result-of-query-to-file.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8585649008635531444/posts/default/2282219014725411973'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8585649008635531444/posts/default/2282219014725411973'/><link rel='alternate' type='text/html' href='http://mangalpardeshi.blogspot.com/2008/12/result-of-query-to-file.html' title='Saving the Result of a query to a Text File in Sql Server'/><author><name>Mangal Pardeshi</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_weIRgO4yuTo/SzSmWMjAwJI/AAAAAAAAAKs/DgpUWlN5KZY/S220/y1m_Ev9g6OBzqJR8Z6lhdhzgWZ-bl8WwBuhHkrErOHngc14s42YU23gTajpglsbRjABGlnSHh-wUfbGievoo7soxuBY9uSp1K1I.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8585649008635531444.post-4259802221618318679</id><published>2008-11-26T21:22:00.001+05:30</published><updated>2009-01-29T16:11:36.107+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Linked Server'/><title type='text'>Linked Server With Excel.</title><content type='html'>&lt;span style="font-family:verdana;"&gt;In this part I’ll help you in creating a &lt;a href="http://msdn.microsoft.com/en-us/library/ms188279.aspx"&gt;&lt;span style="color:#3333ff;"&gt;Linked Server&lt;/span&gt;&lt;/a&gt; with Excel. Or simply how to import/query Excel in Sql Server.&lt;br /&gt;&lt;br /&gt;In Sql Server 2005 you need to enable the 'Ad Hoc Distributed Queries'. For that first execute the following scripts.&lt;br /&gt;&lt;span style="color:#660000;"&gt;sp_configure&lt;/span&gt; &lt;span style="color:#cc0000;"&gt;'show advanced options'&lt;/span&gt;, 1&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;GO&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;&lt;span style="color:#3333ff;"&gt;RECONFIGURE WITH&lt;/span&gt; OverRide&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;GO&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;&lt;span style="color:#660000;"&gt;sp_configure&lt;/span&gt; &lt;span style="color:#cc0000;"&gt;'Ad Hoc Distributed Queries'&lt;/span&gt;, 1&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;GO&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;&lt;span style="color:#3333ff;"&gt;RECONFIGURE WITH&lt;/span&gt; OverRide&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;GO&lt;br /&gt;&lt;br /&gt;And now here go&lt;br /&gt;1.&lt;br /&gt;&lt;span style="color:#3333ff;"&gt;SELECT&lt;/span&gt; * &lt;span style="color:#3333ff;"&gt;FROM OPENDATASOURCE &lt;/span&gt;(&lt;span style="color:#ff0000;"&gt;'Microsoft.Jet.OLEDB.4.0'&lt;/span&gt;, &lt;span style="color:#ff0000;"&gt;'Data Source=E:\Mangal.xls;Extended Properties=Excel 8.0'&lt;/span&gt;)...Sheet1$&lt;br /&gt;2.&lt;br /&gt;&lt;span style="color:#3333ff;"&gt;SELECT&lt;/span&gt; * &lt;span style="color:#3333ff;"&gt;FROM OPENROWSET &lt;/span&gt;( &lt;span style="color:#ff0000;"&gt;'Microsoft.Jet.OLEDB.4.0'&lt;/span&gt;,&lt;br /&gt;&lt;span style="color:#ff0000;"&gt;'Excel 8.0;Database=E:\Mangal.xls'&lt;/span&gt;, Sheet1$)&lt;br /&gt;3.&lt;br /&gt;&lt;span style="color:#3333ff;"&gt;SELECT&lt;/span&gt; * &lt;span style="color:#3333ff;"&gt;FROM OPENROWSET &lt;/span&gt;( &lt;span style="color:#ff0000;"&gt;'Microsoft.Jet.OLEDB.4.0'&lt;/span&gt;, &lt;span style="color:#ff0000;"&gt;'Excel 8.0;Database=E:\Mangal.xls'&lt;/span&gt;, &lt;span style="color:#ff0000;"&gt;'SELECT * FROM [Sheet1$]'&lt;/span&gt;)&lt;br /&gt;&lt;br /&gt;Here &lt;span style="color:#cc0000;"&gt;Excel 8.0&lt;/span&gt; means this is applicable to Excel 2002, Excel 2000, or Excel 97 workbook.&lt;br /&gt;Database means path of your excel book and its name. &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;&lt;br /&gt;Now you can do any Sql query with excel that you usualy do with any table. For example you can join excel with other tables, you can insert excel rows in other tables.&lt;br /&gt;Lets say you want to insert first 3 columns of Excel sheet into table Customers.&lt;br /&gt;You can do&lt;br /&gt;&lt;span style="color:#3333ff;"&gt;INSERT INTO&lt;/span&gt; customers (CustId, CustomerName, Address )&lt;br /&gt;&lt;span style="color:#3333ff;"&gt;SELECT&lt;/span&gt; Custid, CustomerName, Address&lt;br /&gt;&lt;span style="color:#3333ff;"&gt;FROM OPENROWSET&lt;/span&gt; ( &lt;span style="color:#ff0000;"&gt;'Microsoft.Jet.OLEDB.4.0'&lt;/span&gt;, &lt;span style="color:#ff0000;"&gt;'Excel 8.0; Database=E:\Mangal.xls'&lt;/span&gt;,&lt;span style="color:#ff0000;"&gt; 'SELECT * FROM [Sheet1$]'&lt;/span&gt;)&lt;br /&gt;&lt;br /&gt;Or to join a table with Excel&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#3333ff;"&gt;SELECT&lt;/span&gt; A.ColumnName, E.ColumnName&lt;br /&gt;&lt;span style="color:#3333ff;"&gt;FROM OPENROWSET &lt;/span&gt;( &lt;span style="color:#ff0000;"&gt;'Microsoft.Jet.OLEDB.4.0'&lt;/span&gt;,&lt;br /&gt;&lt;span style="color:#ff0000;"&gt;'Excel 8.0;Database=E:\Mangal.xls'&lt;/span&gt;, &lt;span style="color:#ff0000;"&gt;'SELECT * FROM [Sheet1$]' &lt;/span&gt;) E&lt;br /&gt;&lt;span style="color:#333333;"&gt;INNER JOIN&lt;/span&gt; Sql_Table A&lt;br /&gt;&lt;span style="color:#3333ff;"&gt;ON&lt;/span&gt; a.id=e.id&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:georgia;color:#cc0000;"&gt;&lt;em&gt;- Mangal Pardeshi.&lt;/em&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8585649008635531444-4259802221618318679?l=mangalpardeshi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mangalpardeshi.blogspot.com/feeds/4259802221618318679/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://mangalpardeshi.blogspot.com/2008/11/linked-server-with-excel.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8585649008635531444/posts/default/4259802221618318679'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8585649008635531444/posts/default/4259802221618318679'/><link rel='alternate' type='text/html' href='http://mangalpardeshi.blogspot.com/2008/11/linked-server-with-excel.html' title='Linked Server With Excel.'/><author><name>Mangal Pardeshi</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_weIRgO4yuTo/SzSmWMjAwJI/AAAAAAAAAKs/DgpUWlN5KZY/S220/y1m_Ev9g6OBzqJR8Z6lhdhzgWZ-bl8WwBuhHkrErOHngc14s42YU23gTajpglsbRjABGlnSHh-wUfbGievoo7soxuBY9uSp1K1I.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8585649008635531444.post-5699701712252369821</id><published>2008-11-23T17:02:00.000+05:30</published><updated>2009-02-09T15:42:57.183+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Admin'/><title type='text'>Some Useful Views And SPs in Sql Server.</title><content type='html'>&lt;span style="font-family:verdana;"&gt;Here is the good collection of views and Store Procedure which can be very useful. &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;Applicable for Sql Server 2005 and +&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;em&gt;&lt;span style="font-family:verdana;"&gt;VIEWS : To use all the views you just need to do SELECT * FROM VIEW_NAME&lt;/span&gt;&lt;/em&gt;&lt;br /&gt;&lt;em&gt;&lt;span style="font-family:verdana;"&gt;e.g &lt;/span&gt;&lt;/em&gt;&lt;em&gt;&lt;span style="font-family:verdana;"&gt;SELECT * FROM sys.databases&lt;/span&gt;&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-family:verdana;color:#006600;"&gt;sys.databases : &lt;span style="color:#000000;"&gt;Lists all the databases in Sql Server.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:verdana;color:#006600;"&gt;sys.tables : &lt;span style="color:#000000;"&gt;Lists all the Tables in the database.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:verdana;"&gt;&lt;span style="color:#006600;"&gt;sys.views :&lt;/span&gt; Lists all the views in the database.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:verdana;"&gt;&lt;span style="color:#006600;"&gt;sys.procedures :&lt;/span&gt; Lists all the Procedures in the database.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:verdana;"&gt;&lt;span style="color:#006600;"&gt;sys.triggers :&lt;/span&gt; Lists all the Triggers in the database.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;span style="font-family:Verdana;"&gt;&lt;/span&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-family:verdana;"&gt;&lt;span style="color:#006600;"&gt;sys.columns :&lt;/span&gt; Lists all the columns of tables in database.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:verdana;"&gt;&lt;span style="color:#006600;"&gt;sys.syscolumns :&lt;/span&gt; Lists all the columns in database including of those SP.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:verdana;"&gt;&lt;span style="color:#006600;"&gt;sys.key_constraints :&lt;/span&gt; Lists all primary key or unique constraints in database. For primary key TYPE = 'PK' and for unique keys TYPE = 'UQ'&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:verdana;"&gt;&lt;span style="color:#006600;"&gt;sys.check_constraints :&lt;/span&gt; Lists all the Check Constraints in the database.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:verdana;"&gt;&lt;span style="color:#006600;"&gt;sys.default_constraints :&lt;/span&gt; Lists all the Default Constarints in the database.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:verdana;"&gt;&lt;span style="color:#006600;"&gt;sys.foreign_keys :&lt;/span&gt; Lists all the Foreign Keys in the database.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-family:verdana;"&gt;&lt;span style="color:#006600;"&gt;sys.syslogins :&lt;/span&gt; Lists all the login names in server.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:verdana;"&gt;&lt;span style="color:#006600;"&gt;sys.sql_logins :&lt;/span&gt; Lists all the Sql Authentication Logins in server.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:verdana;"&gt;&lt;span style="color:#006600;"&gt;sys.sysusers :&lt;/span&gt; Lists all the users in database.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-family:verdana;color:#006600;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Verdana;color:#006600;"&gt;-- I'll Add some more very soon.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:georgia;color:#cc0000;"&gt;&lt;em&gt;- Mangal Pardeshi.&lt;/em&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8585649008635531444-5699701712252369821?l=mangalpardeshi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mangalpardeshi.blogspot.com/feeds/5699701712252369821/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://mangalpardeshi.blogspot.com/2008/11/some-useful-views-and-sps-in-sql-server.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8585649008635531444/posts/default/5699701712252369821'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8585649008635531444/posts/default/5699701712252369821'/><link rel='alternate' type='text/html' href='http://mangalpardeshi.blogspot.com/2008/11/some-useful-views-and-sps-in-sql-server.html' title='Some Useful Views And SPs in Sql Server.'/><author><name>Mangal Pardeshi</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_weIRgO4yuTo/SzSmWMjAwJI/AAAAAAAAAKs/DgpUWlN5KZY/S220/y1m_Ev9g6OBzqJR8Z6lhdhzgWZ-bl8WwBuhHkrErOHngc14s42YU23gTajpglsbRjABGlnSHh-wUfbGievoo7soxuBY9uSp1K1I.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8585649008635531444.post-3846706006204876142</id><published>2008-11-22T23:00:00.000+05:30</published><updated>2009-02-20T10:47:13.858+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Admin'/><title type='text'>Sql Server Connection Issues - Msg 18456</title><content type='html'>&lt;span style="font-family:verdana;"&gt;Now I'll try to help you understand the connection issues with Sql Server.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;Today we will focus on the error&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;"Msg 18456, Level 14, State 1, Server &lt;computer_name&gt;, Line 1"&lt;br /&gt;"Login failed for user '&lt;user_name&gt;'."&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;This error is nothing but an authentication failure that involves a bad password or user name. So whenever you get a similar error be sure that is somthing related to user name or password.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;And key to solve the issue is STATE number you get in the error.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-family:verdana;"&gt;2 and 5 : Invalid userid.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:verdana;"&gt;6 : Attempt to use a Windows login name with SQL Authentication.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:verdana;"&gt;7 : Login disabled and password mismatch.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:verdana;"&gt;8 : Password mismatch.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:verdana;"&gt;9 : Invalid password.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:verdana;"&gt;11 and 12 : Valid login but server access failure.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:verdana;"&gt;13 : SQL Server service paused.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:verdana;"&gt;16 : User don't have permission to log into Server.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:verdana;"&gt;18 : Change password required.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;span style="font-family:verdana;"&gt;And as it seems you get the error Msg 18456 when you trying to connect Sql server in Sql Authentication.&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family:Verdana;"&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family:Verdana;"&gt;Some points I like to add....&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family:verdana;"&gt;State 23 : Is one of the very rare errors, normaly happens when you try to connect to server when it is shutting down.&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family:verdana;"&gt;States 11 and 12 : When the Windows user trying to access the server and he doesn't have rights. Chances are you are on Windows Vista :).&lt;/span&gt; &lt;/p&gt;&lt;p align="left"&gt; &lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family:georgia;color:#cc0000;"&gt;&lt;em&gt;- Mangal Pardeshi.&lt;/em&gt;&lt;/span&gt;&lt;/p&gt;&lt;span style="font-family:verdana;"&gt;&lt;/span&gt;&lt;div align="left"&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-family:verdana;"&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8585649008635531444-3846706006204876142?l=mangalpardeshi.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mangalpardeshi.blogspot.com/feeds/3846706006204876142/comments/defau
