вопрос sql относительно суммы () и налога (MySQL 5.0.89) - PullRequest
0 голосов
/ 28 марта 2010
Select 
id,
sum(amount), 
vat 
From transactions WHERE id=1; 

Каждая запись в этой таблице имеет процент НДС, мне нужно получить общую сумму во всех записях, однако каждую сумму нужно умножить на ее процент НДС.

Можно ли сделать это, не просматривая все записи?

Ответы [ 5 ]

2 голосов
/ 28 марта 2010

номер

SELECT id, SUM(amount*(1+vat)) AS total, vat
FROM transactions
WHERE id=1
0 голосов
/ 29 марта 2010

вы не умножаете на процент, 100 * 17,5 - это 1750. 100 * 17,5 / 100 - правильный путь, или ваш процент должен быть выражен как .175

0 голосов
/ 28 марта 2010

Не возвращаются правильные суммы

СУММА (сумма * НДС) возвращает 1849,14
SUM (сумма * (1 + НДС)) возвращает 2010.42
Сумма (сумма + сумма * НДС) возвращает 2010.42

SELECT amount, vat FROM transactions WHERE id = 1;

/* 13 rows returned

        *amount*    * vat % *
        100.00 |    17.50
        25.28  |    2.28
        5.00   |    1.15
        5.00   |    1.15
        5.00   |    1.15
        1.00   |    1.18
        4.00   |    1.18
        3.00   |    1.18
        3.00   |    1.18
        1.00   |    1.10
        4.00   |    1.15
        4.00   |    1.10
        1.00   |    1.18
    */
0 голосов
/ 28 марта 2010

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

Select id, sum(amount*vat)
From transactions 
WHERE id=1; 
0 голосов
/ 28 марта 2010

Вы о чем-то вроде

Select    id,
          sum(amount + amount*vat)       
From      transactions 
WHERE    id=1; 

Это даст вам сумму все суммы плюс суммы НДС .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...