ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 3831|回复: 5

[求助] SQL语句:乘积和汇产叫

[复制链接]

TA的精华主题

TA的得分主题

发表于 2008-11-21 22:08 | 显示全部楼层 |阅读模式
BOMPLanning.rar (2.73 KB, 下载次数: 23) 想请教个问题啊:
我有两个表:
BOM清单表(BOM):
Unit        Part        Usage
U1        1111        3
U2        2222        2
U3        3333        4
U4        4444        5
U2        5555        1
U3        2222        3
U4        1111        6
U1        3333        3
U4        5555        2
U2        3333        6
和一个生产计划表(UNIT Planning)(上面的字段实际上是日期):
UNIT        1121        1122        1123        1124        1125        1126        1127        1128        1129        1130
U1        22        582        343        634        278        364        48        640        829        69
U2        735        941        196        680        926        32        463        777        388        659
U3        744        88        153        196        12        340        506        944        778        311
U4        580        578        56        588        668        824        576        957        124        428

最终生成的表(Part Planning)是:

Part        1121        1122        1123        1124        1125        1126        1127        1128        1129        1130
1111        3546        5214        1365        5430        4842        6036        3600        7662        3231        2775
2222        3702        2146        851        1948        1888        1084        2444        4386        3110        2251
3333        7452        7744        2817        6766        6438        2644        4946        10358        7927        5405
4444        2900        2890        280        2940        3340        4120        2880        4785        620        2140
5555        1895        2097        308        1856        2262        1680        1615        2691        636        1515


即BOM*UNIT Planning再让part按日期进行汇总,不知这个用个SQL语句怎么实现

附件是用excel做成的示意数据,供参考..
注:本意将BOM存在Access中,每天的生产计划也分别导入,然后通过以上这种关系生成一个子部品的需求表.

TA的精华主题

TA的得分主题

发表于 2008-11-22 10:22 | 显示全部楼层
对于LZ的数据库中的生产计划表非常的困惑,不知道为什么LZ把日期设成字段名?!
而就是这张表,才使你产生了这个问题,说学术点就是你的表结构出了问题,在我们数据库表设计时,遇到LZ这样的情部,我们要做成纵向扩展(以增加记录数据的形式),面不是横向(增加字段的形式),其实LZ的生产计划表应当改成以下字段的表:(UNIT,日期,数量),就这三个主要字段即可,
可能你会说,这样不好对应或编辑不方便,你首先要理解一下,编辑是编辑,存储是存储,也就是说,存是可以纵向的,编辑是横向的,而存与编之间则须要通过窗体设置和编程来解决,比如生产计划表,如果用我的方式,只要使用交叉查询就能成为LZ这样的格式了,但LZ的生产计划表就很难变成我所存储的那样的格式,
LZ可能又会说,交叉表无法编辑,这样我们是须要通过一些手法来完成的,比如用临时表,或者用类似网格控件,再或者把交叉表导出EXCEL中编程等等方法,

而现在LZ的要解决只能是,把生产计划表做成联合记录表来完成(联合成我说的那样三个字段的表)才能完成LZ的想法

TA的精华主题

TA的得分主题

 楼主| 发表于 2008-11-28 22:31 | 显示全部楼层

回复 2楼 Renco 的帖子

Renco
其实当初这个BOM是二维表格,因为那样不方便计算才改成现在这个样子.
只因计划如果改成这个样子的话那么産生的记录条数将是非常可观的:当前UNIT的计划每天大概有250点物料,日期大概是102天(原计划是120天,但删除了礼拜天).而子物料的点数约有3000多点.如果这一些子部品全部用到的话,那么産生的数据记录将是:250*102*3000=76 500 000
其实我有做一个试验,就是有三个UNIT的时候,他的记录条数达到了30000多条.所以76500000如果再导回来EXCEL,那肯定是装不下的.想过导回来的时候再改变格式,但这样毕竟记录数据太多,往EXCEL里写数据也是非常慢的了!所以才会用EXCEL的思想做成那样的UNIT PLANNING.
知道阁下是否还会有更好的建议..

当前已经修改UNIT PLANNING的结构,如果只有三两个部品到是可以导出,然后用那个数据透视表立马就可以完原成我想要的格式,但UNIT的数据太少了,实用性不强.

TA的精华主题

TA的得分主题

发表于 2008-11-29 08:26 | 显示全部楼层
为什么要BOM表清单,为了反应物料之间的层次归属,
比如A物料下有A01,A02,A03,A04,四样物料组成,分别用量也是1,2,3,4,那我们只要输入A物料10件,通过BOM表那依次产生了A01=10,A02=20,A03=30,A04=40的数据,但这数据在实际数据是不存在的,而是通过查询计算得出,所以LZ所说的近8KW的记录其实不会在数据库实际存在的,而是通过查询得到的,所以LZ认为数据会很多这是多虑的

现在LZ所提供的数据来看,麻烦也是一样的,要对每个字段进行表达式自定义计算,工作量也一点省不了,如用SQL Server的话,只能用存储过程,如果是EXCEL的话,那你只有代码而且从你说的数据量来说,麻烦不谈,慢死人,请LZ参考我所说的方法

TA的精华主题

TA的得分主题

 楼主| 发表于 2008-11-29 22:32 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册

回复 4楼 Renco 的帖子

Renco
非常感谢你的及时回复,其实我现在就是按你说的那样做了,只是说产生近8KW记录,虽然是一个记录集,但我必须要利用他们,而利用目前我找到了两种途径:
1.直接导出.最少字段:part  Date  Req_Qty.但因为EXCEL记录条件的限制,这一方法肯定不可行.
2>.如果导出的最二维表,那样要求用程序写入到EXCEL里去(目前我只会这样),但相信速度会很慢.
所以一时三刻不知如何是好!!
还请帮忙再了解一下,给个好一点的建议啊!

TA的精华主题

TA的得分主题

发表于 2008-12-1 08:11 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
LZ,我所说的是记录存成我说的样子,我没说你导出时也成为我这个样子(一条条的记录),你导出的只是查询所得的结果,那么你做成的查询完全可以输入你所提供的格式,比如ACCESS中的交叉表,就是类似你所要求的这样的格式,你只要让数据库帮你做好记录集(或按要求的其本格式),EXCEL只要记录集的结果就行了(如LZ所说的最终要的那个记录结果一样),EXCEL里通过查询语句导入结果的方法,我想导入也不是问题,
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-11-16 20:58 , Processed in 0.037052 second(s), 11 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表