ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[已解决] 再一次求助,有关SQL语句问题

[复制链接]

TA的精华主题

TA的得分主题

发表于 2010-10-5 15:49 | 显示全部楼层
知道是怎么回事了,看来是自己的疏忽了。。。
你更新一下语句就可以了。
select a1.品名,a2.类别,
iif(分类="出库到柜台1",数量,0) as 出库到柜台1,
iif(分类="出库到柜台2",数量,0) as 出库到柜台2,
iif(分类="出库到柜台3",数量,0) as 出库到柜台3,
iif(分类="出库到其他",数量,0) as 出库到其他,
iif(分类="柜台1销售",数量,0) as 柜台1销售,
iif(分类="柜台2销售",数量,0) as 柜台2销售,
iif(分类="柜台3销售",数量,0) as 柜台3销售,
iif(分类="其他销售清单",数量,0) as 其他销售清单,
iif(分类="出库到柜台1",数量,0) - iif(分类="柜台1销售",数量,0) as 柜台1库存,
iif(分类="出库到柜台2",数量,0) - iif(分类="柜台2销售",数量,0) as 柜台2库存,
iif(分类="出库到柜台3",数量,0) - iif(分类="柜台3销售",数量,0) as 柜台3库存,
iif(分类="出库到其他",数量,0) - iif(分类="其他销售清单",数量,0) as 其他库存
from
(select 品名,val(数量) as 数量,分类
from (select 品名,入库数量 as 数量,"库数量" as 分类 from [公司出入库$a2:j] union all
select 品名,出库到柜台1,"出库到柜台1" as 分类 from [公司出入库$a2:j] union all
select 品名,出库到柜台2,"出库到柜台2" as 分类 from [公司出入库$a2:j] union all
select 品名,出库到柜台3,"出库到柜台3" as 分类 from [公司出入库$a2:j] union all
select 品名,出库到其他,"出库到其他" as 分类 from [公司出入库$a2:j] union all
select 品名,公司库存,"公司库存" as 分类 from [公司出入库$a2:j] union all
select 品名,数量,"柜台1销售"  as 分类 from [柜台1销售清单$a2:j] union all
select 品名,数量,"柜台2销售"  as 分类 from [柜台2销售清单$a2:j] union all
select 品名,数量,"柜台3销售"  as 分类 from [柜台3销售清单$a2:j] union all
select 品名,数量,"其他销售清单"  as 分类 from [其他销售清单$a2:j] ) where 数量 is not null) a1 right join
(select distinct 类别,品名 from [公司出入库$a2:j] ) a2 on a1.品名=a2.品名

TA的精华主题

TA的得分主题

 楼主| 发表于 2010-10-5 18:06 | 显示全部楼层

回复 11楼 suwenkai 的帖子

谢谢suwenkai这么热心的帮助,真的很不好意思,我现在正在学习透视表和SQL,也就半个月,可能也就刚刚入门,连照葫芦画瓢的水平都还没有达到。只能从大家这里“拿来”用,所以一直在麻烦大家。

我刚刚试了一下,很好,基本达到我要的目的。但是请suwenkai再帮忙, “入库数量”和“公司库存”麻烦suwenkai再帮我加上去,其他的项目不变 。因为这两个数据对我来说很关键。再次感谢!!!!!!!!!!

TA的精华主题

TA的得分主题

发表于 2010-10-5 18:11 | 显示全部楼层
select a1.品名,a2.类别,
iif(分类="入库数量",数量,0) as 入库数量,
iif(分类="公司库存",数量,0) as 公司库存,
iif(分类="出库到柜台1",数量,0) as 出库到柜台1,
iif(分类="出库到柜台2",数量,0) as 出库到柜台2,
iif(分类="出库到柜台3",数量,0) as 出库到柜台3,
iif(分类="出库到其他",数量,0) as 出库到其他,
iif(分类="柜台1销售",数量,0) as 柜台1销售,
iif(分类="柜台2销售",数量,0) as 柜台2销售,
iif(分类="柜台3销售",数量,0) as 柜台3销售,
iif(分类="其他销售清单",数量,0) as 其他销售清单,
iif(分类="出库到柜台1",数量,0) - iif(分类="柜台1销售",数量,0) as 柜台1库存,
iif(分类="出库到柜台2",数量,0) - iif(分类="柜台2销售",数量,0) as 柜台2库存,
iif(分类="出库到柜台3",数量,0) - iif(分类="柜台3销售",数量,0) as 柜台3库存,
iif(分类="出库到其他",数量,0) - iif(分类="其他销售清单",数量,0) as 其他库存
from
(select 品名,val(数量) as 数量,分类
from (select 品名,入库数量 as 数量,"库数量" as 分类 from [公司出入库$a2:j] union all
select 品名,出库到柜台1,"出库到柜台1" as 分类 from [公司出入库$a2:j] union all
select 品名,出库到柜台2,"出库到柜台2" as 分类 from [公司出入库$a2:j] union all
select 品名,出库到柜台3,"出库到柜台3" as 分类 from [公司出入库$a2:j] union all
select 品名,出库到其他,"出库到其他" as 分类 from [公司出入库$a2:j] union all
select 品名,公司库存,"公司库存" as 分类 from [公司出入库$a2:j] union all
select 品名,数量,"柜台1销售"  as 分类 from [柜台1销售清单$a2:j] union all
select 品名,数量,"柜台2销售"  as 分类 from [柜台2销售清单$a2:j] union all
select 品名,数量,"柜台3销售"  as 分类 from [柜台3销售清单$a2:j] union all
select 品名,数量,"其他销售清单"  as 分类 from [其他销售清单$a2:j] ) where 数量 is not null) a1 right join
(select distinct 类别,品名 from [公司出入库$a2:j] ) a2 on a1.品名=a2.品名

