2013-05-07 90 views
2

我想加入你的表,並有一個Sum值,但它沒有顯示任何錯誤,但它的錯誤值...但如果我加入兩個表,它正常工作。查詢加入三個表與總和

查詢是

SELECT tblEmployeeInfo.EmpCode, 
     SUM(tblLeave.lvDay) AS Total, 
     tblAtData.card_no 

FROM tblEmployeeInfo 
INNER JOIN tblLeave ON tblEmployeeInfo.EmpCode = tblLeave.lvEmpId 
INNER JOIN tblAtData ON tblEmployeeInfo.EmpCardID = tblAtData.card_no 

WHERE (tblLeave.lvMonth = @month) 

GROUP BY tblEmployeeInfo.EmpCode, tblAtData.card_no 

回答

1

您應該計算SUM子查詢爲tblLeave,然後連接表:

SELECT tblEmployeeInfo.EmpCode, 
      tblLeave.SUMlvDays AS Total, 
      tblAtData.card_no 

    FROM tblEmployeeInfo 
    INNER JOIN 
     (select lvEmpId, SUM(lvDay) as SUMlvDays 
        from tblLeave 
      WHERE (tblLeave.lvMonth = @month) 
     group by lvEmpId) tblLeave 

      ON tblEmployeeInfo.EmpCode = tblLeave.lvEmpId 

    INNER JOIN tblAtData ON tblEmployeeInfo.EmpCardID = tblAtData.card_no 
    GROUP BY tblEmployeeInfo.EmpCode, tblAtData.card_no 
+0

它的工作謝謝,你極多VALEX ....只需在...中添加「tblLeave.SUMlvDays」... Thanx .. – 2013-05-07 12:02:17

0
SELECT tblEmployeeInfo.EmpCode, 
     tblLeave.SUMlvDays AS Total, 
     tblAtData.card_no 

FROM tblEmployeeInfo 
INNER JOIN 
    (select lvEmpId, SUM(lvDay) as SUMlvDays 
       from tblLeave 
     WHERE (tblLeave.lvMonth = @month) 
    group by lvEmpId) tblLeave 

     ON tblEmployeeInfo.EmpCode = tblLeave.lvEmpId 

INNER JOIN tblAtData ON tblEmployeeInfo.EmpCardID = tblAtData.card_no 
GROUP BY tblEmployeeInfo.EmpCode, tblAtData.card_no,tblLeave.SUMlvDays