![]() |
![]() |
![]() |
|
РегистрСведений сортировка | ☑ | ||
---|---|---|---|---|
0
shurik_klgd
18.06.11
✎
03:18
|
Подскажите, почему РС.Штрихкоды (форма списка) сортируется по измерению Штрихкод?
почему-то всегда думал, что там записи идут в порядке добавления в базу. |
|||
1
Nesh
18.06.11
✎
04:31
|
ты не думай, ты пей (С) Наша Раша
на самом деле регистр не периодический и независимый, откуда там появится период(момент добавления в базу)? |
|||
2
shurik_klgd
18.06.11
✎
04:38
|
(1) Порядок добавления в базу я имел ввиду физический (т.е. никакой сортировки нет вообще).
Меня интересует вопрос: откуда сортировка по Штрихкоду идет, почему не по другому какому-то реквизиту? (Владелец, Характеристика, Серия, качество). Ну какое-то объяснение этому должно быть? |
|||
3
shurik_klgd
18.06.11
✎
04:44
|
+(2) Возьмем справочник Номенклатура, там сортировку можно менять: Код, Наименование, Артикул,.. Тут все ясно, сортируется по этим полям,
|
|||
4
shurik_klgd
18.06.11
✎
04:45
|
отом
|
|||
5
shurik_klgd
18.06.11
✎
04:46
|
+(3) Тут все ясно, сортируется по этим полям, потому что они индексные... А в (0) как объяснить...
|
|||
6
shurik_klgd
18.06.11
✎
12:16
|
...
|
|||
7
H A D G E H O G s
18.06.11
✎
12:43
|
Почему то всегда думал, что РС сортируется по возрастанию Измерений, от первого до последниего.
|
|||
8
H A D G E H O G s
18.06.11
✎
12:49
|
SQL «смотрит как-то недовольно, свирепо и в то же время грустно и с недоумением» на автора:
SELECT TOP 20 T1._Fld89, T1._Fld90, T1._Fld91 FROM _InfoRg88 T1 WITH(NOLOCK) ORDER BY (T1._Fld90) ASC, (T1._Fld91) ASC |
|||
9
H A D G E H O G s
18.06.11
✎
12:50
|
НО!
Это в форме списка, то бишь в динамике. В "статике" обычного запроса: ВЫБРАТЬ РегистрСведений1.Измерение1, РегистрСведений1.Измерение2, РегистрСведений1.Ресурс1 ИЗ РегистрСведений.РегистрСведений1 КАК РегистрСведений1 все красиво - в порядке добавления записей, аля: SELECT T1._Fld90, T1._Fld91, T1._Fld89 FROM _InfoRg88 T1 WITH(NOLOCK) |
|||
10
shurik_klgd
18.06.11
✎
13:26
|
(9)
БЕРЕМ УТ, УправлениеРозничнойТорговлей.ПолучитьШтрихКод в которой запрос |ВЫБРАТЬ ПЕРВЫЕ 1 | РегШтрихкоды.ТипШтрихкода, | РегШтрихкоды.Штрихкод |ИЗ | РегистрСведений.Штрихкоды КАК РегШтрихкоды |ГДЕ | РегШтрихкоды.Владелец = &Владелец | И РегШтрихкоды.ЕдиницаИзмерения = &ЕдиницаИзмерения | И РегШтрихкоды.ХарактеристикаНоменклатуры = &ХарактеристикаНоменклатуры | И РегШтрихкоды.СерияНоменклатуры = &СерияНоменклатуры | И РегШтрихкоды.Качество = &Качество Добавляем на товар два разных штрихкода одинакового типа (ЕАН13), все измерения, кроме самого штрихкода одинаковые: первый 2000000000015, второй 1234567890128 Запрос вернет второй штрихкод. Теперь удаляем эти ШК, и добавляем два в таком порядке: первый 1234567890128, второй 2000000000015. Запрос вернет все равно ШК 1234567890128. Вот теперь вопрос: что в запросе подправить чтобы в случае нескольких ШК он возвращал физически созданный первый ШК (ну или последний), а не в порядке возрастания(убывания) самого поля ШК |
|||
11
H A D G E H O G s
18.06.11
✎
13:36
|
не Постгрии случаем?
|
|||
12
shurik_klgd
18.06.11
✎
13:39
|
не, файловая
|
|||
13
Kreont
18.06.11
✎
14:00
|
Есть в SQL-терминах понятия явная/неявная сортировка, хотя для такого простого запроса даже неявная сортировка не должна стартануть. Странно...щас на постгри проверю
|
|||
14
H A D G E H O G s
18.06.11
✎
14:01
|
(13) Там как раз неявная сортировка
|
|||
15
H A D G E H O G s
18.06.11
✎
14:09
|
Все просто - в выборке нет измерений!
|
|||
16
H A D G E H O G s
18.06.11
✎
14:13
|
нет измерений! -> нет ресурсов!
|
|||
17
H A D G E H O G s
18.06.11
✎
14:18
|
Нет ресурсов - SQL юзает IndexScan при выборке - выборка упорядочена по измерениям.
Есть ресурсы - SQL юзает TableScan при выборке - выборка получается "как есть" |
|||
18
H A D G E H O G s
18.06.11
✎
14:19
|
IndexScan по индексу Измерений
_InfoRxxx_ByDims_SRRRRRR |
|||
19
Kreont
18.06.11
✎
14:21
|
+(13) У меня аналогично как в (10)
(17) Чем если не секрет ловишь SQL-запросы? |
|||
20
H A D G E H O G s
18.06.11
✎
14:21
|
Радует:
файловая работает также как SQL Интересует: Как дела в постгри |
|||
21
shurik_klgd
18.06.11
✎
14:22
|
Короче хз почему, но
1) ВЫБРАТЬ РегШтрихкоды.ТипШтрихкода, РегШтрихкоды.Штрихкод, РегШтрихкоды.Владелец ИЗ РегистрСведений.Штрихкоды КАК РегШтрихкоды ГДЕ РегШтрихкоды.Владелец = &Владелец 2) ВЫБРАТЬ РегШтрихкоды.ТипШтрихкода, РегШтрихкоды.Штрихкод, РегШтрихкоды.Владелец ИЗ РегистрСведений.Штрихкоды КАК РегШтрихкоды Результат первого запроса упорядочен по Штрихкод, результат второго запроса НЕ упорядочен, а выводит как есть в таблице физически |
|||
22
H A D G E H O G s
18.06.11
✎
14:22
|
(19) profiler + enterprise manager + execution plan
|
|||
23
Kreont
18.06.11
✎
14:22
|
аналогично неправильно :)
|
|||
24
shurik_klgd
18.06.11
✎
14:24
|
+(21) хотя тут ни в 1) ни 2) ресурсов нету
|
|||
25
H A D G E H O G s
18.06.11
✎
14:26
|
(24) Смотреть план запроса.
|
|||
26
H A D G E H O G s
18.06.11
✎
14:26
|
Сортируйте принудительно!
инфа 100% |
|||
27
H A D G E H O G s
18.06.11
✎
14:33
|
(21) А у меня - оба отсортированны по коду
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |