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

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

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 30.04.2013, 21:40   #1
d36rk
Новичок
Джуниор
 
Регистрация: 30.04.2013
Сообщений: 7
По умолчанию записать информацию в поле в зависимости от значения

добрый день.
есть запрос

Код:
SELECT kontrag.n_scheta,kontrag.id_kontr,((SELECT SUM(s_postupl.cena*kolvo) FROM s_postupl,postupl WHERE s_postupl.n_dok=postupl.n_post AND postupl.id_kontr
=kontrag.id_kontr)- (SELECT SUM(dok_vip.debit) FROM dok_vip,vipiska_banka
WHERE dok_vip.n_dok=n_vipiski AND dok_vip.schet_kontrag=kontrag.n_scheta 
)) AS pole1 FROM kontrag GROUP BY kontrag.n_scheta,kontrag.id_kontr
в результате этого запроса будут поля : .n_scheta, id_kontr, pole1. в pole1 содержится результат вычисления.

вопрос. как сделать чтобы если число положительное результат записывался в pole1, а если отрицательное то в какое нибудь другое поля "pole2".

спасибо
d36rk вне форума Ответить с цитированием
Старый 30.04.2013, 21:47   #2
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Проще всего сделать вычисляемые поля на клиенте в DataSet-е. Можно и в запросе, но он прилично усложнится - как вариант сделать его целиком подзапросом во FROM, а в SELECT-е используя CASE WHEN разместить в разные поля. Впрочем это еще от возможностей СУБД зависит
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 30.04.2013, 21:52   #3
d36rk
Новичок
Джуниор
 
Регистрация: 30.04.2013
Сообщений: 7
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
Проще всего сделать вычисляемые поля на клиенте в DataSet-е. Можно и в запросе, но он прилично усложнится - как вариант сделать его целиком подзапросом во FROM, а в SELECT-е используя CASE WHEN разместить в разные поля. Впрочем это еще от возможностей СУБД зависит
можно подробнее про DataSet, как там сделать вычисляемые поля. я пытался сделать с помощью CASE WHEN но ничего не получилось.
d36rk вне форума Ответить с цитированием
Старый 30.04.2013, 21:55   #4
eval
Подтвердите свой е-майл
 
Регистрация: 29.08.2012
Сообщений: 4,011
По умолчанию

а чем 1 поле не устроило?
eval вне форума Ответить с цитированием
Старый 30.04.2013, 21:57   #5
d36rk
Новичок
Джуниор
 
Регистрация: 30.04.2013
Сообщений: 7
По умолчанию

Цитата:
Сообщение от eval Посмотреть сообщение
а чем 1 поле не устроило?
в результате запроса в pole1 содержаться как положетельные так и отрицательные значения. а мне нужно чтобы в pole1 были только пложительные а в "pole2" только отрицательные
d36rk вне форума Ответить с цитированием
Старый 30.04.2013, 21:57   #6
eval
Подтвердите свой е-майл
 
Регистрация: 29.08.2012
Сообщений: 4,011
По умолчанию

да и запрос у вас не фонтан, надо сказать
eval вне форума Ответить с цитированием
Старый 30.04.2013, 21:57   #7
eval
Подтвердите свой е-майл
 
Регистрация: 29.08.2012
Сообщений: 4,011
По умолчанию

этоуже слышали, вопрос зачем?
eval вне форума Ответить с цитированием
Старый 30.04.2013, 21:58   #8
d36rk
Новичок
Джуниор
 
Регистрация: 30.04.2013
Сообщений: 7
По умолчанию

Цитата:
Сообщение от eval Посмотреть сообщение
да и запрос у вас не фонтан, надо сказать
так я это понимаю и прошу у вас помощи
d36rk вне форума Ответить с цитированием
Старый 30.04.2013, 21:59   #9
d36rk
Новичок
Джуниор
 
Регистрация: 30.04.2013
Сообщений: 7
По умолчанию

Цитата:
Сообщение от eval Посмотреть сообщение
этоуже слышали, вопрос зачем?
это для отчёта. там должны быть в одной колонке только положительные значения а в другой только отрицательные
d36rk вне форума Ответить с цитированием
Старый 30.04.2013, 22:05   #10
eval
Подтвердите свой е-майл
 
Регистрация: 29.08.2012
Сообщений: 4,011
По умолчанию

ну так в отчете и покажите как надо, второе поле явно лишнее
Цитата:
так я это понимаю и прошу у вас помощи
ну например зачем GROUP BY ?
eval вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как из простого мемо записать в поле БД Access в поле тоже типа мемо с сохранением всех абзацев пробелов Speeker БД в Delphi 2 28.11.2011 16:22
Значения в поле подстановок зависят от значения в другом поле pyhtelka Microsoft Office Access 4 13.06.2010 10:42
В зависимости от значения в ComboBox1 выводить значения в ComboBox2 LeX2009 БД в Delphi 14 21.05.2010 16:49
Access 2003: как сделать изменяющийся список выбора в зависимости от значения в соседнем поле tanchikb Microsoft Office Access 14 14.01.2010 10:46
С# - как в таблицу MS SQL записать информацию из формы? _mobility Базы данных (ADO.NET, LinqToSql, ORM Entity Framework, NHibernate) 1 01.01.2009 12:29