TA的精华主题

TA的得分主题

 楼主| 发表于 2010-10-5 18:25 | 显示全部楼层

回复 13楼 suwenkai 的帖子

谢谢suwenkai,这么快就回复。我试了一下,但“入库数量”在透视表中全部为“0”,麻烦suwenkai帮我再检查一下,是不是我的操作问题?如是请提醒,谢谢!!!!!!

TA的精华主题

TA的得分主题

 楼主| 发表于 2010-10-5 18:30 | 显示全部楼层
原帖由 brdsz 于 2010-10-5 18:25 发表
谢谢suwenkai,这么快就回复。我试了一下,但“入库数量”在透视表中全部为“0”,麻烦suwenkai帮我再检查一下,是不是我的操作问题?如是请提醒,谢谢!!!!!!




找到原因了,是“from (select 品名,入库数量 as 数量,"库数量" as 分类 from [公司出入库$a2:j] union all”中漏了一个“入”字,谢谢suwenkai!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

TA的精华主题

TA的得分主题

 楼主| 发表于 2010-10-5 21:31 | 显示全部楼层
suwenkai,你好!我都不好意思再开口了,晚上跟几个同事在一起讨论这个透视表,大家都觉得很好。但是有同事提出,要是把四个销售清单中的“每一种货品相对应的金额”能够汇总到一起会更完美。所以希望suwenkai再帮忙在透视表中加上“销售金额”这一栏。在四个销售清单表中都分别有“金额”这一栏,希望将每一种货品在四个销售清单中相对应的金额汇总到透视表中。先谢谢了!!!!!

TA的精华主题

TA的得分主题

发表于 2010-10-5 22:46 | 显示全部楼层
经测试一下,以下的语句没问题。
select a1.品名,a2.类别,
iif(分类="入库数量",数量,0) as 入库数量,
iif(分类="公司库存",数量,0) as 公司库存,
iif(分类="出库到柜台1",数量,0) as 出库到柜台1,
iif(分类="出库到柜台2",数量,0) as 出库到柜台2,
iif(分类="出库到柜台3",数量,0) as 出库到柜台3,
iif(分类="出库到其他",数量,0) as 出库到其他,
iif(分类="柜台1销售",数量,0) as 柜台1销售,
iif(分类="柜台2销售",数量,0) as 柜台2销售,
iif(分类="柜台3销售",数量,0) as 柜台3销售,
iif(分类="其他销售清单",数量,0) as 其他销售清单,
iif(分类="出库到柜台1",数量,0) - iif(分类="柜台1销售",数量,0) as 柜台1库存,
iif(分类="出库到柜台2",数量,0) - iif(分类="柜台2销售",数量,0) as 柜台2库存,
iif(分类="出库到柜台3",数量,0) - iif(分类="柜台3销售",数量,0) as 柜台3库存,
iif(分类="出库到其他",数量,0) - iif(分类="其他销售清单",数量,0) as 其他库存,
iif(分类="柜台1销售金额",数量,0) as 柜台1销售金额,
iif(分类="柜台2销售金额",数量,0) as 柜台2销售金额,
iif(分类="柜台3销售金额",数量,0) as 柜台3销售金额,
iif(分类="其他销售金额",数量,0) as 其他销售金额

from
(select 品名,val(数量) as 数量,分类
from (select 品名,入库数量 as 数量,"入库数量" as 分类 from [公司出入库$a2:j] union all
select 品名,出库到柜台1,"出库到柜台1" as 分类 from [公司出入库$a2:j] union all
select 品名,出库到柜台2,"出库到柜台2" as 分类 from [公司出入库$a2:j] union all
select 品名,出库到柜台3,"出库到柜台3" as 分类 from [公司出入库$a2:j] union all
select 品名,出库到其他,"出库到其他" as 分类 from [公司出入库$a2:j] union all
select 品名,公司库存,"公司库存" as 分类 from [公司出入库$a2:j] union all
select 品名,数量,"柜台1销售"  as 分类 from [柜台1销售清单$a2:j] union all
select 品名,数量,"柜台2销售"  as 分类 from [柜台2销售清单$a2:j] union all
select 品名,数量,"柜台3销售"  as 分类 from [柜台3销售清单$a2:j] union all
select 品名,数量,"其他销售清单"  as 分类 from [其他销售清单$a2:j] union all
select 品名,[金  额],"柜台1销售金额"  as 分类 from [柜台1销售清单$a2:j] union all
select 品名,[金  额],"柜台2销售金额"  as 分类 from [柜台2销售清单$a2:j] union all
select 品名,[金  额],"柜台3销售金额"  as 分类 from [柜台3销售清单$a2:j] union all
select 品名,[金  额],"其他销售金额"  as 分类 from [其他销售清单$a2:j]  ) where 数量 is not null) a1 right join
(select distinct 类别,品名 from [公司出入库$a2:j] ) a2 on a1.品名=a2.品名

销售库存表.rar

37.44 KB, 下载次数: 13

TA的精华主题

TA的得分主题

 楼主| 发表于 2010-10-5 23:50 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
谢谢suwenkai,我测试了一下,达到了我想要的效果。非常感谢suwenkai的鼎力支持!!!

TA的精华主题

TA的得分主题

发表于 2010-10-12 19:06 | 显示全部楼层

TA的精华主题

TA的得分主题

 楼主| 发表于 2010-10-12 21:21 | 显示全部楼层

回复 19楼 wongme 的帖子

不管如何,还是要谢谢你!!!
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-5-6 03:44 , Processed in 0.049725 second(s), 10 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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