|
Оптимизировать запрос | ☑ | ||
---|---|---|---|---|
0
extrim-style
02.02.12
✎
14:56
|
Можно ли оптимизировать следующий запрос?:
ВЫБРАТЬ ЕСТЬNULL(Границы.ГраницаЗапретаИзменений, &ТекДата) КАК ГраницаЗапретаИзменений, Границы.Пользователь КАК Пользователь ПОМЕСТИТЬ ТЗ ИЗ РегистрСведений.ГраницыЗапретаИзмененияДанных КАК Границы ГДЕ Границы.Организация.Код = "000000002" И (Границы.Пользователь.Код = 2 ИЛИ Границы.Пользователь.Код = 3) ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ МАКСИМУМ(ТЗ.ГраницаЗапретаИзменений) КАК ГраницаЗапретаИзменений ПОМЕСТИТЬ ТЗ2 ИЗ ТЗ КАК ТЗ ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ТЗ.ГраницаЗапретаИзменений, ТЗ.Пользователь ИЗ ТЗ2 КАК ТЗ2 ЛЕВОЕ СОЕДИНЕНИЕ ТЗ КАК ТЗ ПО ТЗ2.ГраницаЗапретаИзменений = ТЗ.ГраницаЗапретаИзменений |
|||
1
НЕА123
02.02.12
✎
14:58
|
Границы.Организация.Код = "000000002"
И (Границы.Пользователь.Код = 2 ИЛИ Границы.Пользователь.Код = 3) |
|||
2
golden-pack
02.02.12
✎
14:59
|
код= .... //ненадо так писать
|
|||
3
DrShad
02.02.12
✎
15:00
|
а сразу выбрать Максимум не?
|
|||
4
le_
02.02.12
✎
15:00
|
Лучше ссылку вместо кода сравнивать.
|
|||
5
Reset
02.02.12
✎
15:01
|
Так --> (3)
|
|||
6
cw014
02.02.12
✎
15:01
|
Жесть запрос
|
|||
7
Mort
02.02.12
✎
15:02
|
Это нужно не оптимизировать, а стереть и забыть как страшный сон.
|
|||
8
extrim-style
02.02.12
✎
15:17
|
(2) всё норм. результат запроса обрабатывается
(3) не получается |
|||
9
DrShad
02.02.12
✎
15:18
|
чукча не читатель - чукча писатель?
|
|||
10
extrim-style
02.02.12
✎
15:24
|
Вот так сразу выбираю масимальное значение, попадает одна запись (как нужно):
ВЫБРАТЬ МАКСИМУМ(ЕСТЬNULL(Границы.ГраницаЗапретаИзменений, &ТекДата)) КАК ГраницаЗапретаИзменений ИЗ РегистрСведений.ГраницыЗапретаИзмененияДанных КАК Границы ГДЕ Границы.Организация.Код = "000000002" И (Границы.Пользователь.Код = 2 ИЛИ Границы.Пользователь.Код = 3) если выбираю еще и пользователя, то попадают 2 записи, как одну отобрать? ВЫБРАТЬ МАКСИМУМ(ЕСТЬNULL(Границы.ГраницаЗапретаИзменений, &ТекДата)) КАК ГраницаЗапретаИзменений, Границы.Пользователь ИЗ РегистрСведений.ГраницыЗапретаИзмененияДанных КАК Границы ГДЕ Границы.Организация.Код = "000000002" И (Границы.Пользователь.Код = 2 ИЛИ Границы.Пользователь.Код = 3) СГРУППИРОВАТЬ ПО Границы.Пользователь |
|||
11
cw014
02.02.12
✎
15:26
|
Суть задачи
|
|||
12
DexterMorgan
02.02.12
✎
15:30
|
(10) Ну так значит не выбирай пользователя, мб? У двух пользователей в РС есть ГраницаЗапретаИЗменений...ИЛИ сортируй по УБЫВ и выбирай первую...че те надо то?
|
|||
13
DexterMorgan
02.02.12
✎
15:31
|
ИЛИ общие итоги
|
|||
14
extrim-style
02.02.12
✎
15:31
|
(11) Есть 2 группы пользователей. Для каждой группы установлена своя дата запрета изменения данных. В запросе необходимо отобрать самую позднюю дату для этих групп и соответствующую этой дате группу.
|
|||
15
extrim-style
02.02.12
✎
15:39
|
Границы.Пользователь - это и есть группа пользователей
|
|||
16
extrim-style
02.02.12
✎
15:41
|
о, кажись понял. отсортировать по возрастанию и выбрать первый 1 =)
|
|||
17
extrim-style
02.02.12
✎
15:43
|
ВЫБРАТЬ ПЕРВЫЕ 1
ЕСТЬNULL(Границы.ГраницаЗапретаИзменений, &ТекДата) КАК ГраницаЗапретаИзменений, Границы.Пользователь ИЗ РегистрСведений.ГраницыЗапретаИзмененияДанных КАК Границы ГДЕ Границы.Организация.Код = "000000002" И (Границы.Пользователь.Код = 2 ИЛИ Границы.Пользователь.Код = 3) УПОРЯДОЧИТЬ ПО ГраницаЗапретаИзменений УБЫВ |
|||
18
DexterMorgan
02.02.12
✎
16:17
|
(17) ЛицоРука
|
|||
19
Широкий
02.02.12
✎
16:22
|
ЕСТЬNULL(Границы.ГраницаЗапретаИзменений, &ТекДата)
И с чего это у тебя NULL То будет? |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |