首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

如何合并表数据

2013-01-19 
怎么合并表数据表结构为单号(外键)、开始日期、结束日期、预测量,把一个单号的数据作为基准,找出其他单号中跟

怎么合并表数据
表结构为  单号(外键)、开始日期、结束日期、预测量,
把一个单号的数据作为基准,找出其他单号中跟它开始日期和结束日期相同的,将数据综合起来,产生一个新的表,如下:
开始日期、结束日期、预测量(基准)、预测量(其他单号)
这种怎么实现? 表?综合
[解决办法]
先把两表数据提取出来,存在泛型集合内,再创建一张表,遍历泛型集合内的数据。
[解决办法]
                // 返回的datatable
                DataTable dtTableNeeds = dsMN.Tables[0].Clone();
                // 原datatable
                DataTable dtTable = dsMN.Tables[0];

                for (int i = 0; i < dsMN.Tables[0].Rows.Count; i++)
                {
                    decimal count = 0;
                    // 根据主键去查找
                    string sql = "CHD_PRDCT_CD='" + dsMN.Tables[0].Rows[i]["CHD_PRDCT_CD"].ToString() + "' and START_DATE='" +
                            dsMN.Tables[0].Rows[i]["START_DATE"].ToString() + "'";

                    // 找不到的时候
                    if (dtTableNeeds.Select(sql).Length == 0)
                    {
                        // 原datatable中查找
                        DataRow[] rows = dtTable.Select(sql);

                        // 取到第一行的数量
                        count = Convert.ToDecimal(rows[0]["ROHJZCLNUM"].ToString());

                        // 查找到多行数据
                        for (int j = 1; j < rows.Length; j++)
                        {
                            // 累加数量


                            count = count + Convert.ToDecimal(rows[j]["ROHJZCLNUM"].ToString());
                        }

                        // 累加后的数量赋值给第一行数据
                        rows[0]["ROHJZCLNUM"] = count;

                        // 将第一行数据添加到返回的额datatable
                        dtTableNeeds.Rows.Add(rows[0].ItemArray);
                    }
                }

这是一个合并数量的例子。思想差不多。就是把日期相同的数据的数量合计起来。
[解决办法]
同学 你的问题跟我篇博客很相似 属于分组合并字段 根据开始日期结束日期分组 在吧字符串行转列


我的博文
sql分组合并字段

sql字符串行转列

热点排行