
Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
12.02.2008, 06:59
|
|||
|---|---|---|---|
опять блин селект |
|||
|
#18+
Тут ещё круче создалась ситуация....крутил, вертел не могу никак въехать... короче есть два поля, ну первое, как всегда, ключевое, по которму группировать надо, а вот во втором поле надо вычислить максимальное и минимальное значение по чётным и не чётным номерам... ну типа , а должны получить на выходе 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 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
12.02.2008, 07:25
|
|||
|---|---|---|---|
|
|||
опять блин селект |
|||
|
#18+
"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 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
12.02.2008, 07:33
|
|||
|---|---|---|---|
опять блин селект |
|||
|
#18+
спасибо, извиняюсь, в следующий раз буду писать через Insert, думал так наглядней, а через Insert, как-то завуалировано.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
12.02.2008, 07:37
|
|||
|---|---|---|---|
|
|||
опять блин селект |
|||
|
#18+
> спасибо, извиняюсь, в следующий раз буду писать через Insert, думал > так наглядней, а через Insert, как-то завуалировано.. Может тебе и селект как-нить наглядно писать, а не завуалированно? ;-) Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=41&mobile=1&tid=1588176]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
52ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
37ms |
get tp. blocked users: |
1ms |
| others: | 234ms |
| total: | 369ms |

| 0 / 0 |
