![]() |
Модераторы: skyboy |
![]() ![]() ![]() |
|
ksili |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2069 Регистрация: 3.11.2005 Где: Красноярск Репутация: нет Всего: 17 |
Есть таблица:
Т.е. у одного пользователя может быть три номера телефона и каждому номеру соответствует признак активности (в таблице он может быть null, '0' или '1'): USER_ACTIVE для PHONE, A2 для PHONE2, A3 для PHONE3. В настоящее время PHONE2 и PHONE3 не используются и информация о пользователе получается таким запросом:
Т.к. PHONE2 и PHONE3 использоваться будут, надо этот запрос переделать таким образом, чтобы возвращался признак активности в зависимости от того, с каким номером совпал указанный номер телефона, с PHONE, PHONE2 или PHONE3. Т.е. кол-во возвращаемых параметров увеличиваться не должно. Например, если есть запись с PHONE='89001112233', USER_ACTIVE='1', PHONE2='89012345678'='0', PHONE3=null, A3=null, то запрос должен будет вернуть в качестве признака активности '0' При помощи ХП это сделать просто, а вот можно ли одним запросом? CУБД FireBird 2.0.3 Это сообщение отредактировал(а) ksili - 29.5.2008, 10:15 -------------------- Ничто так не развивает аналитическое мышление, как отладка сложной программы без возможности пошагового выполнения (с) |
||||
|
|||||
Deniz |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1251 Регистрация: 16.10.2004 Где: Новый Уренгой Репутация: 6 Всего: 44 |
Можно попробовать CASE или IIF:
вот только не совсем понятно что делать, если номера вдруг совпадут? А лучше нормализовать БД - PHONE и Active вынести в детальную таблицу. -------------------- "Для того чтобы сделать шаг вперед, достаточно пинка сзади" (с) |
|||
|
||||
ksili |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2069 Регистрация: 3.11.2005 Где: Красноярск Репутация: нет Всего: 17 |
Сейчас попробую.
Совпадающих номеров в базе не бывает Добавлено через 13 минут и 36 секунд Deniz, спасибо, работает -------------------- Ничто так не развивает аналитическое мышление, как отладка сложной программы без возможности пошагового выполнения (с) |
|||
|
||||
![]() ![]() ![]() |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Составление SQL-запросов | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |