Комплексная арифметика в запросе MySQL - PullRequest
0 голосов
/ 31 марта 2011

У меня есть следующая таблица:

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, который даст мне цифру, которая даст мне сумму всех записей с количеством, умноженным на цену, с ценой подарка, добавляемой к цене перед умножением, только если поле 'подарок' установлен на 1.

псевдокод

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

Ответы [ 2 ]

9 голосов
/ 31 марта 2011

Вы можете просто сделать:

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

Поскольку ничего не будет добавлено, если gift = 0.

3 голосов
/ 31 марта 2011
SELECT SUM( (price + giftprice*gift) * quantity)
       AS total
FROM yourTable
;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...