数据匹配计算问题(C# winform sqlserver)

有两张excel台账库存资源表:(说明:每次入库时新增上去,出库时减掉得到库存量,这是每天维护的库存表,大约有20000行数据)需要根据子项目的需求日期作为优先级来计算生... 有两张excel 台账
库存资源表:(说明:每次入库时新增上去,出库时减掉得到库存量,这是每天维护的库存表,大约有20000行数据)

需要根据子项目的需求日期作为优先级来计算生产部门的需求能否满足,可以满足多少?仓库还有多少物料可以再利用?
必须通过规格、等级、材质三个字段相同,为同一种物资进行匹配。(后面还要解决的是
在库存不足的情况下,规格、等级相同时,可以“铜”代替“铁”的,但“铁”的不可以代替“铜”的。
希望能够生成如下结果:
1. 希望得到资源满足的表:就是希望看到各个子项目,可以利用的库存资源有多少。如下表:

用c#做个数据库操作的程序怎么能够高效的运算到结果?此前写了个程序,要运行半小时,还不得完成。大家有没有什么好的办法?
展开
 我来答
syht2000
高粉答主

2013-09-05 · 关注我不会让你失望
知道大有可为答主
回答量:3万
采纳率:79%
帮助的人:1.5亿
展开全部
伪代码
1、读取两个表到datatable中,假定上面是dt1,下面是为dt2
2、给dt1创建主键,为材质、数量、等级
3、对dt2的每一行,用dt1.select去先取出所有相同规格、等级的要求材质的,然后按需要的数量依次查询需要数量与库存数量的关系,并进行记录,比如说dt2第0行,9-03,子项a01需要1002的铁5,A仓库1002同规格的铁为10,那么就把库存数量改为5,同时记录

List<classRes> res=new List<classRes>();
class classRes
{
dt2的序号;
List<myModel> list;//库存使用
差额;
}

myModel mod=new myModel(){dt1序号,使用数量5};
res[0].list.add(mod);

这样对于dt2,res是与之对应的,res[0]即表示dt2的第0行情况,res[0].list即表示dt2的第0行使用了哪些资源,res[0].差额为0则表示满足生产。
4、这样循环计算完成之后,用dt2与res即可输出详细分配了。

当然这只是比较简单的方法,效率没有估计过,但5W数据应该也没有多少。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
七鑫易维信息技术
2024-09-02 广告
Play Video 七鑫易维是致力于机器视觉和人工智能领域的高新科技企业,迄今已专注眼球追踪技术的研发、创新与应用超过14年,拥有完全自主知识产权,全球专利总量655余项。 作为眼球追踪技术领域的全球知名品牌,七鑫易维的产品体系覆盖眼动分... 点击进入详情页
本回答由七鑫易维信息技术提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式