powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Криво отрабатывает ORDER BY
5 сообщений из 5, страница 1 из 1
Криво отрабатывает ORDER BY
    #38269846
Alex_men
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день уважаемые форумчане.

Есть у меня один запросик...
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
rst.Open "SELECT (convert(nvarchar,dbo.val_op_cont.op_sysdate,108)) as op_sysdate, dbo.oper_type.op_type_txt, dbo.val_op_cont.SotrCod, " & _
                                "dbo.val_op_cont.op_rate, dbo.req_cur1.cur_mcode as cur_mcode_inp, " & _
                                "replace(convert(nvarchar,dbo.val_op_cont.op_in_sum,1),',',' ') AS op_in_sum, dbo.req_curr.cur_mcode as cur_mcode_out, " & _
                                "replace(convert(nvarchar,dbo.val_op_cont.op_out_sum,1),',',' ') AS op_out_sum, dbo.val_op_cont.op_old, " & _
                                "dbo.val_op_cont.win_code, dbo.val_op_cont.op_id, dbo.val_op_cont.op_numb,dbo.val_op_cont.reg_numb, dbo.val_op_cont.id " & _
                            "FROM dbo.req_curr INNER JOIN (dbo.req_cur1 INNER JOIN (dbo.oper_type INNER JOIN dbo.val_op_cont " & _
                                "ON dbo.oper_type.op_code = dbo.val_op_cont.op_type) " & _
                                "ON dbo.req_cur1.cur_code = dbo.val_op_cont.op_in_val) " & _
                                "ON dbo.req_curr.cur_code = dbo.val_op_cont.op_out_val " & _
                            "Where dbo.val_op_cont.op_sysdate > '" & op_dat & "' " & _
                                " AND (dbo.val_op_cont.op_old='' or dbo.val_op_cont.op_old is null) " & _
                                "AND dbo.val_op_cont.win_code='0000' " & _
                            "ORDER BY " & lcl_FldOrder, _
                    Cn, adOpenStatic, adLockReadOnly




В нем для удобства представления данных пользователю использую преобразование даты и сумм. тип сортировки определяется пользователем и в запросе определяется переменной lcl_FldOrder. Все хорошо пока не начинается сортировка по полям op_in_sum и op_out_sum. Если преобразование этих полей убираю - все хорошо, возвращаю - сортировка не работает. Можно это решить без нагромождения вложенных запросов?
...
Рейтинг: 0 / 0
Криво отрабатывает ORDER BY
    #38269890
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
во-первых тут нет никаких вложенных запросов.
во-вторых, если ты сортируешь по op_in_sum, то ты сортируешь по уже преобразованным данным.
Если я правильно понял, что тебе нужно, сделай
Код: sql
1.
replace(convert(nvarchar,dbo.val_op_cont.op_in_sum,1),',',' ') AS op_in_sum_formatted

соответственно, в клиенте оперируй с полем op_in_sum_formatted
а сортировку сделай
Код: sql
1.
ORDER BY dbo.val_op_cont.op_in_sum

тогда будет сортироваться по исходным данным
...
Рейтинг: 0 / 0
Криво отрабатывает ORDER BY
    #38269971
Alex_men
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro,

Да в том то и дело что lcl_FldOrder имеет значение dbo.val_op_cont.op_in_sum.

Единственное сейчас попробую AS op_in_sum заменить к примеру на op_in_sum_1. Может в этом проблема. С другой стороны вложенный запрос уменьшил код на сбор переменной sqlSelectStr.
...
Рейтинг: 0 / 0
Криво отрабатывает ORDER BY
    #38269993
Alex_men
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Alex_men,

Да дело было в том что псевдоним совпадал с именем поля.
...
Рейтинг: 0 / 0
Криво отрабатывает ORDER BY
    #38270024
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ок, но вообще, нахожу странным, что ты этот вопрос задаешь в VB, а не в соответствующем разделе
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Криво отрабатывает ORDER BY
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]