Имя: Пароль:
1C
 
cross apply
0 Raxla
 
06.11.10
14:56
чем можно заменить в 1С инструкцию sql: cross apply ?
1 NcSteel
 
06.11.10
14:59
Давай пример что хочешь получить и из чего.
2 IamAlexy
 
06.11.10
15:02
одним запросом вроде никак..
3 NcSteel
 
06.11.10
15:04
(2) Извратиться всегда можно .
4 IamAlexy
 
06.11.10
15:06
да я вот над примерчиком подумал из http://msdn.microsoft.com/ru-ru/library/ms175156.aspx

вроде особо не извратишся... всех подчиненных одним запросом вроде не вытащить
5 Raxla
 
06.11.10
15:06
select * from
Tab t1 cross apply
(
  select top 1
  from Tab t2
  where t2.Time > t1.Time and abs(t2.Val-t1.Val) > @diff
  order by t2.Time asc
) t2

Пытаюсь сделать такую вещь:
таблица: время, значение

надо найти минимальный интервал, на котором значения будут разниться больше чем некоторая величина. Для каждой строки, можно ен по всем данным, а по нескольким вперёд (30 скажем) Мне вот такой запрос подсказали, но никгода раньше с cross у меня дел не было. Вот что пишут про него:

CROSS APPLY формирует уникальную пару каждого элемента коллекции слева с элементом коллекции, полученным путем вычисления выражения справа.При использовании оператора CROSS APPLY, выражение справа функционально зависимо от элемента слева, как показано в следующем примере связанной коллекции:

SELECT c, f FROM C AS c CROSS APPLY c.Assoc AS f

Поведение CROSS APPLY аналогично поведению списка соединения.Если выражение справа принимает значение пустой коллекции, оператор CROSS APPLY не формирует пар для этого экземпляра элемента слева.
6 IamAlexy
 
06.11.10
15:19
пакетный запрос?
сначала сделать выборку по условию а затем эту выборку цеплять к нужной таблице?
7 acsent
 
06.11.10
15:38
дважды левое соединение. классический срез последних