Группировать по дате месяц несколько таблиц - PullRequest
0 голосов
/ 04 ноября 2018

Итак, у меня есть 3 таблицы с именем:
Расходы - для учета расходов
Directv - для записи платежей по подписке на телеканалы
Продажи - для записи продаж
и я должен рассчитать оборот, общую сумму продаж, общие расходы и Directv для каждого месяца

    Spending
    id|Amount|dateSpd
    1 |2000  |2018-10-05
    3 |3000  |2018-11-06

    Directv
    id|Amount|dateTv
    1 |50    |2018-10-05

    Sales
    id|customer|quantity|price|dateSales
    1 |Marc    |2       |500  |2018-10-05
    2 |Kevin   |3       |1500 |2018-10-05
    5 |Angel   |2       |500  |2018-11-07

и я хочу получить например

turnover | Spending | sales | DirecTv | month | year
  5500   | 3000     | 2000  | 50      | 10     |2018
   1000  | 2000     | 500   | 0       | 11     |2018

У меня есть некоторые проблемы, чтобы получить его, мои запросы:

--to get total amount of sales
select sum(sl.price) , month(sl.date) , year(sl.date) from sales sl GROUP by year(sl.date) , month(sl.date)

--for directtv
select sum(dv.amount) , month(dv.date) , year(dv.date) from directtv dv GROUP by year(dv.date) , month(dv.date)

--for turnover
SELECT sum(sl.quantity*sl.price) , month(sl.date) FROM sales sl GROUP by year(sl.date), month(sl.date) 

но как сгруппировать по дате все SQL-запросы с объединениями
кто-то может помочь мне или дать мне какие-нибудь советы? заранее спасибо

1 Ответ

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

Вы можете объединить данные из таблиц, используя union all, а затем агрегировать.

Я подозреваю, что вы хотите что-то вроде этого:

select year(dte), month(dte),
       sum(spending) as spending, sum(directtv) as directtv,
       sum(price*quantity) as turnover
from ((select datesp as dte, amount as spending, 0 as directtv, 0 as price, 0 as quantity
       from spending
      ) union all
      (select datetv as dte, 0 as spending, amount as directtv, 0 as price, 0 as quantity
       from directtv
      ) union all
      (select datesales as dte, 0 as spending, 0 as directtv, price, quantity
       from sales
      )
     ) x
group by year(dte), month(dte) ;

Это не совсем то, что содержится в ваших запросах, но имеет смысл, учитывая предоставленные вами данные.

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