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