0
以下查詢這給400值totalDeduction的同時tblDeduction表僅具有1扣除與值的X2 200SQL Server的總和函數給出正確的總和值
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, tblEmpOfficialDetail o, tblScale s, tblAllowance a, tblDeduction d
where
e.EmpID = o.EmpID and
o.ScaleID = s.ID and
o.ScaleID = a.ScaleID and
o.ScaleID = d.ScaleID
group by
e.EmpID, e.FName, e.LName, o.HireDate, o.BasicPay, s.Scale
當我使用相同的邏輯寫一個單獨的查詢它會返回正確的答案。
select
sum(d.amount), o.scale
from
tblDeduction d, tblScale o
where
d.ScaleID = o.ID
group by
o.Scale
請檢查,因爲分組條件不同,它
感謝
我敢打賭,您的加入條件不是1:1,請刪除羣組以查看發生了什麼。順便說一下,建議使用顯式連接語法,而不是使用92之前的隱式語法。 – HoneyBadger
SO用於提問,不提交代碼供其他人修復 –
@HoneyBadger「連接條件不是1:1」是什麼意思?順便說一句,當我刪除組by子句它給聚合函數錯誤 – Ridzi