ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 Excel Home精品图文教程库
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
300集Office 2010微视频教程 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
12
返回列表 发新帖
楼主: cnxwj

[求助] SQL多条件动态查询求和

[复制链接]

TA的精华主题

TA的得分主题

发表于 2010-10-15 09:30 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
  1. select b.*,入库+0 as 货位数量,出库,入库-出库 as 库存 from

  2. (select min(日期) as t,零部件名称,型号,批次号 from [入库$] where 待处理标记 is null group by 零部件名称,型号,批次号)a,

  3. (select 日期,零部件名称,部件简称,型号,供应商,厂商代码,批次号,货位号,待处理标记,sum(货位数量) as 入库 from [入库$] where 待处理标记 is null group by 日期,零部件名称,部件简称,型号,供应商,厂商代码,批次号,货位号,待处理标记)b,

  4. (select 零部件名称,型号,批次号,货位号,sum(货位数量) as 出库 from [出库$] where 待处理标记 is null group by 零部件名称,型号,批次号,货位号)c,

  5. [查询$A:B]d

  6. where a.零部件名称&a.型号&a.批次号&a.t=b.零部件名称&b.型号&b.批次号&b.日期 and b.零部件名称&b.型号&a.批次号&b.货位号=b.零部件名称&b.型号&c.批次号&c.货位号 and a.零部件名称&a.型号=d.零部件名称&d.型号

  7. (注:a,b,c,d为表别名.a:获得入库最早时间,b:获得入库信息,c:获得出库信息,d:获得条件信息.根据where条件组合在一起,按零部件名称,按型号,批次号和货位号分类选出符合条件表(d)的入库信息(b)和出库信息(c),根据出入库信息,求出库存信息.

复制代码

理解了这四个表,我们就可以进行简化SQL语句.
(这个SQL是建立在入库最早日期由零部件名称,型号,批次号确定,出库由零部件名称,型号,批次号,货位号确定的基础上.假如意思与楼主不符合,可以按照这个语句来修改.

[ 本帖最后由 wuxiang_123 于 2010-10-15 09:31 编辑 ]

多条件查询汇总.rar

13.06 KB, 下载次数: 137

TA的精华主题

TA的得分主题

 楼主| 发表于 2010-10-15 12:03 | 显示全部楼层
原帖由 wuxiang_123 于 2010-10-14 17:21 发表
你误会我意思了。黄色部分是我修改的,我的意思是,在这些情况下如下求出入库。因为我不确定你附件的出库合计是连续日期的合计还是所有日期的合计。入库合计也一样。

非常感谢吴老师的热心指导。表中的出库、入库的合计是所有日期的合计。

TA的精华主题

TA的得分主题

发表于 2010-10-15 23:17 | 显示全部楼层

TA的精华主题

TA的得分主题

 楼主| 发表于 2010-10-18 13:28 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
原帖由 wuxiang_123 于 2010-10-15 09:30 发表
select b.*,入库+0 as 货位数量,出库,入库-出库 as 库存 from

(select min(日期) as t,零部件名称,型号,批次号 from [入库$] where 待处理标记 is null group by 零部件名称,型号,批次号)a,

(select 日期,零部 ...


吴老师,按你的方法测试与我想实现的功能有4处需调整:
1、现状简述:首次查询:最早日期测试OK,若更改再早一点的日期测试,刷新后及退出EXCE则测试不正确。想实现:只显示最早日期。单独测试select min(日期) as t,零部件名称,型号,批次号 from [入库$] where 待处理标记 is null group by 零部件名称,型号,批次号 则正常。
2、现状简述:若[入库]表存在记录而[出库]表不存在的话,显示为空。想实现:我想查询后“入库栏”显示[入库]表的数量。
3、现状简述:若[入库]表:日期、零部件、型号、批次等相同,货位号不相同的记录有2条,只显示第1条记录。想实现:第2条记录也要显示出来。
4、[出库]表没有“待处理标记列”,上述语句可删除where 待处理标记 is null 会不会影响我所述问题?
上述问题,详见附件测试扳图。

[ 本帖最后由 cnxwj 于 2010-10-18 13:33 编辑 ]

多条件查询汇总.zip

50.62 KB, 下载次数: 22

TA的精华主题

TA的得分主题

发表于 2010-10-19 13:43 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
不好意思,最近一直没有空上网。提几个疑惑:
1:同一批次的产品是否会存在不同的入货日期。即:同一批次的产品相加就是该产品的入库数量。
2:假如产品还没有出库,那么出库数是想显示为空还是是0,空或0都可以实现
PS:楼主是不是作货柜仓库管理的。我是否可以理解为:产品的出入库和结存的计算,由零部件、型号、批次和货位共同确定。

TA的精华主题

TA的得分主题

 楼主| 发表于 2010-10-19 15:20 | 显示全部楼层
问1:同一批次的产品是否会存在不同的入货日期。即:同一批次的产品相加就是该产品的入库数量。
问2:假如产品还没有出库,那么出库数是想显示为空还是是0,空或0都可以实现
问3:PS:楼主是不是作货柜仓库管理的。我是否可以理解为:产品的出入库和结存的计算,由零部件、型号、批次和货位共同确定。
答1:同一批次的产品不会存在不同的入货日期。一个批次产品对应一个货位号,若一个货位号存放不下时,就会产生多个货位存放(如3个),即多货位存放同一批次的产品,就会产生多货位、相同批次、相同日期的情况。对应[入库]表举例有两种情况 :一个批次一个货位;一个批次多个货位(批次号相同、日期相同、货位号不同)。
答2:出库显示为0或空均可,只要[入库]表有符合条件的记录,[出库]表没有的话,查询后均要显示入库、出库、库存三个字段的汇总。
答3:是高位货架仓管管理的。产品的出入库和结存的计算,由零部件、型号、货位号共同确定。

补充:货位号规则:[入库]表中,不允许重复;[出库]表中可以有重复(如:某个零部件分2次以上出库完)。

[ 本帖最后由 cnxwj 于 2010-10-19 15:26 编辑 ]

多条件查询汇总.zip

48.58 KB, 下载次数: 18

TA的精华主题

TA的得分主题

发表于 2010-10-20 09:31 | 显示全部楼层
  1. select y.* from
  2. (select min(日期) as t,零部件名称,型号 from [入库$] where 待处理标记 is null group by 零部件名称,型号)a,

  3. (select b.*,出库,入库-iif(isnull(出库),0,出库) as 结存 from
  4. (select 日期,零部件名称,部件简称,型号,供应商,厂商代码,批次号,货位号,sum(货位数量) as 入库 from [入库$] where 待处理标记 is null group by 日期,零部件名称,部件简称,型号,供应商,厂商代码,批次号,货位号)b
  5. left join
  6. (select 零部件名称,型号,货位号,sum(货位数量) as 出库 from [出库$]  group by 零部件名称,型号,货位号)c
  7. on b.零部件名称&b.型号&b.货位号=c.零部件名称&c.型号&c.货位号
  8. )y,

  9. [查询$A1:B2]d

  10. where y.零部件名称&y.型号=d.零部件名称&d.型号 and a.零部件名称&a.型号=d.零部件名称&d.型号 and y.日期=a.t
复制代码

多条件查询汇总(1).zip

48.23 KB, 下载次数: 135

您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

关闭

最新热点上一条 /1 下一条

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

GMT+8, 2024-4-20 14:19 , Processed in 0.047635 second(s), 10 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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