Форум: "Базы";
Текущий архив: 2007.11.04;
Скачать: [xml.tar.bz2];
ВнизКак показать процент? Найти похожие ветки
← →
azamatufa © (2007-06-26 12:29) [0]Горячо и сердечно Вас, дорогие.
Вроде вопрос простой.. но не могу решить оптимально.
Имею таблицу с полями A и B (целые числа).
Хочу показать третьей колонкой процент A от B.
Вроде просто:
SELECT A, B, A/B*100 AS Procent FROM Table1
но мой JET (access) вылетает при делении "на ноль".
Как такие вещи делать оптимально? (создавать временные таблицы не охота вроде...)
Спасибо!!!
------------------------------------------
дальше можно не читать...
может быть сделать так?
1. положить компоненту RxMemoryData
2. в начале программы объявить шлобальную переменную FieldProcent : TStringField
3. Создать процедуру, которая
- копирует данные из запроса SELECT A,B FROM Table1 в RxMemoryData
- добавляет в RxMemoryData еще поле FieldProcent (FieldProcent := TStringList.Create(RxMemoryData) ....)
- пройдемся по RxMemoryData и проставим процент
4. В конце скажем FieldProcent.Free;
← →
ЮЮ © (2007-06-26 12:40) [1]> но мой JET (access) вылетает при делении "на ноль".
А сколько % хочешь получить, когда В = 0 ?
А NULL в поле B может быть? Сколько это в % в этом случае.
И, наконец, когда A IS Null, а B - нет это сколько в %?
← →
Desdechado © (2007-06-26 12:50) [2]SELECT A, B, A/B*100 AS Procent FROM Table1
WHERE B <> 0 AND B IS NOT NULL
UNION
SELECT A, B, 0 AS Procent FROM Table1
WHERE B = 0 OR B IS NULL
← →
Savek (2007-06-26 14:34) [3]Select A,B, IIF(B>0,A/B*100,0) as Procent from Table1
← →
azamatufa © (2007-06-26 15:10) [4]
> Desdechado
> SELECT A, B, A/B*100 AS Procent FROM Table1WHERE B <> 0
> AND B IS NOT NULLUNIONSELECT A, B, 0 AS Procent FROM Table1WHERE
> B = 0 OR B IS NULL
Спасибо, то что нужно!!
← →
Desdechado © (2007-06-26 15:55) [5]Ай-ай, я ошибся. Поставь UNION ALL, а то дубли пропадут.
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2007.11.04;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.053 c