ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[已解决] 同一工作表中,自己写的根据物料编码查询当月有数量,次月没有数量的语句出错,请指导

[复制链接]

TA的精华主题

TA的得分主题

发表于 2016-11-3 13:10 | 显示全部楼层 |阅读模式
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
本帖最后由 zhouxiao 于 2016-11-6 16:37 编辑

各位同学:
         附件中,我希望根据物料编码查询生成9月有数量,10月没有数量的数据
自己编写的语句,最近在一些实践中,尝试学习使用SQL语句,但对有些语法拿捏不准,请给予指导,谢谢附件有文字说明及模拟结果

附件.rar (679.74 KB, 下载次数: 8)




ps:感谢KmingChanPenghaifeng这两位朋友的帮助,正解在6楼

TA的精华主题

TA的得分主题

发表于 2016-11-3 15:13 | 显示全部楼层
本帖最后由 KmingChan 于 2016-11-3 18:00 编辑

看看能否符合你要的

新附件.zip

788.1 KB, 下载次数: 3

评分

1

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2016-11-3 15:58 | 显示全部楼层
本帖最后由 zhouxiao 于 2016-11-3 16:04 编辑
KmingChan 发表于 2016-11-3 15:13
看看能否符合你要的

感谢你的回复,不是这个结果
我要的结果是
(1)同一物料编码,9~10月,都有数量的,单独生成一列,列标题为“有”
(2)同一物料编码,9月有数量,10月没有数量的,再单独生成一列,列标题为“无”

TA的精华主题

TA的得分主题

发表于 2016-11-3 17:59 | 显示全部楼层
zhouxiao 发表于 2016-11-3 15:58
感谢你的回复,不是这个结果
我要的结果是
(1)同一物料编码,9~10月,都有数量的,单独生成一列,列 ...

哦,重新整理了...看看是不是这样吧

评分

1

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2016-11-3 19:22 | 显示全部楼层
KmingChan 发表于 2016-11-3 17:59
哦,重新整理了...看看是不是这样吧

感谢你的回复,不是这个结果
请见附件模拟效果
附件.zip (845.53 KB, 下载次数: 7)

TA的精华主题

TA的得分主题

发表于 2016-11-4 16:41 | 显示全部楼层
条件有些复杂,按手工计算过程理一下思路,应该不难理解:

select 物料编码,物料名称,`9月汇总`,`10月汇总`,iif(`9月汇总`=0,"",iif(`9月汇总`+`10月汇总`>`9月汇总`,"有","无") )as 状态 from


(select 物料编码,物料名称,sum(`9月数量`) as 9月汇总,sum(`10月数量`) as 10月汇总 from


(select 物料编码,物料名称,sum(数量) as 9月数量,0 as 10月数量 from [明细$A:D] where 期间=201209 group by 物料编码,物料名称 union all

select 物料编码,物料名称,0,sum(数量) from [明细$A:D] where 期间=201210 group by 物料编码,物料名称)A1


group by 物料编码,物料名称)A2

附件.rar

1005.95 KB, 下载次数: 9

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2016-11-4 16:47 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
1、期间转置,将源数据两个期间段变成横向排列;
2、将同一物料编号下的数量汇总,由原先占两行变为仅占一行;
3、条件函数判断,同时增加新的一列。

评分

1

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2016-11-4 17:33 | 显示全部楼层
penghaifeng 发表于 2016-11-4 16:41
条件有些复杂,按手工计算过程理一下思路,应该不难理解:

select 物料编码,物料名称,`9月汇总`,`10月汇 ...

感谢你的帮助,语句我能够看懂,能够理解
单从语句上看,貌似这样写也可以
select 物料编码,物料名称,`9月数量`,`10月数量`,iif(`9月数量`=0,"",iif(`9月数量`+`10月数量`>`9月数量`,"有","无") )as 状态 from
(select 物料编码,物料名称,sum(数量) as 9月数量,0 as 10月数量 from [明细$A:D] where 期间=201209 group by 物料编码,物料名称 union all
select 物料编码,物料名称,0,sum(数量) from [明细$A:D] where 期间=201210 group by 物料编码,物料名称)
group by 物料编码,物料名称

我一直想的是,按照同一料号把10月的数据抓取到9月来,把编码和名称,拖放到透视表里就能看到,9月&10月都有数量的记录,但一直未达到这样的效果
再看我之前写的语句,跟你的对比一下,总感觉我的语句有一种画蛇添足的感觉
select * from [明细$] where 期间=201609 left join (select distinct 物料编码,* from [明细$] where 期间 =201610)a on 物料编码=a.物料编码

TA的精华主题

TA的得分主题

 楼主| 发表于 2016-11-6 11:56 | 显示全部楼层
penghaifeng 发表于 2016-11-4 16:41
条件有些复杂,按手工计算过程理一下思路,应该不难理解:

select 物料编码,物料名称,`9月汇总`,`10月汇 ...

测了下,省略红色字体的这句的同时,将第1段语句中的"数量"替换"汇总"后,会提示数据库无法运行
我的理解是,第2段语句产生的结果供第1段语句查询使用,貌似省略第2段后,第1段语句无法从第3段语句中取得数据不知道我这样的理解是否正确,谢谢
(1)     select 物料编码,物料名称,`9月汇总`,`10月汇总`,iif(`9月汇总`=0,"",iif(`9月汇总`+`10月汇总`>`9月汇总`,"有","无") )as 状态 from
(2)     (select 物料编码,物料名称,sum(`9月数量`) as 9月汇总,sum(`10月数量`) as 10月汇总 from
(3)      (select 物料编码,物料名称,sum(数量) as 9月数量,0 as 10月数量 from [明细$A:D] where 期间=201209 group by 物料编码,物料名称 union all
select 物料编码,物料名称,0,sum(数量) from [明细$A:D] where 期间=201210 group by 物料编码,物料名称)A1
(2)      group by 物料编码,物料名称)A2

TA的精华主题

TA的得分主题

发表于 2016-11-6 17:32 | 显示全部楼层
这么复杂,能交流一下思路吗?怎样考虑到多层嵌套。
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-5-6 19:49 , Processed in 0.036481 second(s), 13 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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