[英]2 Sums from 3 tables MS Access SQL query
I want help on this. 我需要帮助。 I'm using MS Access DB
我正在使用MS Access DB
TIA TIA
I want to combine these 2 SQL queries to get a single output. 我想结合这两个SQL查询以获取单个输出。
select a.salesid, salesdate, customername, sum(qty*price)
from tblsales a
inner join tblsales_details b on b.salesid = a.salesid
where customername like '%arvin%'
group by a.salesid, salesdate, customername
Result: 结果:
001 1/1/1970 arvin 109500
Query #2: 查询2:
select a.salesid, sum(b.pamount) as payment
from tblsales a
inner join tblpayments b on b.salesid = a.salesid
where customername like '%arvin%'
group by a.salesid
Result: 结果:
001 105000
I want the result will be like this 我希望结果会像这样
001 1/1/1970 arvin 109500 105000
TIA TIA
Try this solution: 试试这个解决方案:
SELECT x.salesid, x.salesdate, x.customername, x.amount, y.payment
FROM (
select a.salesid, salesdate, customername, sum(qty*price) AS amount
from tblsales a
inner join tblsales_details b
on b.salesid = a.salesid
where customername like '%arvin%'
group by a.salesid, salesdate, customername
) AS x
INNER JOIN (
select a.salesid, sum(b.pamount) as payment
from tblsales a
inner join tblpayments b
on b.salesid = a.salesid
where customername like '%arvin%'
group by a.salesid
) AS y
ON x.salesid = y.salesid
If there is no pamount
for an id. 如果没有
pamount
一个ID。 Then use LEFT JOIN
like this in Second SubQuery: 然后在Second SubQuery中像这样使用
LEFT JOIN
:
select a.salesid, sum(IFF(b.pamount IS NULL, 0, b.pamount)) as payment
from tblsales a
LEFT JOIN tblpayments b
on b.salesid = a.salesid
where customername like '%arvin%'
group by a.salesid
I think you would just need to add other joins
with table tblpayments
我认为您只需要使用表
tblpayments
添加其他joins
select a.salesid, a.salesdate, a.customername,
sum(b.qty*b.price) as TotalPrice, sum(p.pamount) as payment
from tblsales a
inner join tblsales_details b on b.salesid = a.salesid
inner join tblpayments p on p.salesid = a.salesid -- you might be need left join
where a.customername like '%arvin%'
group by a.salesid, a.salesdate, a.customername
I suspect that the above would not give what you want, but the second version might helpful by using a subquery
我怀疑以上内容无法满足您的要求,但是第二个版本可能会通过使用
subquery
来提供帮助
select a.salesid, a.salesdate, a.customername, sum(b.qty*b.price) as TotalPrice,
(select IIF(SUM(pamount) IS NULL, 0, SUM(pamount)) from tblpayments where salesid = a.salesid) as payment
from tblsales a
inner join tblsales_details b on b.salesid = a.salesid
where a.customername like '%arvin%'
group by a.salesid, a.salesdate, a.customername
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.