ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] 如何转递参数查询

[复制链接]

TA的精华主题

TA的得分主题

发表于 2013-12-4 12:22 | 显示全部楼层 |阅读模式
哪位高手帮忙看一下,如何将附件的查询,写成只用输入一次参数啊!

我希望得到的查询效果是
仅输入一次产品代码后,将该产品下的所有零件(如是模组要展开换算成零件)及用量计算出来。
这其中的核心是要将成品下的模组先转化成零件及用量计算。

附件我自己作的联合查询,需要输入好几次产品代码作参数,才能得到希望的结果。请好心人帮忙
给一个参数可传递的查询,谢谢。



Database1.rar

55.87 KB, 下载次数: 13

TA的精华主题

TA的得分主题

发表于 2013-12-21 17:29 | 显示全部楼层
个人感觉你可以做个窗口来显示数据,而要输入的数据从窗口中提取,就只需对窗口的参数输入一次,达到想要的效果。

TA的精华主题

TA的得分主题

发表于 2013-12-21 20:12 | 显示全部楼层
根据你想要的结果表:
分开写查询1,查询2,然后创建查询3联合查询。
  1. SELECT 产品表.成品代码, [2级BOM表].零件代码, [零件用量]*[零件模组用量] AS 零件总用量
  2. FROM 产品表 INNER JOIN (2级BOM表 INNER JOIN 1级BOM表 ON [2级BOM表].模组代码 = [1级BOM表].零件模组代码) ON 产品表.成品代码 = [1级BOM表].产品代码;
复制代码
查询2
  1. SELECT 产品表.成品代码, [1级BOM表].零件模组代码 AS 零件代码, [1级BOM表].零件模组用量 AS 零件总用量
  2. FROM 产品表 INNER JOIN 1级BOM表 ON 产品表.成品代码 = [1级BOM表].产品代码
  3. WHERE [1级BOM表].模组标识 Is Null;
复制代码
联合查询:
  1. SELECT 查询1.成品代码 as 成品代码, 查询1.零件代码 as 零件代码, 查询1.零件总用量
  2. FROM 查询1

  3. UNION ALL SELECT 查询2.成品代码 as 成品代码, 查询2.零件代码 as 零件代码, 查询2.零件总用量
  4. FROM 查询2;
复制代码

TA的精华主题

TA的得分主题

发表于 2013-12-21 20:12 | 显示全部楼层
根据你想要的结果表:
分开写查询1,查询2,然后创建查询3联合查询。
  1. SELECT 产品表.成品代码, [2级BOM表].零件代码, [零件用量]*[零件模组用量] AS 零件总用量
  2. FROM 产品表 INNER JOIN (2级BOM表 INNER JOIN 1级BOM表 ON [2级BOM表].模组代码 = [1级BOM表].零件模组代码) ON 产品表.成品代码 = [1级BOM表].产品代码;
复制代码
查询2
  1. SELECT 产品表.成品代码, [1级BOM表].零件模组代码 AS 零件代码, [1级BOM表].零件模组用量 AS 零件总用量
  2. FROM 产品表 INNER JOIN 1级BOM表 ON 产品表.成品代码 = [1级BOM表].产品代码
  3. WHERE [1级BOM表].模组标识 Is Null;
复制代码
联合查询:
  1. SELECT 查询1.成品代码 as 成品代码, 查询1.零件代码 as 零件代码, 查询1.零件总用量
  2. FROM 查询1

  3. UNION ALL SELECT 查询2.成品代码 as 成品代码, 查询2.零件代码 as 零件代码, 查询2.零件总用量
  4. FROM 查询2;
复制代码

TA的精华主题

TA的得分主题

发表于 2013-12-21 20:14 | 显示全部楼层
请测试附件:

Database1.rar

36.11 KB, 下载次数: 5

TA的精华主题

TA的得分主题

发表于 2013-12-21 21:07 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
如果是单个产品查询:

修改全部查询代码:传递一个参数。
  1. PARAMETERS p成品代码 Text ( 4 );
  2. SELECT 产品表.成品代码, [2级BOM表].零件代码, [零件用量]*[零件模组用量] AS 零件总用量
  3. FROM 产品表 INNER JOIN (2级BOM表 INNER JOIN 1级BOM表 ON [2级BOM表].模组代码 = [1级BOM表].零件模组代码) ON 产品表.成品代码 = [1级BOM表].产品代码
  4. WHERE ((([2级BOM表].模组代码)=(SELECT [1级BOM表].零件模组代码 AS 模组代码
  5. FROM 产品表 INNER JOIN 1级BOM表 ON 产品表.成品代码 = [1级BOM表].产品代码
  6. WHERE (((产品表.成品代码)=[p成品代码]) AND (([1级BOM表].模组标识)="A")))))


  7. UNION ALL SELECT 产品表.成品代码, [1级BOM表].零件模组代码 AS 零件代码, [1级BOM表].零件模组用量 AS 零件用量
  8. FROM 产品表 INNER JOIN 1级BOM表 ON 产品表.成品代码 = [1级BOM表].产品代码
  9. WHERE (((产品表.成品代码)=[p成品代码]) AND (([1级BOM表].模组标识) Is Null));
复制代码
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-11-17 15:45 , Processed in 0.032125 second(s), 10 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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