<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: Building Ranges using T-SQL</title>
	<atom:link href="http://www.sql-server-performance.com/2011/building-range-using-t-sql/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.sql-server-performance.com/2011/building-range-using-t-sql/</link>
	<description>SQL Server Performance Tuning</description>
	<lastBuildDate>Fri, 17 May 2013 13:31:24 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.5.1</generator>
	<item>
		<title>By: James Tolputt</title>
		<link>http://www.sql-server-performance.com/2011/building-range-using-t-sql/#comment-1052</link>
		<dc:creator>James Tolputt</dc:creator>
		<pubDate>Mon, 19 Dec 2011 12:20:12 +0000</pubDate>
		<guid isPermaLink="false">http://www.sql-server-performance.com/?p=2679#comment-1052</guid>
		<description><![CDATA[If you&#039;re going to use CTE&#039;s it would be easier/more readable to create an aggregate table rather than use recursion:
with runaggs as (
	select
		p1.Prod_ID,
		rtot = isnull(sum(p2.Prod_Qty), 0)
	from product p1
	left join product p2
	on p2.Prod_ID &lt; p1.Prod_ID
	group By p1.Prod_ID
	)
select p.Prod_ID, p.Prod_Name, p.Prod_Qty, rtot,
	MinID = case when Prod_Qty = 0 then null else rtot+1 end,
	MaxID = case when Prod_Qty = 0 then null else rtot+Prod_Qty end
FROM product p
inner join runaggs r on r.Prod_ID = p.Prod_id]]></description>
		<content:encoded><![CDATA[<p>If you&#8217;re going to use CTE&#8217;s it would be easier/more readable to create an aggregate table rather than use recursion:</p>
<p>with runaggs as (<br />
	select<br />
		p1.Prod_ID,<br />
		rtot = isnull(sum(p2.Prod_Qty), 0)<br />
	from product p1<br />
	left join product p2<br />
	on p2.Prod_ID &lt; p1.Prod_ID<br />
	group By p1.Prod_ID<br />
	)<br />
select p.Prod_ID, p.Prod_Name, p.Prod_Qty, rtot,<br />
	MinID = case when Prod_Qty = 0 then null else rtot+1 end,<br />
	MaxID = case when Prod_Qty = 0 then null else rtot+Prod_Qty end<br />
FROM product p<br />
inner join runaggs r on r.Prod_ID = p.Prod_id</p>
]]></content:encoded>
	</item>
</channel>
</rss>
