home bbs files messages ]

Forums before death by AOL, social media and spammers... "We can't have nice things"

   comp.databases.ms-sqlserver      Notorious Rube Goldberg contraption      19,505 messages   

[   << oldest   |   < older   |   list   |   newer >   |   newest >>   ]

   Message 17,905 of 19,505   
   Jane TT to All   
   FOR EACH type Statement in SQL Server, S   
   09 Sep 10 19:28:50   
   
   From: janett@aol.com   
      
   Hi, hope someone can help.  Although I have been using SQL for about 10   
   years this problem has really got me stumped.   
      
   I am using SQL Server 2000.   
      
   I want to return the last five weeks data for each employee.  Not all   
   employees are paid each week so I cannot call a set number of weeks.   
      
   I have come up with a way to get this information (see SELECT below) by   
   selecting just one employee but I need the report to include all   
   employees and it is not practical to hard code each employee.   
      
   I need some kind of FOR EACH statement.  I have never used Cursors so I   
   have not tried this route.   
      
   I have created sample data, my data is much more involved with many more   
   employees.  If I can get a query to return this data I will be able to   
   use it.   
      
   Thanks   
      
      
      
   --drop table #employeedata   
   create table #employeedata   
   (    empno        varchar(5),   
        yeara        INT,   
        perioda        INT,   
        value        money   
   )   
      
   INSERT INTO #employeedata VALUES ('10',2010,1,100)   
   INSERT INTO #employeedata VALUES ('10',2010,2,100)   
   INSERT INTO #employeedata VALUES ('10',2010,3,100)   
   INSERT INTO #employeedata VALUES ('10',2010,4,100)   
   INSERT INTO #employeedata VALUES ('10',2010,5,100)   
   INSERT INTO #employeedata VALUES ('10',2010,6,100)   
   INSERT INTO #employeedata VALUES ('10',2010,7,100)   
   INSERT INTO #employeedata VALUES ('10',2010,8,100)   
   INSERT INTO #employeedata VALUES ('10',2010,9,100)   
   INSERT INTO #employeedata VALUES ('10',2010,10,100)   
   INSERT INTO #employeedata VALUES ('20',2010,1,100)   
   INSERT INTO #employeedata VALUES ('20',2010,2,100)   
   INSERT INTO #employeedata VALUES ('20',2010,3,100)   
   INSERT INTO #employeedata VALUES ('20',2010,4,100)   
   INSERT INTO #employeedata VALUES ('20',2010,5,100)   
   INSERT INTO #employeedata VALUES ('20',2010,6,100)   
   INSERT INTO #employeedata VALUES ('20',2010,7,100)   
   INSERT INTO #employeedata VALUES ('20',2010,8,100)   
   INSERT INTO #employeedata VALUES ('20',2010,9,100)   
   INSERT INTO #employeedata VALUES ('20',2010,10,100)   
   INSERT INTO #employeedata VALUES ('30',2010,1,100)   
   INSERT INTO #employeedata VALUES ('30',2010,2,100)   
   INSERT INTO #employeedata VALUES ('30',2010,3,100)   
   INSERT INTO #employeedata VALUES ('30',2010,4,100)   
   INSERT INTO #employeedata VALUES ('30',2010,5,100)   
   INSERT INTO #employeedata VALUES ('30',2010,6,100)   
   INSERT INTO #employeedata VALUES ('30',2010,7,100)   
   INSERT INTO #employeedata VALUES ('30',2010,8,100)   
   INSERT INTO #employeedata VALUES ('30',2010,9,100)   
   INSERT INTO #employeedata VALUES ('30',2010,10,100)   
   INSERT INTO #employeedata VALUES ('40',2010,1,100)   
   INSERT INTO #employeedata VALUES ('40',2010,2,100)   
   INSERT INTO #employeedata VALUES ('40',2010,3,100)   
   INSERT INTO #employeedata VALUES ('40',2010,4,100)   
   INSERT INTO #employeedata VALUES ('40',2010,7,100)   
   INSERT INTO #employeedata VALUES ('40',2010,9,100)   
   INSERT INTO #employeedata VALUES ('50',2010,1,100)   
   INSERT INTO #employeedata VALUES ('50',2010,2,100)   
   INSERT INTO #employeedata VALUES ('50',2010,3,100)   
   INSERT INTO #employeedata VALUES ('50',2010,4,100)   
   INSERT INTO #employeedata VALUES ('50',2010,5,100)   
   INSERT INTO #employeedata VALUES ('50',2010,6,100)   
   INSERT INTO #employeedata VALUES ('50',2010,10,100)   
      
   SELECT TOP 5 empno, yeara * 100 + perioda AS 'period', value   
   FROM #employeedata   
   WHERE empno = '10'   
   ORDER BY yeara * 100 + perioda DESC   
      
   SELECT TOP 5 empno, yeara * 100 + perioda AS 'period', value   
   FROM #employeedata   
   WHERE empno = '50'   
   ORDER BY yeara * 100 + perioda DESC   
      
   --- SoupGate-Win32 v1.05   
    * Origin: you cannot sedate... all the things you hate (1:229/2)   

[   << oldest   |   < older   |   list   |   newer >   |   newest >>   ]


(c) 1994,  bbs@darkrealms.ca