Вниз
Скачать: CL | DM;

Как показать процент?   Найти похожие ветки 

← →
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 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.012 c
2-1192260881
031178
2007-10-13 11:34
2007.11.04
Дерево TreeView


2-1192078111
zzzz
2007-10-11 08:48
2007.11.04
Переместить в конец курсор


2-1192173898
Pacific
2007-10-12 11:24
2007.11.04
Tcpclient


2-1192002526
alshtam
2007-10-10 11:48
2007.11.04
выбор базы данных


2-1191991361
DrAndrey
2007-10-10 08:42
2007.11.04
В контекстное меню проводника добавить свой пункт.




   Наверх