|
|
|
В запросе выбрать документы с одинаковой датой | ☑ | ||
|---|---|---|---|---|
|
0
Zombi
12.07.12
✎
07:19
|
Написал такой запрос:
ВЫБРАТЬ ПлатежноеПоручениеВходящее.Ссылка КАК Платежка, РеализацияТоваровУслуг.Ссылка КАК Реализация ИЗ Документ.ПлатежноеПоручениеВходящее КАК ПлатежноеПоручениеВходящее ПОЛНОЕ СОЕДИНЕНИЕ Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг ПО ПлатежноеПоручениеВходящее.ДоговорКонтрагента = РеализацияТоваровУслуг.ДоговорКонтрагента А можно ли как то выбрать только те документы, которые были введены в пределах одного дня? |
|||
|
1
France
12.07.12
✎
07:24
|
где документ.дата = ?пределдня..
ну и приведение сделать, чтобы отсечь часы минуты секунды |
|||
|
2
Wobland
12.07.12
✎
07:29
|
(0) да
|
|||
|
3
ДенисЧ
12.07.12
✎
07:52
|
(0) _введены_? Или _имеют дату_ ? Это немного разные вещи :-)
|
|||
|
4
Zombi
12.07.12
✎
07:56
|
(1) Ваши бы мысли выразить примером.
(3) Имеют дату. |
|||
|
5
Sammo
12.07.12
✎
07:56
|
Дата между.
Есть еще вариант привести дату к началу дня, но это некрасиво - не используется индекс по дате |
|||
|
6
ДенисЧ
12.07.12
✎
07:59
|
(4) Тогда
Где НАЧАЛОПЕРИОДА(ПлатежноеПоручениеВходящее.Дата, ДЕНЬ) = НАЧАЛОПЕРИОДА(&ВыбДата, ДЕНЬ) |
|||
|
7
ДенисЧ
12.07.12
✎
08:00
|
ну, или (5).
Хотя я тут не стану пока про индексы ничего говорить, не проводил опытов. |
|||
|
8
Zombi
12.07.12
✎
08:11
|
Может я неправильно изьсняюсь. Мне нужно вывести в запрос только те строки, в которых платежки и реализации имеют дату в пределах одного дня. То есть не параметром я определенную дату задаю и ищу документы за этот день, а ищу операции, когда товар был оплачен и отгружен в один день.
|
|||
|
9
shuhard
12.07.12
✎
08:12
|
(8) для непонятливых:
НАЧАЛОПЕРИОДА(хз.Дата, ДЕНЬ) |
|||
|
10
Zombi
12.07.12
✎
08:16
|
Так?:
ВЫБРАТЬ ПлатежноеПоручениеВходящее.Ссылка КАК Платежка, РеализацияТоваровУслуг.Ссылка КАК Реализация ИЗ Документ.ПлатежноеПоручениеВходящее КАК ПлатежноеПоручениеВходящее ПОЛНОЕ СОЕДИНЕНИЕ Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг ПО ПлатежноеПоручениеВходящее.ДоговорКонтрагента = РеализацияТоваровУслуг.ДоговорКонтрагента ГДЕ НАЧАЛОПЕРИОДА(ПлатежноеПоручениеВходящее.Дата, ДЕНЬ) = НАЧАЛОПЕРИОДА(РеализацияТоваровУслуг.Дата, ДЕНЬ) |
|||
|
11
Zombi
12.07.12
✎
08:17
|
Вроде работает. Спасибо всем!
|
|||
|
12
andrewks
12.07.12
✎
08:17
|
(10) нафига полное соединение? делай внутреннее
|
|||
|
13
shuhard
12.07.12
✎
08:18
|
(12) у ТС цель максимально замедлить работу системы
|
|||
|
14
andrewks
12.07.12
✎
08:18
|
интересно, сегодня отгрузили на 500 тыр, а оплата от клиента пришла 500р. за отгрузку месячной давности
|
|||
|
15
Zombi
12.07.12
✎
08:20
|
(12) Да, щас поменяю на внутреннее, полное делал когда экспериментировал
|
|||
|
16
Zombi
12.07.12
✎
08:23
|
(14) Эт уж бухи разбираться будут. Попросили такой вот отчет в помошь.
|
|||
|
17
butterbean
12.07.12
✎
08:25
|
лучше ПлатежноеПоручениеВходящее.Дата МЕЖДУ &НачД И &КонД
работает гораздо раза быстрее |
|||
|
18
Zombi
12.07.12
✎
08:34
|
(17) Ну сейчас без ограничения периода, то есть по всем документам "Время выплнения запроса: 1 сек."
А где получать параметры &НачД И &КонД? |
|||
|
19
butterbean
12.07.12
✎
08:35
|
(18) это было для примера, в условиях соединения так-же
|
|||
|
20
butterbean
12.07.12
✎
08:36
|
(19)+ хотя если и так 1 секунда, то пох наверно, это на очень больших выборках было бы заметно
|
|||
|
21
Zombi
12.07.12
✎
08:42
|
Так?:
ВЫБРАТЬ ПлатежноеПоручениеВходящее.Ссылка КАК Платежка, РеализацияТоваровУслуг.Ссылка КАК Реализация ИЗ Документ.ПлатежноеПоручениеВходящее КАК ПлатежноеПоручениеВходящее ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг ПО ПлатежноеПоручениеВходящее.ДоговорКонтрагента = РеализацияТоваровУслуг.ДоговорКонтрагента ГДЕ НАЧАЛОПЕРИОДА(ПлатежноеПоручениеВходящее.Дата, ДЕНЬ) МЕЖДУ НАЧАЛОПЕРИОДА(РеализацияТоваровУслуг.Дата, ДЕНЬ) И КОНЕЦПЕРИОДА(РеализацияТоваровУслуг.Дата, ДЕНЬ) |
|||
|
22
butterbean
12.07.12
✎
08:43
|
(21) ГДЕ
ПлатежноеПоручениеВходящее.Дата МЕЖДУ НАЧАЛОПЕРИОДА(РеализацияТоваровУслуг.Дата, ДЕНЬ) И КОНЕЦПЕРИОДА(РеализацияТоваровУслуг.Дата, ДЕНЬ) |
|||
|
23
butterbean
12.07.12
✎
08:44
|
(22)+ и это надо запихнуть в условие соединения
|
|||
|
24
Zombi
12.07.12
✎
08:46
|
ВЫБРАТЬ
ПлатежноеПоручениеВходящее.Ссылка КАК Платежка, РеализацияТоваровУслуг.Ссылка КАК Реализация ИЗ Документ.ПлатежноеПоручениеВходящее КАК ПлатежноеПоручениеВходящее ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг ПО ПлатежноеПоручениеВходящее.ДоговорКонтрагента = РеализацияТоваровУслуг.ДоговорКонтрагента ГДЕ ПлатежноеПоручениеВходящее.Дата МЕЖДУ НАЧАЛОПЕРИОДА(РеализацияТоваровУслуг.Дата, ДЕНЬ) И КОНЕЦПЕРИОДА(РеализацияТоваровУслуг.Дата, ДЕНЬ) |
|||
|
25
butterbean
12.07.12
✎
08:48
|
(24) замени ГДЕ на И
|
|||
|
26
Zombi
12.07.12
✎
08:50
|
(25)
ВЫБРАТЬ ПлатежноеПоручениеВходящее.Ссылка КАК Платежка, РеализацияТоваровУслуг.Ссылка КАК Реализация ИЗ Документ.ПлатежноеПоручениеВходящее КАК ПлатежноеПоручениеВходящее ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг ПО ПлатежноеПоручениеВходящее.ДоговорКонтрагента = РеализацияТоваровУслуг.ДоговорКонтрагента И (ПлатежноеПоручениеВходящее.Дата МЕЖДУ НАЧАЛОПЕРИОДА(РеализацияТоваровУслуг.Дата, ДЕНЬ) И КОНЕЦПЕРИОДА(РеализацияТоваровУслуг.Дата, ДЕНЬ)) Да, наверно так будет оптимальнее. Блин, мне этим запросам учиться и учиться. |
|||
|
27
МихаилМ
12.07.12
✎
08:51
|
(0)
опишите индексы, в которых участвует поля дата |
|||
|
28
Zombi
12.07.12
✎
08:55
|
(27) Поясните, пожалуйста.
|
|||
|
29
МихаилМ
12.07.12
✎
09:10
|
||||
|
30
Zombi
12.07.12
✎
09:52
|
(29) Как в моем случае описать индексы?
|
|||
|
31
Reset
12.07.12
✎
10:04
|
(27) Человек, могущий ответить на этот вопрос, не будет задавать вопрос (0).
Зачем спрашивать? Чтобы с важным видом брякнуть (29)? |
|||
|
32
МихаилМ
12.07.12
✎
10:07
|
(31)
мне интересно какие можно использовать индексы в данной задаче. на вопрос (28) как нужно ответить? |
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |