Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > SQL, базы данных
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 03.04.2013, 09:20   #1
helpkz
Форумчанин
 
Регистрация: 23.03.2013
Сообщений: 160
По умолчанию Не могу составить SQL-запрос

Дана таблица:


Мне надо, чтобы, допустим, в поле 'team1' сделать выборку типа LIKE 'Рединг' (вернет 2 записи). И значения полей 'score1' и 'score2' поделить. И потом их записать в переменную.
Например: x=score1/score2. Чтобы у меня на форме высветилась х
helpkz вне форума Ответить с цитированием
Старый 03.04.2013, 10:10   #2
eval
Подтвердите свой е-майл
 
Регистрация: 29.08.2012
Сообщений: 4,011
По умолчанию

ну так и пишите как говорите
select *, score1/score2 as x from matches2 where team1 like 'Рединг'
только лайк тут не к селу - team1 = 'Рединг', так правильнее
eval вне форума Ответить с цитированием
Старый 03.04.2013, 10:23   #3
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Цитата:
ну так и пишите как говорите
Ну да. А если score2=0? Да и score1/score2 в MS SQL, например, даст int, если score1 и score2 int, а логичнее результат более точно получить. От деления на ноль спасет, например, IIF для Access-а, или CASE WHEN для MS SQL. ТС, СУБД какая?
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 03.04.2013, 10:24   #4
helpkz
Форумчанин
 
Регистрация: 23.03.2013
Сообщений: 160
По умолчанию

Цитата:
Сообщение от eval Посмотреть сообщение
ну так и пишите как говорите
select *, score1/score2 as x from matches2 where team1 like 'Рединг'
только лайк тут не к селу - team1 = 'Рединг', так правильнее
спасибо, работает. Только вот там в некоторых записях нуль стоит и соответственно ошибку выдает. Можно ли суммировать значения, к примеру сумма(score1)/сумма(score2), чтобы ошибки не было? И еще как сделать, чтобы х переменную использовать в коде Delphi. Допустим вывести ее в Caption
helpkz вне форума Ответить с цитированием
Старый 03.04.2013, 10:25   #5
helpkz
Форумчанин
 
Регистрация: 23.03.2013
Сообщений: 160
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
Ну да. А если score2=0? Да и score1/score2 в MS SQL, например, даст int, если score1 и score2 int, а логичнее результат более точно получить. От деления на ноль спасет, например, IIF для Access-а, или CASE WHEN для MS SQL. ТС, СУБД какая?
СУБД Access
helpkz вне форума Ответить с цитированием
Старый 03.04.2013, 10:31   #6
eval
Подтвердите свой е-майл
 
Регистрация: 29.08.2012
Сообщений: 4,011
По умолчанию

Цитата:
Только вот там в некоторых записях нуль стоит и соответственно ошибку выдает
а кто тут программист?
справку по Access уже прочитали?
eval вне форума Ответить с цитированием
Старый 03.04.2013, 10:34   #7
eval
Подтвердите свой е-майл
 
Регистрация: 29.08.2012
Сообщений: 4,011
По умолчанию

Цитата:
Можно ли суммировать значения, к примеру сумма(score1)/сумма(score2), чтобы ошибки не было?
суммируют не для устранения ошибок а если того логика требует, у вас она требует?
eval вне форума Ответить с цитированием
Старый 03.04.2013, 10:39   #8
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Код:
select *, IIF(score2=0,0,score1/score2) as x ...
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 03.04.2013, 10:42   #9
helpkz
Форумчанин
 
Регистрация: 23.03.2013
Сообщений: 160
По умолчанию

Цитата:
Сообщение от eval Посмотреть сообщение
а кто тут программист?
справку по Access уже прочитали?
Сорри, поторопился с ответом. Но как уже сказал Аватар, надо использовать IIF. Вот читаю справку.
helpkz вне форума Ответить с цитированием
Старый 03.04.2013, 10:43   #10
helpkz
Форумчанин
 
Регистрация: 23.03.2013
Сообщений: 160
По умолчанию

Цитата:
Сообщение от eval Посмотреть сообщение
суммируют не для устранения ошибок а если того логика требует, у вас она требует?
Да, как раз логика требует того. Просто, сами понимаете, в некоторых случаях по-любому будет ноль.
helpkz вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как составить SQL запрос(запутался совсем) Messir_Leonard SQL, базы данных 2 17.03.2013 15:22
Как составить SQL запрос на удаление записей Dux БД в Delphi 2 19.02.2013 23:36
Не могу составить запрос SeRhy PHP 5 04.04.2011 16:33
Не могу составить запрос bullvinkle SQL, базы данных 2 04.10.2009 22:55
помогите составить SQL запрос!!!! MAKSA БД в Delphi 12 07.08.2009 11:12