[英]Group by date month multiple tables
所以我有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查詢按日期分組
有人可以幫助我或給我任何提示嗎? 先感謝您
您可以使用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) ;
這與查詢中的內容不完全相同,但是鑒於您提供的數據,這才有意義。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.