【发布时间】:2019-01-24 05:36:12
【问题描述】:
我正在尝试计算两个表中两列的总和,按日期分组并将两个表连接在一起
查询 1
select
Dates
, ifnull( sum(Amount),0) As ETA
from
Expence as t1
where
t1.Dates IN (
select distinct Dates As A from (
select
Expence.Dates
from
Expence
union all
select
Pass.Dates
from
Pass
left join Expence
on Pass.Dates=Expence.Dates
)
)
group by
dates
查询 2
select
Dates
, ifnull( sum(Paid),0) As PTP
, ifnull( sum(TotalAmount),0) As PTA
from
pass As t2
where
t2.Dates IN (
select distinct
Dates As A
from (
select
Expence.Dates
from
Expence
union all
select
Pass.Dates
from
Pass
left join Expence
on Pass.Dates=Expence.Dates
)
)
group by
dates
两个查询独立工作,但连接在一起时返回错误答案。
select distinct
t.Dates
,PTP
,PTA
,ETA
from (
select
Dates
, ifnull( sum(Paid),0) As PTP
, ifnull( sum(TotalAmount),0) As PTA
from
pass As t2
where
t2.Dates IN (
select distinct
Dates As A
from(
select
Expence.Dates
from
Expence
union all
select
Pass.Dates
from
Pass
left join Expence
on Pass.Dates=Expence.Dates
)
)
group by dates
) AS t
, (
select
Dates
,ifnull( sum(Amount),0) As ETA
from
Expence as t1
where
t1.Dates IN (
select distinct
Dates As A from (
select
Expence.Dates
from Expence
union all
select
Pass.Dates
from
Pass
left join Expence
on Pass.Dates=Expence.Dates
)
)
group by dates
) AS P
【问题讨论】: