Как получить сумму на сумму - PullRequest
1 голос
/ 26 апреля 2020

Я пытался использовать следующий SQL запрос:

SELECT p.idproduk, 
       ((p.markp/100)*p.hbproduk) labarugine 
  FROM produk 
  JOIN pesanan o
    ON p.idproduk = o.idproduk
  JOIN penjualan s
    ON o.faktur = s.faktur

результат:

-------------------------
| idproduk | labarugine |
-------------------------
| 2        | 300        | 
| 2        | 300        |
| 2        | 300        |
| 3        | 400        |
| 3        | 400        |
| 4        | 700        |
-------------------------

Я хочу к результату

---------------
|  labarugine |
---------------
|  1400       |
---------------

Пожалуйста помоги мне

1 Ответ

1 голос
/ 26 апреля 2020

Кажется, вы просто хотите SUM(). Однако вы используете только столбцы из одной таблицы, поэтому это может сделать то, что вы хотите:

SELECT pr.idproduk, SUM((pr.markp/100)*pr.hbproduk) AS labarugine
FROM produk pr
GROUP BY pr.idproduk

По всей вероятности, совпадения с другими таблицами приводят к дублированию. Если вам нужны JOIN s для фильтрации, тогда используйте EXISTS вместо:

SELECT pr.idproduk, SUM((pr.markp/100)*pr.hbproduk) AS labarugine
FROM produk pr
WHERE EXISTS (SELECT 1
              FROM pesanan pe INNER JOIN
                   penjualan pj
                   ON pe.faktur = pj.faktur
              WHERE pr.idproduk = pe.idproduk
             )
GROUP BY pr.idproduk;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...