| 
 | 
| 
 
помогите.......... 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  Есть поле с численными данными.  Как найти максимальную разницу между ближайшими значениями? Причем подобное вычисление надо осуществить в запросе т.е. база удаленная и качать ее всю не резонно. ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 23.09.2002, 11:32 | 
  
  
  
   | 
||
| 
 
помогите.......... 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  Помогли бы, если бы поняли задачу... ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 23.09.2002, 12:10 | 
  
  
  
   | 
||
| 
 
помогите.......... 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  Т.е. надо последновательно сравнить два соседних значения, в том порядке в каком они в идут таблице. Например данные: 1:10 2:20 3:21 4:25 5:28 6:40 мне надо получить: 1:10 (20-10) 2:1 (21-20) 3:4 (25-24) 4:3 (28-25) 5:12 (40-28) ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 23.09.2002, 12:23 | 
  
  
  
   | 
||
| 
 
помогите.......... 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  Да легко! С помощью курсора и временной таблицы. create table #temp(Raznica int) declare AllValues cursor for select ПолеССоседнимиЗначениями from ЕнтаТаблица open AllValues declare @prevValue int, @nextValue int fetch next from AllValues into @prevValue --извлекли 1-ю строку while @@fetch_status=0 begin --бегать по курсору до конца fetch next from AllValues into @nextValue if @@fetch_status=0 --это чтобы не вставлялась лишняя строка при последней итерации insert into #temp(Raznica) values(@nextValue-@prevValue) set @prevValue=@nextValue end close AllValues deallocate AllValues --закрываем курсор и освобождаем после него память select * from #temp --здеся результат drop table #temp вот примерно таким макаром. ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 23.09.2002, 13:11 | 
  
  
  
   | 
||
| 
 
помогите.......... 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  (т. е. для таблицы из 20 строк этот код возвратит 19). ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 23.09.2002, 13:13 | 
  
  
  
   | 
||
| 
 
помогите.......... 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  ой........ sorry........ это для SQL Server хотя курсоры и временные таблицы - вещь стандартная, должны быть и в Oracle ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 23.09.2002, 13:19 | 
  
  
  
   | 
||
| 
 
помогите.......... 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  Ну вобщем весь вопрос состоял в том как это седать не качая всей базы и имея ее только для чтения. Судя по всему нельзя.  А так не хотелось качать 280 тыс. записей чтобы выбрать от туда всего сотню. А имея ее локально задача вообще не предстовляет проблемы. ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 23.09.2002, 14:01 | 
  
  
  
   | 
||
| 
 
помогите.......... 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  Не торопитесь огорчаться, поясните:  1. Так мы с чем имеем дело... MSSQL или Oracle? 2. В вашем примере, что должно вернуться? набор количеством на одну запись меньше чем исходный (из примера это можно так предполагать) или запись 5, т.к. у нее максимальная разность 12. Если бы было несколько записей с одинаковой максимальной разностью, то что? 3. Идентификаторы записей идут подряд или есть пропуски в номерах? Впрочем, важнейшим здесь является вопрос 2. ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 23.09.2002, 14:32 | 
  
  
  
   | 
||
| 
 
помогите.......... 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  1.Мы имеем MSAccess подключенный к MySQL серверу. 2.Вообщето вренуть надо набор значений разностей которые превышают какой либо порог. Т.е. если порог=9 то в данном случае вернется 10,12. 3.Ключевого поля как такового нет вообще. (индекс не построен) А записи берем в порядке убывания (т.е. возвращенное значения всегда положительно либо 0) ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 23.09.2002, 15:23 | 
  
  
  
   | 
||
| 
 
помогите.......... 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  Так я четко всего и не понял, но если добавить в исходную таблицу столбец РК идентити у вас записи пронуменруются и тогда можно сделать так: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. т.е. для вашего примера результат получен... Буду рад, если смог помочь. ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 23.09.2002, 15:55 | 
  
  
  
   | 
||
| 
 | 

start [/forum/topic.php?fid=45&msg=32052398&tid=1683268]:  | 
    0ms | 
get settings:  | 
    9ms | 
get forum list:  | 
    13ms | 
check forum access:  | 
    3ms | 
check topic access:  | 
    3ms | 
track hit:  | 
    63ms | 
get topic data:  | 
    10ms | 
get forum data:  | 
    2ms | 
get page messages:  | 
    51ms | 
get tp. blocked users:  | 
    1ms | 
| others: | 16ms | 
| total: | 171ms | 

| 0 / 0 | 

    Извините, этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
    
    
    «На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
    
    
    ... ля, ля, ля ...