Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / опять блин селект / 4 сообщений из 4, страница 1 из 1
12.02.2008, 06:59
    #35125637
q1w1e1
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
опять блин селект
Тут ещё круче создалась ситуация....крутил, вертел не могу никак въехать...
короче есть два поля, ну первое, как всегда, ключевое, по которму группировать надо, а вот во втором поле надо вычислить максимальное и минимальное значение по чётным и не чётным номерам...
ну типа , а должны получить на выходе

p1 p2 p1 p2_min_чёт p2_max_чёт p2_min_нечёт p2_max_нечёт
1 1 1 2 6 1 5
1 2 2 2 6 1 5
1 3
1 4
1 5
1 6
2 1
2 2
2 3
2 4
2 5
2 6
...
Рейтинг: 0 / 0
12.02.2008, 07:25
    #35125655
Galyamov Rinat
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
опять блин селект
"q1w1e1" <nospam@sql.ru>; сообщил/сообщила в новостях следующее:
news:5274643@sql.ru...
> Автор: q1w1e1
> Тут ещё круче создалась ситуация....крутил, вертел не могу никак
> въехать...
> короче есть два поля, ну первое, как всегда, ключевое, по которму
> группировать надо, а вот во втором поле надо вычислить максимальное и
> минимальное значение по чётным и не чётным номерам...
> ну типа , а должны получить на выходе


> p1 p2 p1 p2_min_чёт p2_max_чёт p2_min_нечёт p2_max_нечёт
> 1 1 1 2 6 1 5
> 1 2 2 2 6 1 5

Неужели вместо этого:

> 1 3
> 1 4
> 1 5
> 1 6
> 2 1
> 2 2
> 2 3
> 2 4
> 2 5
> 2 6
Сложно написать вот это: ?????????
CREATE CURSOR test (p1 i, p2 i)

INSERT INTO test (p1, p2) VALUES (1, 3)

INSERT INTO test (p1, p2) VALUES (1, 4)

INSERT INTO test (p1, p2) VALUES (1, 5)

INSERT INTO test (p1, p2) VALUES (1, 6)

INSERT INTO test (p1, p2) VALUES (2, 1)

INSERT INTO test (p1, p2) VALUES (2, 2)

INSERT INTO test (p1, p2) VALUES (2, 3)

INSERT INTO test (p1, p2) VALUES (2, 4)

INSERT INTO test (p1, p2) VALUES (2, 5)

INSERT INTO test (p1, p2) VALUES (2, 6)



Ну а это твой селект:

SELECT p1, MAX(p2) as max_p2,;

MAX(IIF(MOD(p2,2)=0, p2, -99999)) as max_p2_chet, MAX(IIF(MOD(p2,2)#0,
p2, -99999)) as max_p2_NE_chet,;

MIN(IIF(MOD(p2,2)=0, p2, 99999)) as min_p2_chet, MIN(IIF(MOD(p2,2)#0, p2,
99999)) as min_p2_NE_chet;

FROM test;

GROUP BY 1





Правильнее было бы использовать не 999999 и -999999, а .null., но у меня не
получилось select заставить воспринимать этот .null.

Нашел вот такой выход из этой ситуации:

CREATE CURSOR test2 (p3 i)

SELECT p1, MAX(p2) as max_p2,;

MAX(IIF(MOD(p2,2)=0, p2, p3)) as max_p2_chet, MAX(IIF(MOD(p2,2)#0, p2, p3))
as max_p2_NE_chet,;

MIN(IIF(MOD(p2,2)=0, p2, p3)) as min_p2_chet, MIN(IIF(MOD(p2,2)#0, p2, p3))
as min_p2_NE_chet;

FROM test LEFT JOIN test2 ON .f.;

GROUP BY 1


Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
12.02.2008, 07:33
    #35125660
q1w1e1
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
опять блин селект
спасибо, извиняюсь, в следующий раз буду писать через Insert, думал так наглядней, а через Insert, как-то завуалировано..
...
Рейтинг: 0 / 0
12.02.2008, 07:37
    #35125666
Galyamov Rinat
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
опять блин селект
> спасибо, извиняюсь, в следующий раз буду писать через Insert, думал
> так наглядней, а через Insert, как-то завуалировано..

Может тебе и селект как-нить наглядно писать, а не завуалированно? ;-)


Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / опять блин селект / 4 сообщений из 4, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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