RE:RE:Rre Горю!!! Помогите сделать запрос
От: beginner  
Дата: 24.03.02 09:21
Оценка:
Самый извратный вариант, который сходу приходит в голову:

DECLARE @DATE Date, @NAME VarChar(20), @MINTIME Time 

DECLARE MyCursor CURSOR FOR SELECT DISTINCT Name, Date FROM Table1  
 
OPEN MyCursor

WHILE (1=1)
 BEGIN
  FETCH NEXT FROM MyCursor INTO @NAME, @DATE 
  IF (@FETCH_STATUS <> -1)
   BEGIN
     SELECT @MINTIME = MIN([Time]) FROM Table1  
     DELETE FROM Table1 WHERE 
         ([NAME] = @Name) AND 
         ([DATE] = @Date) AND 
         ([TIME] > @Time)  
   END  
  ELSE BREAK
 END

CLOSE MyCursor
DEALLOCATE MyCursor


Не знаю, будет работать или нет. Я далеко не асс в T-SQL
Удачи!


Здравствуйте bralgin, Вы писали:

B>Здравствуйте

B>Горю, программу еще неделю назад надо было сдать

B>Вопрос:

B>Используется MS SQL2000 Server
B>Есть таблица "Table"
B>-----------------------------
B>Name : Date : Time
B>-----------------------------
B>sveta 4 Mar 2002 08:50:50 *
B>bis 4 Mar 2002 08:51:08
B>marina 4 Mar 2002 08:52:27
B>diana 4 Mar 2002 08:53:12 **
B>sveta 4 Mar 2002 10:50:50 *
B>diana 4 Mar 2002 11:00:12 **
B>sveta 4 Mar 2002 13:50:50 *
B>ajamal 4 Mar 2002 13:54:23
B> ... ..... .....
B>diana 5 Mar 2002 08:40:12 **
B>Shae 5 Mar 2002 08:54:20
B>sveta 5 Mar 2002 08:50:50 *
B>diana 5 Mar 2002 09:40:12 **
B>-----------------------------
B>* sveta — 4 мар появлялась 3 раза + 1 раз 5 мар
B>** diana — 4 мар появлялась 2 раза + 2 раза 5 мар

B>Как обрботать эту таблицу, чтобы у каждого пользователя для каждой даты оставалась только одна запись, с самым раним временем, остальные удалялись.

B>-----------------------------
B>Name : Date : Time
B>-----------------------------
B>sveta 4 Mar 2002 08:50:50 *
B>bis 4 Mar 2002 08:51:08
B>marina 4 Mar 2002 08:52:27
B>diana 4 Mar 2002 08:53:12 **
B>Shae 4 Mar 2002 08:54:20
B>ajamal 4 Mar 2002 13:54:23
B> ... ..... .....
B>diana 5 Mar 2002 08:40:12 **
B>Shae 5 Mar 2002 08:54:20
B>sveta 5 Mar 2002 08:50:50 *
B>-----------------------------
B>* sveta — 4 мар, 5 Мар осталась по 1 раз с самым раним временем
B>** diana — 4 мар, 5 мар осталась по 1 раз с самым раним временем

B>Можно ли это сделать только с помощью SQL (transact-SQL)?


B>Заранее спасибо!


B>Игорь Бралгин


15.09.03 11:50: Ветка выделена из темы Горю!!! Помогите сделать запрос
Автор: VCoder
Дата: 28.05.03
— _MM_
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.