MySQL查询中的复杂算术

时间:2011-03-31 11:26:54

标签: mysql sql math

我有一张表格如下:

product | quantity | price | gift | giftprice
--------|----------|-------|------|----------
1       | 2        | 9.99  | 0    | 4.99
2       | 3        | 3.50  | 1    | 2.25
3       | 1        | 4.75  | 1    | 1.50

我想要一个SQL查询,它会给我一个数字,它给出了所有记录的总和,数量乘以价格,只有当'gift'字段时才将giftprice添加到乘法前的价格中设置为1。

伪代码

foreach(record){
   if(gift == 1){ linetotal = (price + giftprice) * quantity; }
   else { linetotal = price * quantity; }
   total = total + linetotal;
}

2 个答案:

答案 0 :(得分:9)

你可以这样做:

SELECT product, (price + gift * giftprice) * quantity AS total
FROM theTable

由于gift = 0

,因此不会添加任何内容。

答案 1 :(得分:3)

SELECT SUM( (price + giftprice*gift) * quantity)
       AS total
FROM yourTable
;