|
Логическая задачка на создание запроса | ☑ | ||
---|---|---|---|---|
0
ProgaN
17.11.11
✎
10:41
|
Условия задачи: Есть список документов.
Док1 от 1 января Док2 от 3 января Док3 от 6 января Док4 от 7 января Док5 от 9 января ... Необходимо получить таблицу (для расчета разницы во времени между документами) типа: ... - Док1 от 1 января Док1 от 1 янврая - Док2 от 3 января Док2 от 3 января - Док3 от 6 января ...и тд Как написать такой запрос? |
|||
1
Feanor
17.11.11
✎
10:42
|
соединения не предлагать?
|
|||
2
ponaroshku
17.11.11
✎
10:42
|
1 день = 1 документ?
|
|||
3
Grusswelle
17.11.11
✎
10:43
|
соединить два запроса, не?
|
|||
4
ProgaN
17.11.11
✎
10:44
|
(1) Соединения в запросе? Предлагать.
(2) Не обязательно, может быть разрыв в секунду. |
|||
5
ProgaN
17.11.11
✎
10:44
|
(3) Возможно, вопрос в том - как?
|
|||
6
Feanor
17.11.11
✎
10:45
|
(4) предлагаю использовать соединения. задача элементарная.
|
|||
7
Reset
17.11.11
✎
10:45
|
Отсутвует условие задачи напрочь.
|
|||
8
Aleks73
17.11.11
✎
10:45
|
вложенный запрос ? если не слишком много вариантов дат.
|
|||
9
ProgaN
17.11.11
✎
10:45
|
(6) Пример в студию. )))
|
|||
10
Рэйв
17.11.11
✎
10:46
|
(0)А запрос обязательно?
Закинул бы в тз с колонками Документ и РазницаПредыдущим, отсортировал по дате, а потом перебором спокойно бы заполнил разницу |
|||
11
Stim213
17.11.11
✎
10:46
|
2 одинаковые таблицы, Табл1 и Табл2
левое соединение по условию НАЧАЛОПЕРИОДА(Док1.Дата,ДЕНЬ) = ДОБАВИТЬКДАТЕ(НАЧАЛОПЕРИОДА(Док2.Дата,ДЕНЬ),ДЕНЬ,1) |
|||
12
andrewks
17.11.11
✎
10:46
|
(0) это абстрактный конь в вакууме, или есть реальная задача? если есть - озвучь
|
|||
13
Feanor
17.11.11
✎
10:48
|
(9) он слишком прост, поэтому мне лениво, а вообще стимка прав в (11), тока зачем добавлять к дате я хз, можно ещё запросом эту разницу в итоге высчитать, ну и сравнивать нужно момент времени по идее
|
|||
14
VVi3ard
17.11.11
✎
10:48
|
В чем проблема? Задача элементарная, делаешь соеденение.
Условие соеденения Т1.Дата < Т2.Дата Потом берешь все поля из т1 и максимум по полю Т2.Дата Получается что для каждой даты из т1 У тебя будет предыдущая дата. |
|||
15
VVi3ard
17.11.11
✎
10:48
|
т.е. сори т1.дата > т2.Дата
|
|||
16
Stepa86
17.11.11
✎
10:49
|
Если делать на СКД, то в 8.2.14 появилась возможность получения значения предыдущей строки
|
|||
17
VVi3ard
17.11.11
✎
10:50
|
т.е. результат будет:
Док1 от 1 января - null Док2 от 3 января - 1 января Док3 от 6 января - 3 января Док4 от 7 января - 6 января Док5 от 9 января - 7 января Ну а дальше считаешь разницу как тебе нужно. |
|||
18
acsent
17.11.11
✎
10:54
|
Классическая задача из разряда "курсы валют на каждую дату документа"
|
|||
19
VVi3ard
17.11.11
✎
10:55
|
На больших объемах >100 000 этот запрос будет не очень оптимален и возможно лучше будет действительно воспользоваться ТЗ или СКД
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |