Guest User

Ungroup for SQL Server 2005

a guest
Dec 17th, 2013
404
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
T-SQL 0.72 KB | None | 0 0
  1. -- ungroup for SQL Server 2005
  2. DECLARE @Table TABLE(id VARCHAR(20), quantity INT)
  3. INSERT INTO @Table SELECT 'foo', 3
  4. INSERT INTO @Table SELECT 'bar', 2
  5.  
  6. ;WITH vals AS (
  7.         SELECT  *
  8.         FROM (SELECT id, quantity FROM @Table) p
  9.         UNPIVOT (Cnt FOR Action IN (quantity)) unpvt
  10.         WHERE Cnt > 0
  11. )
  12. , Recurs AS (
  13.         SELECT  id,
  14.                 Action,
  15.                 Cnt - 1 Cnt
  16.         FROM    vals
  17.         UNION ALL
  18.         SELECT  id,
  19.                 Action,
  20.                 Cnt - 1 Cnt
  21.         FROM    Recurs
  22.         WHERE   Cnt > 0
  23.  
  24. )
  25. SELECT  id,
  26.         (SELECT quantity FROM @Table t WHERE Recurs.id = t.id)
  27.           TotalQuantity --change this
  28. FROM    Recurs
  29. ORDER BY id, action
Advertisement
Add Comment
Please, Sign In to add comment