![]() |
|
Модераторы: LSD |
![]()
|
|
| Li |
|
|||
|
Unregistered |
Пожалуйста, помогите, что здесь можно придумать?
Есть таблица Tab1(ID as Integer, Sum as Float, NDS as Char) Необходимо выбрать для каждого ID значение суммы с НДС, т.е. result = Sum*1.2, если NDS = 'y' result = Sum, если NDS = 'n' Сделать это нужно одним запросом Select и без изменения структуры таблицы. Подскажите, пожалуйста, возможно ли это в IB. Спасибо! |
|||
|
||||
| <Spawn> |
|
|||
![]() Око кары:) ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2776 Регистрация: 29.1.2003 Где: Екатеринбург Репутация: 1 Всего: 64 |
Добавлено @ 05:02 Возможно, в IB тоже есть аналог UNION ALL, для того чтобы не были исключены дублированые записи - с этим сам разберись. Это сообщение отредактировал(а) <Spawn> - 5.8.2004, 05:02 -------------------- "Для некоторых людей программирование является такой же внутренней потребностью, подобно тому, как коровы дают молоко, или писатели стремятся писать" - Николай Безруков. |
|||
|
||||
| Li |
|
|||
|
Unregistered |
можно ли это сделать без union?
очень желательно |
|||
|
||||
| Ateh |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 31 Регистрация: 28.7.2004 Репутация: нет Всего: нет |
Да, можно получить результат без union!
Я не спец в IB, но SQL-запрос можно сделать подобным образом: SELECT Table.id, IIf([Table]![nds]="y ",[Table]![sum]*1.2, [Table]![sum]) AS Выражение1, nds FROM [Table]; P.S.: IIf (условие, если True, если False) |
|||
|
||||
| gemoglobin |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 56 Регистрация: 8.7.2004 Репутация: нет Всего: нет |
можно через хранимую процедуру типа
for select ... from ... where ... into do begin тут проверяешь и выдаешь результат suspend; end хранимые процедуры работают быстро за это не волнуйся |
|||
|
||||
| <Spawn> |
|
|||
![]() Око кары:) ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2776 Регистрация: 29.1.2003 Где: Екатеринбург Репутация: 1 Всего: 64 |
Чем тебе обьединение множеств не навится?
-------------------- "Для некоторых людей программирование является такой же внутренней потребностью, подобно тому, как коровы дают молоко, или писатели стремятся писать" - Николай Безруков. |
|||
|
||||
| Гость_Владимир |
|
|||
|
Unregistered |
Надо в таблицу НДС заносить не буковками Y/N а числом, и жизнь станет легче и веселей.
|
|||
|
||||
| x77 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1255 Регистрация: 25.3.2002 Репутация: нет Всего: 22 |
совершенно верно. 1.2 вместо 'Y' и 1.0 вместо 'N'. после этого запрос будет безо всяких юнионов, хранимок и пр., типа select SUM * NDS
-------------------- Я никогда не сопротивлялся искушению, поскольку узнал: что мне не нравится, то меня не искушает. © Джордж Бернард Шоу (Ирландия) |
|||
|
||||
| Deniz |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1251 Регистрация: 16.10.2004 Где: Новый Уренгой Репутация: 7 Всего: 44 |
Неплохо бы версию сервера указать!
Для IB: до версии 7.5 только как указано выше Для FB: есть спец. case А вообще-то НДС надо числом хранить. разные ставки встречаются(10%, 18%, 20%, 16.67% + импортные материалы вообще по таможне сколько поставит) -------------------- "Для того чтобы сделать шаг вперед, достаточно пинка сзади" (с) |
|||
|
||||
![]()
|
| Правила форума "Общие вопросы по базам данных" | |
|
|
Данный форум предназначен для обсуждения вопросов о базах данных не попадающих под тематику других форумов:
Данный форум не предназначен для:
Если вы не соблюдаете эти правила, не удивляйтесь потом не найдя свою тему/сообщение.
Полезные советы: Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, LSD, Zloxa. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | СУБД, общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |