使用一行减去两个数据表减去一个数据表

时间:2015-06-05 02:43:46

标签: c# sqlite datagridview datatable

我试图解决这个Example,它展示了如何将一个数据表与另一个数据表合并。我的问题是,一个数据表是一行基线值,必须从原始数据的每行中减去并放在另一个基线偏移数据表中。 基线数据表没有日期列,但其他两个数据表没有。我意识到我使用了连接函数和Date列(这是错误的),但是当列不相等时我不熟悉。

数据表如下所示

原始数据

Date     |  A  |  B    
12/29/14 | 5.5 | 5.8    
12/30/14 | 5.4 | 5.6

基线

 A  |  B
5.0 | 5.3

基线抵消

Date     |  A  |  B    
12/29/14 | 0.5 | 0.5    
12/30/14 | 0.4 | 0.3
try
{
    con.Open();

    System.Data.DataTable dtData = new System.Data.DataTable();
    System.Data.DataTable dtBaseline = new System.Data.DataTable();

    var dtBaseline_Offset = from p in dtData.AsEnumerable() 
                            join q in dtBaseline.AsEnumerable() on p.Field<string>("Date") equals q.Field<string>("Date") into UP
                            from q in UP.DefaultIfEmpty()
                            select new
                            {
                                date = p.Field<string>("Date"),
                                MeasA = p.Field<float>("A") - q.Field<float>("A"),
                                MeasB = p.Field<float>("B") - q.Field<float>("B")
                            };

   string stringsql1command = "SELECT * from Baseline_Offset";
   string stringsql2command = "SELECT * from Baseline";

   SQLiteDataAdapter sda1 = new SQLiteDataAdapter(stringsql1command, con);
   SQLiteDataAdapter sda2 = new SQLiteDataAdapter(stringsql2command, con);

   System.Data.DataTable dt3 = new System.Data.DataTable();

   sda1.Fill(dt3);

   Baseline_OffsetDataGridView.DataSource = dt3;

0 个答案:

没有答案