【发布时间】:2017-01-08 19:53:23
【问题描述】:
我的 SQL 数据库中有 3 个表(EmployeeMaster、TripPayroll、Deduction)。
我需要在我的 DataGrid 的第 3 列中反映EmployeeMaster 中所有员工的 IDNo、LastName、FirstName。然后在 DataGrid 的第 4 列中,我想对第 1 列中员工 IDNo 的TripPayroll 的金额求和。代码应将来自TripPayroll 的金额与第一列中相同的 IDNo 相加。然后在 DataGrid 的第 5 列中,我想将具有与第 1 列中相同 IDNo 的扣除表中的所有金额相加,但如果 IDNo 在扣除表中没有对应的 IDNo,则值为 0.00。然后在第 6 列中,我想通过减去 TripPayroll - Deduction 中的金额来获得差额。
string cs = ConfigurationManager.ConnectionStrings["DbaseConnection2"].ConnectionString;
SqlConnection con = new SqlConnection(cs);
con.Open();
SqlDataAdapter da = new SqlDataAdapter("SELECT EmployeeMaster.IDNo, EmployeeMaster.LastName, EmployeeMaster.FirstName, COUNT(TripPayroll.DTRNo) AS No_Trip, SUM(TripPayroll.Rate) AS Gross_Pay, ISNULL(SUM(Deduction.Amount),'0.00') AS Deduction, SUM(TripPayroll.Rate)-ISNULL(SUM(Deduction.Amount),'0.00') AS Total_Pay FROM EmployeeMaster LEFT JOIN TripPayroll ON EmployeeMaster.IDNo = TripPayroll.IDNo LEFT JOIN Deduction ON EmployeeMaster.IDNo=Deduction.IDNo WHERE (TripPayroll.DeliveryDate <= '" + PayrollCutOff.Text + "') AND (TripPayroll.Status = 'Complete') GROUP BY EmployeeMaster.LastName, EmployeeMaster.FirstName,EmployeeMaster.IDNo", con);
DataSet ds = new DataSet();
da.Fill(ds);
Payroll_List.DataSource = ds.Tables[0];
【问题讨论】:
-
您使用的是什么RDBMS?请添加相关标签。另外:请张贴表格结构,以便我们有事可做...
-
到目前为止你尝试过什么??
-
看起来你有作业要做。至少提供场景的 ERD。