以下查询给出了400个totalDeduction值,而tblDeduction表只有1个扣除值为200
select
sum(d.amount), o.scale
from
tblDeduction d, tblScale o
where
d.ScaleID = o.ID
group by
o.Scale
当我使用相同的逻辑编写单独的查询时,它返回正确的ans。
{{1}}
请检查
由于
答案 0 :(得分:0)
两个查询不同,因为分组条件不同。 可能缺少导致分组不准确的情况。
我从第一个查询中猜到表之间的关系如下:
tblEmployee e
|--> tblEmpOfficialDetail o
|-->tblDeduction d
|-->tblScale s
|-->tblAllowance a
尝试下一个查询。它是相同的,但写作连接条件,以确保从连接表之间的关系。
select e.EmpID, concat(e.FName, ' ', e.LName) as Name ,
o.HireDate, o.BasicPay, s.Scale, SUM(a.amount) as totalAllowance,SUM(d.Amount) as totalDeduction
from tblEmployee e
join tblEmpOfficialDetail o on e.EmpID=o.EmpID
join tblDeduction d on o.ScaleID=d.ScaleID
join tblScale s on s.ID=o.ScaleID
join tblAllowance a on a.ScaleID = o.ScaleID
group by e.EmpID, e.FName, e.LName, o.HireDate, o.BasicPay, s.Scale