Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Разделяем отрицательные и положительные значения столбца

8.3K
01 августа 2005 года
ddmdm
15 / / 25.05.2005
Добрый день,

У меня имеется Таблица 1 в MSQL Server 2000.
Мне надо сделать запрос с подзапросами или еще как-то, чтобы получить из нее 2 таблицы:
Таб 1.1. - только положитедьные значения amt
и
Таб 1.2. - только отрицательные значения amt


Tab 1
NumberUser | amt
3001 | -200
3001 | 100
3001 | 345
3001 | 234
3001 | <NULL>
3001 | 150
3001 | -260
3001 | 359


Tab 1.1
NumberUser | amtPOS
3001 | 100
3001 | 345
3001 | 234
3001 | 150
3001 | 359


Tab 1.2
NumberUser | amtNEG
3001 | -200
3001 | -260


Пытался следующим образом и др., однако не получается.
set RST=Conn.execute(" " &_
"SELECT " &_
"amt AS amtPos, amt AS amtNEG, NumberUser " &_
"From Tab1" &_
"WHERE ( " &_
"(amt>0) OR (amt<0) " &_
" ) " &_
" ")

Есть на ASP процедура, которая решает проблему со следующим запросом.
Однако хотелость бы попроще решить ее.

set RST=Conn.execute(" " &_
"SELECT " &_
"amt, NumberUser " &_
"From Tab1" &_
"WHERE ( " &_
"(amt>0) OR (amt<0) " &_
" ) " &_
" ")

Удачи,

и спасибо заранее
287
02 августа 2005 года
Shiizoo
958 / / 14.03.2004
Не работал с asp, но каким образом ты из одного запроса сделаешь две коллекции строк - результатов выборки??

Выбери сначала первое, потом второе, или отсортируй по значению и перебирая строки (ты ведь будешь их перебирать?) сначала суй все что попадется в один массив, а на первом попавшемся положительном (или отрицательном, как отсортируешь) значении суй результаты в другой массив (или что там еще).
8.3K
03 августа 2005 года
ddmdm
15 / / 25.05.2005
Цитата:
Originally posted by Shiizoo
Не работал с asp, но каким образом ты из одного запроса сделаешь две коллекции строк - результатов выборки??

Выбери сначала первое, потом второе, или отсортируй по значению и перебирая строки (ты ведь будешь их перебирать?) сначала суй все что попадется в один массив, а на первом попавшемся положительном (или отрицательном, как отсортируешь) значении суй результаты в другой массив (или что там еще).

8.3K
03 августа 2005 года
ddmdm
15 / / 25.05.2005
Прошу пардон за предыдущее сообщение (копия).
Случайно получилось.

Мне подсказали как решить проблему:

если надо один столбец разбить на два опционно, то используй CASE ... напримет так:

select
CASE WHEN [amt]>0 THEN [amt] ELSE NULL END as amtPos,
CASE WHEN [amt]<0 THEN [amt] ELSE NULL END as amtNEG
from Tab1


Сработало.

Спасибо и удачи Вам
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог