![]() |
![]() |
![]() |
|
Запрос. Связать две таблицы с учетом уже используемых записей | ☑ | ||
---|---|---|---|---|
0
SeiOkami
04.06.13
✎
10:25
|
Здравия всем!
Дело такое. В запросе получаю две таблицы, которые нужно "состыковать". Но так, чтобы "состыкованные" записи более не подтягивались (не задваивались). Опишу на примере: ВТ_1 Дата Док №Строки Сумма 03.03.13 Док1 1 30р. 04.03.13 Док2 2 30р. 05.03.13 Док3 3 30р. ВТ_2 Дата Док №Строки Сумма 03.03.13 Док4 4 30р. 02.03.13 Док5 5 30р. 01.03.13 Док6 6 30р. В результате должно быть: Дата1 Док1 №Строки1 Сумма1 Дата2 Док2 №Строки2 Сумма2 03.03.13 Док1 1 30р. 03.03.13 Док4 4 30р. 04.03.13 Док2 2 30р. 02.03.13 Док5 5 30р. 05.03.13 Док3 3 30р. 01.03.13 Док6 6 30р. Связь идет по Сумма1 = Сумма2, и по дате. Сначала равные даты, затем Дата1 = (Дата2 - 1)и т.д. При этом должен быть учет уже "состыкованных" записей Сейчас это организованно так. На каждый период стыковки своя временная таблица, которая стыкует по дата1 = (дата2 - N) с исключение записей которые уже есть в предыдущих временных таблицах. Это очень тупо и как-то медленно. Есть какие-нить другие идеи как это организовать в запросе? |
|||
1
zak555
04.06.13
✎
10:26
|
куйня
в одной дате может быть один документ, в другой два, в третьей 8 как будешь выводить ? + у каждого из них разное количество строк |
|||
2
Mitriy
04.06.13
✎
10:27
|
если кто-то что-то понял, поделитесь...
|
|||
3
SeiOkami
04.06.13
✎
10:27
|
(1) по каждому дню одна запись.
|
|||
4
Ненавижу 1С
гуру
04.06.13
✎
10:28
|
ставлю на v8: FIFO в запросе
|
|||
5
SeiOkami
04.06.13
✎
10:28
|
забыл это уточнить)
|
|||
6
SeiOkami
04.06.13
✎
10:30
|
(4), что-то не пойму как это связанно
|
|||
7
zak555
04.06.13
✎
10:31
|
(3) у тебя:
03.03.13 для документа1 выводится строка1 и для документа4 строка4 ? если в документе есть строка4, то там же есть и строка1, строка2, строка3 |
|||
8
SeiOkami
04.06.13
✎
10:33
|
(7) в других строках другие данные, которые мы не берем.
Да, нужно было просто написать так: ВТ_1 Дата Док Сумма 03.03.13 Док1 30р. 04.03.13 Док2 30р. 05.03.13 Док3 30р. ВТ_2 Дата Док Сумма 03.03.13 Док4 30р. 02.03.13 Док5 30р. 01.03.13 Док6 30р. В результате должно быть: Дата1 Док1 Сумма1 Дата2 Док2 Сумма2 03.03.13 Док1 30р. 03.03.13 Док4 30р. 04.03.13 Док2 30р. 02.03.13 Док5 30р. 05.03.13 Док3 30р. 01.03.13 Док6 30р. |
|||
9
SeiOkami
04.06.13
✎
10:33
|
Так проще)
|
|||
10
zak555
04.06.13
✎
10:36
|
как это у документа часть данных в одной ТЧ нужна, а часть не нужна ? о_О
|
|||
11
SeiOkami
04.06.13
✎
10:38
|
(10), блин условия стоят на тип субконто. Суть не в этом, а том как решить (8)
|
|||
12
zak555
04.06.13
✎
10:57
|
(11) делай один запрос к ТЧ с группировками по дате, регистратору
|
|||
13
SeiOkami
04.06.13
✎
11:06
|
(12), ???
это к чему? |
|||
14
SeiOkami
04.06.13
✎
11:23
|
уп
|
|||
15
SeiOkami
04.06.13
✎
11:55
|
1
|
|||
16
Ненавижу 1С
гуру
04.06.13
✎
13:51
|
для 1 набора подбирать во 2 наборе только с непревосходящей датой?
если даты наборов перемешаны? даты набора 2 могут идти позже дат набора 1? если число документов в наборах различно? |
|||
17
Aprobator
04.06.13
✎
14:07
|
(0) по дате связь через одно место сделана.
Стандартно Дата1 >= Дата2. Дальше связь таблицы на саму себя по Сумма и Дата1 (раз один день - одна запись) где Дата2 - максимум. Механизм известен - потому описывать лениво. |
|||
18
Aprobator
04.06.13
✎
14:09
|
а не - не понял сначала. Тут какой то более сложный гемор.
|
|||
19
SeiOkami
04.06.13
✎
15:17
|
(18) тут ужаснейший гемор...
Пока других идей нет( |
|||
20
SeiOkami
04.06.13
✎
16:37
|
уп
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |