public void qudiaoduoyu()
{
public DataTable dt = new DataTable();
int aa = 0;
string row1 = myDataSet.Tables[0].Rows[0]["订单号码"].ToString();//取表的第一行
string row2 = myDataSet.Tables[0].Rows[0]["邮件号"].ToString();//取表的第一行
DataRow[] drr = myDataSet.Tables[0].Select(" 订单号码='"+row1 + "'");
DataRow[] drr1 = myDataSet.Tables[0].Select(" 订单号码='"+row2 + "'");
BLL.kuaidifeiyong mykuaidifeiyong = new BLL.kuaidifeiyong();
DataRow dr = myDataSet.Tables[0].NewRow();//临时新的行
dr["收寄日期"] = drr1[0]["收寄日期"].ToString();
dr["订单号码"] = drr1[0]["订单号码"].ToString();
if (drr1[0]["订单金额"] != null && drr1[0]["订单金额"].ToString() != "")
dr["订单金额"] = decimal.Parse(drr1[0]["订单金额"].ToString());
if (drr1[0]["单位"] != null)
dr["单位"] = drr1[0]["单位"].ToString();
if (drr1[0]["寄达地"] != null)
dr["寄达地"] = drr1[0]["寄达地"].ToString();
if (drr1[0]["省"] != null)
dr["省"] = drr1[0]["省"].ToString();
dr["快递公司"] = drr1[0]["快递公司"].ToString();
dr["邮件号"] = drr1[0]["邮件号"].ToString();
dr["重量"] = decimal.Parse(drr1[0]["重量"].ToString());
dr["件数"] = int.Parse(drr1[0]["件数"].ToString());
dr["邮费"] = decimal.Parse(drr1[0]["邮费"].ToString());
dr["备注"] = drr1[0]["备注"].ToString();
if (drr1[0]["省"] != null)
dr["我算运费"] = feiyongjisuan(drr1[0]["邮件号"].ToString(), drr1[0]["省"].ToString(), decimal.Parse(drr1[0]["重量"].ToString()));
if (drr.Length > 1 && drr[0]["邮件号"].ToString() != "")
{
aa += 1;
drr1 = myDataSet.Tables[0].Select(" 邮件号='-1'");
dr["订单号码"] = drr[0]["订单号码"].ToString();
dr["订单金额"] = decimal.Parse(drr[0]["订单金额"].ToString());
decimal zl = 0;
int js = 0;
decimal yf = 0;
decimal wsyf = 0;
foreach (DataRow dr11 in drr)
{
if (dr["邮件号"].ToString().IndexOf(dr11["邮件号"].ToString()) == -1)
dr["邮件号"] = dr["邮件号"] + "," + dr11["邮件号"].ToString();
zl += decimal.Parse(dr11["重量"].ToString());
js += int.Parse(dr11["件数"].ToString());
yf += decimal.Parse(dr11["邮费"].ToString());
wsyf += feiyongjisuan(dr11["邮件号"].ToString(), dr11["省"].ToString(), decimal.Parse(dr11["重量"].ToString()));
myDataSet.Tables[0].Rows.Remove(dr11);//清除此类的行
}
dr["重量"] = zl;
dr["件数"] = js;
dr["邮费"] = yf;
dr["我算运费"] = wsyf;
dr["比例"] = wsyf / decimal.Parse(dr["订单金额"].ToString()); }
decimal ddje = 0;
if (drr1.Length > 1 && drr1[0]["邮件号"].ToString() != "")
{
aa += 1;
dr["邮件号"] = drr1[0]["邮件号"].ToString();
dr["重量"] = decimal.Parse(drr1[0]["重量"].ToString());
dr["件数"] = int.Parse(drr1[0]["件数"].ToString());
dr["邮费"] = decimal.Parse(drr1[0]["邮费"].ToString());
dr["我算运费"] = feiyongjisuan(drr1[0]["邮件号"].ToString(), drr1[0]["省"].ToString(), decimal.Parse(drr1[0]["重量"].ToString()));
foreach (DataRow dr22 in drr1)
{
if (dr["订单号码"].ToString().IndexOf(dr22["订单号码"].ToString()) == -1)
dr["订单号码"] = dr["订单号码"] + "," + dr22["订单号码"].ToString();
ddje += decimal.Parse(dr22["订单金额"].ToString());
myDataSet.Tables[0].Rows.Remove(dr22);//清除此类的行
}
dr["订单金额"] = ddje;
dr["比例"] = decimal.Parse(dr["我算运费"].ToString()) / decimal.Parse(dr["订单金额"].ToString());
dr["备注"] = "合并";
}
if (aa == 0)
{
myDataSet.Tables[0].Rows.Remove(drr1[0]);//清除此类的行
}
myDataSet.Tables[0].Rows.Add(dr);//添加临时新的行数据
qudiaoduoyu();
}
解决方案 »
- TreeView 绑定的问题。求大神们帮帮忙。
- 有个web生成图像插件,美国的,根据数据生成的柱形,饼型各种各样很丰富
- 看了以后发现做站长真可怜啊!
- 怎样做到页面转跳后清空指定名称的session?
- 在数据库中储存System.Drawing.Color信息
- 用javascript写的二级连动 显示数据用的是listbox 我在asp.net里面最listbox的值取不出来,求救 !!
- 如何传递对象到另一个页面
- 请问如何把ASP.net项目中的一些文件封装起来?
- 在DataGrid中如何实现"序号"列?
- 哪位能介绍一下怎样编写一个简单的WebControl?(c#)
- MVC AuthorizeAttribute 控制用户跳转,action方法还是被执行了 问题
- ajaxpro在2000server服务器上,不被调用,客户端页面报xxxx未定义
剩下的就是重复的 然后 把重复的读出来 在操作
用SQL语句,删除掉重复项只保留一条
在几千条记录里,存在着些相同的记录,如何能用SQL语句,删除掉重复的呢
1、查找表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断
select * from people
where peopleId in (select peopleId from people group by peopleId having count(peopleId) > 1) 2、删除表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断,只留有rowid最小的记录
delete from people
where peopleName in (select peopleName from people group by peopleName having count(peopleName) > 1)
and peopleId not in (select min(peopleId) from people group by peopleName having count(peopleName)>1) 3、查找表中多余的重复记录(多个字段)
select * from vitae a
where (a.peopleId,a.seq) in (select peopleId,seq from vitae group by peopleId,seq having count(*) > 1) 4、删除表中多余的重复记录(多个字段),只留有rowid最小的记录
delete from vitae a
where (a.peopleId,a.seq) in (select peopleId,seq from vitae group by peopleId,seq having count(*) > 1)
and rowid not in (select min(rowid) from vitae group by peopleId,seq having count(*)>1) 5、查找表中多余的重复记录(多个字段),不包含rowid最小的记录
select * from vitae a
where (a.peopleId,a.seq) in (select peopleId,seq from vitae group by peopleId,seq having count(*) > 1)
and rowid not in (select min(rowid) from vitae group by peopleId,seq having count(*)>1) 6.消除一个字段的左边的第一位:update tableName set [Title]=Right([Title],(len([Title])-1)) where Title like '村%'7.消除一个字段的右边的第一位:update tableName set [Title]=left([Title],(len([Title])-1)) where Title like '%村'8.假删除表中多余的重复记录(多个字段),不包含rowid最小的记录
update vitae set ispass=-1
where peopleId in (select peopleId from vitae group by peopleId