Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Почему не хочет работт RTRIM в "SELECT" и "GROUP BY" / 10 сообщений из 10, страница 1 из 1
13.12.2005, 15:37
    #33433485
Pvase
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему не хочет работт RTRIM в "SELECT" и "GROUP BY"
Подключаюсь по OLE DB (VFP 9.0)
Пытаюсь выполнить вот такой запрос:
Код: plaintext
1.
2.
3.
4.
SELECT RTRIM(SP274) As NameC
FROM SC73
GROUP BY RTRIM(SP274)
ORDER BY RTRIM(SP274)
(запрос конечно не весь, но ошибка именно в функции RTRIM, так как без нее запрос выполняется).
В ответ получаю: "CommandText::Execute(): SQL: Column '' is not found."

Может проблема в том, что эта функция не умеет обрабатывать пустые значения (NULL)?
...
Рейтинг: 0 / 0
13.12.2005, 15:45
    #33433508
Starpom
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему не хочет работт RTRIM в "SELECT" и "GROUP BY"
...
Group by NameC

И будет тебе счастье :-)
...
Рейтинг: 0 / 0
13.12.2005, 15:56
    #33433535
Владимир СА
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему не хочет работт RTRIM в "SELECT" и "GROUP BY"
PvaseПодключаюсь по OLE DB (VFP 9.0)
Пытаюсь выполнить вот такой запрос:
Код: plaintext
1.
2.
3.
4.
SELECT RTRIM(SP274) As NameC
FROM SC73
GROUP BY RTRIM(SP274)
ORDER BY RTRIM(SP274)
(запрос конечно не весь, но ошибка именно в функции RTRIM, так как без нее запрос выполняется).
В ответ получаю: "CommandText::Execute(): SQL: Column '' is not found."

Может проблема в том, что эта функция не умеет обрабатывать пустые значения (NULL)?
RTRIM() надо убрать, длина поля начинает вычислять уже при первой записи, а она у тебя 0. Вот и ошибка.
...
Рейтинг: 0 / 0
13.12.2005, 16:07
    #33433579
Владимир СА
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему не хочет работт RTRIM в "SELECT" и "GROUP BY"
Вот код:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
CREATE CURSOR SC73 (SP274 C( 10 ) NULL, p2 C( 10 ) NOT NULL DEFAULT "")
INSERT INTO SC73 (p2) VALUES ("qwerqw")
INSERT INTO SC73 (SP274, p2) VALUES ("йцукйцу","qwerqw")
INSERT INTO SC73 (SP274) VALUES ("123")

SELECT SP274 As NameC ;
FROM SC73;
GROUP BY SP274;
ORDER BY SP274 INTO CURSOR Cur001


SELECT RTRIM(SP274) As NameC ;
FROM SC73;
GROUP BY RTRIM(SP274);
ORDER BY RTRIM(SP274)
При получении Cur001 ошибки не выдает, а при работе второго запроса выскакивает ошибка.
...
Рейтинг: 0 / 0
14.12.2005, 01:42
    #33434540
Igor Korolyov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему не хочет работт RTRIM в "SELECT" и "GROUP BY"
Hi Pvase!

1) Боюсь что без CAST (RTRIM() ... AS varchar(200)) AS NewField работать не
будет - в фоксе по умолчанию все поля имеют фиксированный размер, и в лучшем
случае "простой" RTRIM() приведёт к тому, что все поля получат тот размер
что будет у поля первой записи при применении к ней этой функции - если
размер будет маленький - прочие поля урежутся, если там вообще NULL или
пустое поле - то даже не знаю каких нехороших последствий стоит ждать...
2) Попробуй обращаться из GROUP и ORDER по номеру поля - т.е. GROUP BY 1
ORDER BY 1

Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
15.12.2005, 18:46
    #33439179
AndreTM
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему не хочет работт RTRIM в "SELECT" и "GROUP BY"
> SELECT RTRIM(SP274) As NameC ;
> FROM SC73;
> GROUP BY RTRIM(SP274);
> ORDER BY RTRIM(SP274)

1) А зачем вообще нужен RTRIM() в этой выборке (ведь он действительно
обрежет ширину колонки по первому значению в курсоре)
2) GROUP, ORDER действительно нужно делать через номер колонки
...
Рейтинг: 0 / 0
15.12.2005, 18:47
    #33439181
AndreTM
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему не хочет работт RTRIM в "SELECT" и "GROUP BY"
> SELECT RTRIM(SP274) As NameC ;
> FROM SC73;
> GROUP BY RTRIM(SP274);
> ORDER BY RTRIM(SP274)

1) А зачем вообще нужен RTRIM() в этой выборке (ведь он действительно
обрежет ширину колонки по первому значению в курсоре)
2) GROUP, ORDER действительно нужно делать через номер колонки
...
Рейтинг: 0 / 0
16.12.2005, 16:19
    #33441316
&&&
&&&
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему не хочет работт RTRIM в "SELECT" и "GROUP BY"
PvaseПодключаюсь по OLE DB (VFP 9.0)
Пытаюсь выполнить вот такой запрос:
Код: plaintext
1.
2.
3.
4.
SELECT RTRIM(SP274) As NameC
FROM SC73
GROUP BY RTRIM(SP274)
ORDER BY RTRIM(SP274)
(запрос конечно не весь, но ошибка именно в функции RTRIM, так как без нее запрос выполняется).
В ответ получаю: "CommandText::Execute(): SQL: Column '' is not found."

Может проблема в том, что эта функция не умеет обрабатывать пустые значения (NULL)?

Код: plaintext
1.
2.
3.
4.
SELECT Padr(RTRIM(SP274), 50 ) As NameC
FROM SC73
GROUP BY Padr(RTRIM(SP274), 50 )
ORDER BY Padr(RTRIM(SP274), 50 )
...
Рейтинг: 0 / 0
20.12.2005, 19:51
    #33447700
AndreTM
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему не хочет работт RTRIM в "SELECT" и "GROUP BY"
select max(len(trim(sp274))) as max_len_sp274 from sc73 into cursor cur_sc73
m.max_len_sp274=cur_sc73.max_len_sp274
use
select padr(sp274,m.max_len_sp274) as NameC;
from sc73;
group by 1;
order by 1 into cursor Cur001
...
Рейтинг: 0 / 0
20.12.2005, 19:52
    #33447701
AndreTM
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему не хочет работт RTRIM в "SELECT" и "GROUP BY"
select max(len(trim(sp274))) as max_len_sp274 from sc73 into cursor cur_sc73
m.max_len_sp274=cur_sc73.max_len_sp274
use
select padr(sp274,m.max_len_sp274) as NameC;
from sc73;
group by 1;
order by 1 into cursor Cur001
...
Рейтинг: 0 / 0
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Почему не хочет работт RTRIM в "SELECT" и "GROUP BY" / 10 сообщений из 10, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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