"Обработка баз данных на Visual Basic®.NET" - читать интересную книгу автора (Мак-Манус Джеффри П., Голдштейн Джеки, Прайс...)

Выполнение вычислений в запросах

В строках запроса допускается выполнение вычислений. Для этого нужно просто заменить имя поля в предложении SELECT именем арифметического выражения. Допустим, вам нужно создать запрос для вычисления налога с продаж для складских запасов (сведения о которых хранятся в таблице tblItem). В приведенном ниже запросе SQL вычисляется налог с продаж с учетной ставкой 7,5% для каждого товара.

SELECT ID, Item, Price, Price * 0.075 AS SalesTax

FROM tblItem

После выполнения этого запроса будут получен показанный ниже результат. 

ID Name Price SalesTax
1 Rubber Chicken 5.99 0.44925
2 Hand Buzzer 1.39 0.10425
3 Stink Bomb 1.29 0.09675
4 Disappearing Penny Magic Trick 3.99 0.29925
5 Invisible Ink 2.29 0.17175
6 Loaded Dice 3.49 0.26175
7 Whoopee Cushion 5.99 0.44925 

Поскольку в этих вычислениях фигурируют деньги, конечный результат нужно округлить до двух десятичных знаков. К счастью, в SQL Server для этого предусмотрена специальная функция ROUND, которая позволяет очень легко выполнить это. Обычно ее используют с указанием двух параметров: собственно десятичного числа и точности, выраженной в виде количества знаков после запятой. Вот как выглядит запрос с функцией ROUND:

SELECT Name, Retail Price, ROUND (Retail Price + Retail Price * 0.075, 2)

AS PriceWithTax

FROM tblInventory

Результат выполнения этого запроса приведен ниже.

Name Retail Price PriceWithTax
Rubber Chicken 5.99 6.44
Hand Buzzer 1.39 1.49
Stink Bomb 1.29 1.39
Disappearing Penny Magic Trick 3.99 4.29
Invisible Ink 2.29 2.46
Loaded Dice 3.49 3.75
Whoopee Cushion 5.99 6.44