2

私は 3 つのテーブルを結合しようとしていますが、Sum 値が 1 つありますが、エラーは表示されませんが、値が間違っています... しかし、2 つのテーブルを結合すると、正しく機能します。

クエリは

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
4

2 に答える 2

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
于 2013-05-07T11:30:09.667 に答える