Форум: "Базы";
Текущий архив: 2004.08.29;
Скачать: [xml.tar.bz2];
ВнизSQL-запрос для IB Найти похожие ветки
← →
Li (2004-08-05 00:36) [0]Пожалуйста, помогите, что здесь можно придумать?
Есть таблица Tab1(ID as Integer, Sum as Float, NDS as Char)
Необходимо выбрать для каждого ID значение суммы с НДС, т.е.
result = Sum*1.2, если NDS = "y"
result = Sum, если NDS = "n"
Сделать это нужно одним запросом Select и без изменения структуры таблицы.
Подскажите, пожалуйста, возможно ли это в IB.
Спасибо!
← →
GanibalLector © (2004-08-05 01:41) [1]select id,(sum_*1.2) from lom where nds="y" ;
select id,sum_ from lom where nds="n" ;
и наконец UNION для обьединения
кстати,поле sum лучше измени.Это слово зарезервировано
← →
GanibalLector © (2004-08-05 01:55) [2]select id,(sum_*1.2) from lom where nds="y"
union all
select id,(sum_*1) from lom where nds="n" order by 1;
← →
Rule © (2004-08-05 09:30) [3]для облегчения можно сделать так:
select id,("sum"*1.2) from lom where nds="y"
union
select id,"sum" from lom where nds="n"
← →
Johnmen © (2004-08-05 09:32) [4]>Rule © (05.08.04 09:30) [3]
"Это вряд ли." (c)
← →
Rule © (2004-08-05 10:10) [5]Johnmen © (05.08.04 9:32) [4]
Почему, у меня работает, я сомневаюсь что интербейз в этом плане сильно отличается от фаерберда
← →
Johnmen © (2004-08-05 10:18) [6]>Rule © (05.08.04 10:10) [5]
Потому, что у тебя 3 диалект.
← →
Rule © (2004-08-05 10:19) [7]Johnmen © (05.08.04 9:32) [4]
Небольшое дополненние:
select id,cast("SUM"*1.2 as Float) from lom where nds="y"
union
select id,"SUM" from lom where nds="n"
Вот так точно будет работать только надо следить чтобы регистр в названии поля "SUM" был правильный иначе не получится, несмотря даже на то что слово зарезервировано, будет работать обязательно
← →
Rule © (2004-08-05 10:20) [8]Johnmen © (05.08.04 10:18) [6]
Ограничени в третем диалекте на двойные скобочки введены для значения полей а не для передачи названия поля, не веришь можешь проверить ...
← →
Johnmen © (2004-08-05 10:23) [9]>Rule © (05.08.04 10:20) [8]
>можешь проверить ...
Что проверить ?
← →
Соловьев © (2004-08-05 10:25) [10]
> диалекте на двойные скобочки введены для значения полей
>
двойные кавычки для того чтобы можно было вводить названия полей разного регистра
← →
Rule © (2004-08-05 10:28) [11]Rule © (05.08.04 10:20) [8]
НУ проверить что работает запрос приведенный в [7], если возникают подозрения указанные в [4]
Соловьев © (05.08.04 10:25) [10]
И не только, как представлено выше можно использовать в качестве названия полей зарезервированые слова (если разработчику базы так уж приспичило)
← →
Johnmen © (2004-08-05 10:30) [12]>Rule © (05.08.04 10:28) [11]
Так я и не спорю. Работает. В 3 диале. А существует ещё и 1. :)
← →
Rule © (2004-08-05 10:34) [13]Johnmen © (05.08.04 10:30) [12]
А-а-а, вы про это, я уже обижатся начал, а разве есть целесообразность использовать первый диалект, может просветите меня (не учитывая конечно вариант с поддержкой существующей базы), а то лично мне не понятно зачем использовать первый диалект ...
← →
Danilka © (2004-08-05 10:35) [14]НДС сейчас не 20, а 18%. А бывает еще и 10%.
И вообще, лучше НДС хранить в отдельном поле, дабы не отгрести проблем с округлениями.
:))
← →
Li (2004-08-05 10:48) [15]по поводу Sum это понятно, просто для примера такое название.
можно ли запрос БЕЗ union сделать? такие уж требования :( ...
← →
Johnmen © (2004-08-05 10:51) [16]>Rule © (05.08.04 10:34) [13]
>...зачем использовать первый диалект ...
Также можно спросить "Зачем использовать 3 диалект?"
В общем это философский вопрос. И обсуждать его можно долго и нудно. А не охота... В смысле, желания нет...:)
← →
Danilka © (2004-08-05 10:52) [17]
> можно ли запрос БЕЗ union сделать?
в FB можно через CASE, в ИБ - незнаю можно или нет, но точно можно через хранимую процедуру.
← →
Johnmen © (2004-08-05 10:54) [18]>Li
1. Чем юнион не угодил ?
2. Может пора уже указать имя и версию сервера ?
← →
Rule © (2004-08-05 11:15) [19]Li (05.08.04 10:48) [15]
Не понял, это как, в техзадании написано чтоб юнион не использвать или как?
чегто не понятно, огласите ваши требования и ися и версию сервера, если у вас есть желани чтоб мы вам помогли
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2004.08.29;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.035 c