Получение суммы расходов одного человека с учетом цены одного бара - PullRequest
0 голосов
/ 16 ноября 2018

Итак, у меня есть следующие таблицы

bills
billId | bar | drinker | date    | time
001    | B1  | P1      | 11/10/18| 21:58
002    | B1  | P1      | 11/11/18| 20:58
003    | B2  | P2      | 11/12/18| 21:57
004    | B1  | P1      | 11/12/18| 21:56

transactions                      Sells
billID| item | quantity           bar  |  item  | price
001   | bud  | 3                  b1   | bud    | 2.00
002   | bud  | 3                  b1   | hite   | 5.00
003   | coors| 1                  b2   | coors  | 5.50
004   | hite | 3

Успешно удалось соединить эти две таблицы, потому что они оба используют billId, используя этот запрос, и получают такой результат:

SELECT b.billId, b.bar, b.drinker, t.item, t.quantity 
from bills b, transactions t 
WHERE b.billId = t.billID 
ORDER BY b.drinker;

billId | bar | drinker | item | quantity
001    | B1  | P1      | bud  | 3
002    | B1  | P1      | bud  | 3
003    | B2  | P2      | bud  | 1
004    | B1  | P1      | hite | 3

Так что теперьЯ хочу принять мой запрос и рассчитать общую цену для человека P1, используя соответствующие цены и количество.Я просто запутался в том, как получить общий объем продаж для P1.Единственное, что меня отталкивает, - это количество в человеке для определенного бара.

Ответы [ 2 ]

0 голосов
/ 16 ноября 2018

Вы можете JOIN три таблицы, чтобы получить результаты:

SELECT b.drinker, b.bar, sum(t.quantity) as quantity,  
       sum(t.quantity * s.price) as price
  FROM bills b
  LEFT JOIN transactions t on ( b.billId = t.billID )
  LEFT JOIN sells s on ( t.item = s.item )
 GROUP BY b.drinker, b.bar
 ORDER BY b.drinker;
0 голосов
/ 16 ноября 2018

Вы можете использовать функцию суммирования sum () и группировать по барам и пьющим

    select bar, drinker, sum(quantity*price) total
    from  (
        SELECT b.billId, b.bar, b.drinker, t.item, t.quantity, t.price 
        from bills b
        INNER JOIN  transactions t  ON b.billId = t.billID 
    ) m 
    group by bar, drinker
    ORDER BY drinker;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...