[英]Incorrect sum of when I join a second table to first table
我有兩張桌子:
我寫了這個查詢來獲取數據,但我沒有得到我想要的數據。 所以請更正我的查詢,以便我獲得上圖中的數據。
SELECT
o.totalshippingfees,
o.totalamazonefees,
o.totalorderamount,
o.totalprofitloss,
o.totalprocessing_fees,
oi.totalproductexpense,
o.site
FROM (
SELECT
orderdate,
site,
sum(orders.shipping_fees) as totalshippingfees,
sum(orders.amazone_fees) as totalamazonefees,
sum(orders.totalAmount) as totalorderamount,
sum(orders.profit_loss) as totalprofitloss,
sum(orders.processing_fees) as totalprocessing_fees
FROM orders
group by site
) as o
JOIN (
SELECT
site,
sum(orderItemDetails.product_expense) as totalproductexpense,
sum(orders.shipping_fees) as totalshippingfees,
sum(orders.amazone_fees) as totalamazonefees,
sum(orders.totalAmount) as totalorderamount,
sum(orders.profit_loss) as totalprofitloss,
sum(orders.processing_fees) as totalprocessing_fees
from orders
LEFT JOIN orderItemDetails ON orders.id = orderItemDetails.orderId
group by site
) as oi
WHERE MONTH(o.orderdate) = '".$monthNo."' AND YEAR(o.orderdate)= '".$monthyear[1]."'
如果我對您的理解正確,您可以在orderItemDetails
上使用簡單的 group by site
並在orders
上使用 group by site
並在site
上加入它們。
select *
from (
select
sum(shipping_fees) as totalshippingfees,
sum(amazone_fees) as totalamazonefees,
sum(totalAmount) as totalorderamount,
sum(profit_loss) as totalprofitloss,
sum(processing_fees) as totalprocessing_fees,
site
from orders
group by site
) d1
join (
select
sum(product_expense) as totalproductexpense,
site
from orders o
left join orderItemDetails od
on o.id = od.orderId
group by site
) d2
on d1.site = d2.site
DB小提琴: https://www.db-fiddle.com/f/dkpctq1XrzB7bfsrojaZHd/2
更新:
您可以為日期過濾添加where
條件,如下所示:
select *
from (
select
sum(shipping_fees) as totalshippingfees,
sum(amazone_fees) as totalamazonefees,
sum(totalAmount) as totalorderamount,
sum(profit_loss) as totalprofitloss,
sum(processing_fees) as totalprocessing_fees,
site
from orders
where MONTH(orderdate) = 10 AND YEAR(orderdate) = 2019
group by site
) d1
join (
select
sum(product_expense) as totalproductexpense,
site
from orders o
left join orderItemDetails od
on o.id = od.orderId
where MONTH(o.orderdate) = 10 AND YEAR(o.orderdate) = 2019
group by o.site
) d2
on d1.site = d2.site
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.