Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

IN (....) [D7, IB6.x]


msc32 ©   (2007-06-20 11:50:00) 

Здравствуйте, уважаемые Мастера!
У меня проблема. Имеется такой запрос
select * from accounts_table where :day in (day1, day2, day3)
Как узнать в каком именно поле есть :day?
Просто в этой же таблице есть поля hour1, hour2, hour3, и мне надо выбрать только тот hour который соответствует day. Тоесть если
:day нашёлся в day2 то мне надо получить значение hour2.
Заранее спасибо за любую помощь.


MsGuns   (2007-06-20 19:03:00) [1]

>select * from accounts_table where :day in (day1, day2, day3)

select * from accounts_table where (day1=:day) or (day2=:day) or (day3=:day)


msc32   (2007-06-20 13:34:00) [2]

> [14] Sergey13 ©   (20.06.07 13:14)

Спасибо, наверное я так и сделаю...


Sergey13   (2007-06-20 13:14:00) [3]

> [12] msc32   (20.06.07 13:07)

Я бы сначала постарался понять предметную область которую описывает данная задача.
Но в 99% случаев таблица содежащая день и час + ссылка на объект к которому эти часы и дни соответствуют.


msc32   (2007-06-20 13:08:00) [4]

*бы *Вы


msc32   (2007-06-20 13:07:00) [5]

> [11] Sergey13 ©   (20.06.07 13:05)
приведите пример, пожалуйста, как бі Ві поступили в таком случае.


Sergey13   (2007-06-20 13:05:00) [6]

> [2] msc32   (20.06.07 11:58)

Это у тебя поля в таблице такие dayN и hourN?
А структуру нет желания поменять?


msc32   (2007-06-20 13:04:00) [7]

> [8] ЮЮ ©   (20.06.07 12:33)
А насчет изменения структуры, что бы Вы посоветовали для такого случая?


msc32   (2007-06-20 12:56:00) [8]

Пасиба всем. Пойду пробовать


ЮЮ   (2007-06-20 12:33:00) [9]

select 1 idx, hours1 hours from accounts_table where day1 = :day
union
select 2, hours2 from accounts_table where day2 = :day
union
select 3, hours3 from accounts_table where day3 = :day


первое поле расскажет откуда hours взято.
P.S. А вообще лучше структуру менять, пока не поздно (вдруг позникнет необходимость в hours4 и day4 :)


etc   (2007-06-20 12:27:00) [10]


> Виталий Панасенко ©

а что там этого нет? .... мда


Виталий Панасенко   (2007-06-20 12:27:00) [11]

без ХП не обойтись...


Виталий Панасенко   (2007-06-20 12:25:00) [12]


> etc   (20.06.07 12:21) [4]
> case надо применять

в IB 6.x ?


etc   (2007-06-20 12:21:00) [13]

case надо применять


Виталий Панасенко   (2007-06-20 12:15:00) [14]

теперь еще раз и внятно.. плюс структуру таблицы приведи


msc32   (2007-06-20 11:58:00) [15]

> [1] Sergey13 ©   (20.06.07 11:53)
Например day1=четверг, day2=понедельник, day3=среда
Соответсвенно hour1=16:00, hour2=18:00, hour3=12:00
Скажем в параметре :day указан понедельник, тогда мне как-то нужно взять именно из поля hour2 значение 18:00.


Sergey13   (2007-06-20 11:53:00) [16]

> [0] msc32   (20.06.07 11:50)

Что-то не понятно. Приведи пример данных и что нужно.


Наверх

Титульная страница Поиск, карта сайта Написать письмо