Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / выборка с условием (Помогите) / 12 сообщений из 12, страница 1 из 1
27.01.2004, 12:31
    #32388882
enderl
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
выборка с условием (Помогите)
Как сделать запрос SELECT, в котором сравниволось значение поля в промежуткх значения и присваиволось то в котором оно находится...

например: 10<x<20=>1, 20<x<30=>2, b т.д.
y|x
1|15
2|25
3|35
4|45
5|55

получаться должно...
y|x
1|1
2|2
3|3
4|4
5|5
...
Рейтинг: 0 / 0
27.01.2004, 13:01
    #32388944
funikovyuri
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
выборка с условием (Помогите)
фигня какая-то... :)
...
Рейтинг: 0 / 0
27.01.2004, 13:04
    #32388953
enderl
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
выборка с условием (Помогите)
Ну что тут не понятного... Нужно сформировать запрос Select ... таким обоазом чтобы из первой таблицы получилась вторая(нижняя)!!! :-/
...
Рейтинг: 0 / 0
27.01.2004, 13:07
    #32388963
Анатолий Широков
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
выборка с условием (Помогите)
Что-то вроде этого:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
create cursor range (no i, low i, high i)
insert into range values( 1 ,  10 ,  20 )
insert into range values( 2 ,  20 ,  30 )
insert into range values( 3 ,  30 ,  40 )

select range.no, table.x;
from db!table;
    inner join range table.x >= range.low and table.x < range.high
...
Рейтинг: 0 / 0
27.01.2004, 13:11
    #32388970
funikovyuri
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
выборка с условием (Помогите)
enderl

Из вашего вопроса не ясно откуда должны браться 10, 20, 30 ... ;)


Анатолий Широков

А чем between не устроил?
...
Рейтинг: 0 / 0
27.01.2004, 13:13
    #32388978
enderl
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
выборка с условием (Помогите)
А можно, как-нибудь по другому... вроде IF(a,b,c), если a=true, то a=b, а если а=false, то a=с ?????? МОЖНО как-нибудь так!!!!
...
Рейтинг: 0 / 0
27.01.2004, 13:14
    #32388981
SSV
SSV
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
выборка с условием (Помогите)
Код: plaintext
1.
2.
3.
4.
select x, ;
  int(y/ 10 ) as y ;
from table1 ;
into cursor table2
...
Рейтинг: 0 / 0
27.01.2004, 13:14
    #32388983
Анатолий Широков
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
выборка с условием (Помогите)
2 funikovyuri:

Тем что between представляет предикат попадания элемента в закрытый диапазон, а в запросе я использую полуоткрытый.
...
Рейтинг: 0 / 0
27.01.2004, 13:16
    #32388988
enderl
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
выборка с условием (Помогите)
10, 20, 30 - в условии...
вроде аналага работы SUM, только там должно сравниваться... и возвращаться значения по по результату сравнения....
...
Рейтинг: 0 / 0
27.01.2004, 13:30
    #32389011
enderl
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
выборка с условием (Помогите)
Ладно, а как тогда, если просто сделать, вот так...
Как я уже писал, через If...
IF(a,b,c), если a=true, то a=b, а если а=false, то a=с!!!!
Так вроде можно, только, я команду не помню...

Только для одного промежутка...
...
Рейтинг: 0 / 0
27.01.2004, 13:40
    #32389040
vl2000
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
выборка с условием (Помогите)
Сделай через вызов пользовательской функции:
SELECT field1,analiz(field2) AS zz


Function analiz
parametr nPar
local nRet
nRet=0
Do CASE
CASE nPar>0 AND nPar<=10
nRet=1
....
ENDCASE
RETURN nRet
...
Рейтинг: 0 / 0
27.01.2004, 16:15
    #32389400
andrew_Pr
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
выборка с условием (Помогите)
Так вроде можно, только, я команду не помню...
- Есть такая буква! :)
IIF(lExpression, eExpression1, eExpression2)
Return Values
Character, Numeric, Currency, Date, or DateTime
Parameters
lExpression
Specifies the logical expression that IIF( ) evaluates.
eExpression1, eExpression2
If lExpression evaluates to True (.T.), eExpression1 is returned and
eExpression2 is not evaluated. If lExpression evaluates to False (.F.)
or null (.NULL.), eExpression2 is returned and eExpression1 is not evaluated.
(C) BOL

Ну что тут не понятного... Нужно сформировать запрос Select ... таким обоазом чтобы из первой таблицы получилась вторая(нижняя)!!! :-/
Чтобы из первой получить вторую достаточно
Select x, x as y From table1 ,
но вряд ли ты это имел ввиду.
"Если вы сможете сформулировать свою проблему,
то можно считать, что вы ее уже решили" (С)
...
Рейтинг: 0 / 0
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / выборка с условием (Помогите) / 12 сообщений из 12, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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