ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] SQL菜鸟求问,UNION ALL不工作

[复制链接]

TA的精华主题

TA的得分主题

 楼主| 发表于 2022-1-29 11:29 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
select A.名称,A.入库,B.出库,A.入库-iif(B.出库 is null,0,B.出库) as 结余 from
(select 名称,sum(入库数量) as 入库 from [入库$A:O] group by 名称)A
left join (select 名称,sum(领用数量) as 出库 from
[出库$A:K] group by 名称)B on A.名称=B.名称
上面这句能通过

下面这句为什么通不过?
select A.名称,A.型号,A.注册证,A.规格,A.入库,B.出库,A.入库-iif(B.出库 is null,0,B.出库) as 库存 from
(select 名称,型号,注册证,规格,sum(入库数量) as 入库 from [入库$A:O] group by 名称,型号,注册证,规格)A
left join (select 名称,型号,注册证,规格,sum(领用数量) as 出库 from
[出库$A:K] group by 名称,型号,注册证,规格)B on A.名称=B.名称,A.型号=B.型号,A.注册证=B.注册证,A.规格=B.规格

TA的精华主题

TA的得分主题

发表于 2022-1-29 14:41 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
SELECT a.名称,a.型号,a.注册证,a.规格,a.有效日期,a.入库,b.出库,a.入库-b.出库 as 库存 from
(SELECT 名称,型号,注册证,规格,有效日期,sum(入库数量) AS 入库 FROM [入库$A:O]   group by 名称,型号,注册证,规格,有效日期) a
left join
(SELECT 名称,型号,注册证,规格,有效日期,sum(领用数量) as 出库 FROM  [出库$A:K] group by 名称,型号,注册证,规格,有效日期) b
on  
a.名称=b.名称 and a.型号=b.型号 and a.注册证=b.注册证 and a.规格=b.规格 and a.有效日期=b.有效日期


image.jpg

感觉数据有点不是很好。其实嘛,SQL+透视表做比纯SQL更好。

出入库登记管理.zip (51.05 KB, 下载次数: 5)

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2022-1-29 15:04 来自手机 | 显示全部楼层
willin2000 发表于 2022-1-29 10:54
怎么加"批次"呢, 能做一下吗?

drop table if exists 出入库明细表;drop table if exists 库存表;create table 库存表 (sku text primary key,库存 integer not null default 0 check(库存>=0 and typeof(库存)='integer'),描述 text not null unique,照片 text unique);create table 出入库明细表 (sku text,入库数量 integer not null check(入库数量>=0 and typeof(入库数量)='integer'),出库数量 integer not null check(出库数量>=0 and typeof(出库数量)='integer'),录入时间 not null,录入人员 not null ,FOREIGN KEY(sku) references 库存表(sku));
前面是建库,后面就是插入记录,关键是这个 sku,数据多,还是建库比较好。

delete from 出入库明细表;delete from 库存表;insert into 库存表 values ('s0001',0,'新华牌压力蒸汽指示粘带        19mm50m/卷(5卷/盒)        鲁卫消证字(2003)第0286号','pic_s0001.jpg');insert into 库存表 values ('s0002',0,'134 压力灭菌指示卡        200片/盒        鲁卫消证字(2014)第0001号','pic_s0002.jpg');insert into 出入库明细表(sku,入库数量,出库数量,录入时间,录入人员) values ('s0001',10,0,date('now'),'zpy2');update 库存表 set 库存=库存+10-0 where sku='s0001';insert into 出入库明细表(sku,入库数量,出库数量,录入时间,录入人员) values ('s0001',0,3,date('now'),'zpy2');update 库存表 set 库存=库存+0-3 where sku='s0001';select * from 出入库明细表;select * from 库存表;
Screenshot_2022-01-29-15-02-49-631_com.chrome.dev.jpg

点评

没看懂,好像不是我的源文件数据项目?  发表于 2022-1-29 18:05

TA的精华主题

TA的得分主题

 楼主| 发表于 2022-1-29 18:04 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
jiangxiaoyun 发表于 2022-1-29 14:41
SELECT a.名称,a.型号,a.注册证,a.规格,a.有效日期,a.入库,b.出库,a.入库-b.出库 as 库存 from
(SELECT 名 ...

现在结果正确了, 但是关闭EXCEL(不是关闭这个文件)再打开这个文件,无法刷新,错误如下
SQL REFRESH ERROR.png

SQL语句如下:
  1. SELECT a.名称,a.型号,a.注册证,a.规格,a.入库,b.出库,a.入库-iif(B.出库 is null,0,B.出库) as 库存 from
  2. (SELECT 名称,型号,注册证,规格,sum(入库数量) AS 入库 FROM [入库$A:O]  
  3. group by 名称,型号,注册证,规格) a
  4. left join (SELECT 名称,型号,注册证,规格,sum(领用数量) as 出库 FROM
  5. [出库$A:K] group by 名称,型号,注册证,规格) b
  6. on  a.名称=b.名称 and a.型号=b.型号 and a.注册证=b.注册证 and a.规格=b.规格
  7. where a.名称<>null
复制代码



出入库登记管理.rar

37.34 KB, 下载次数: 1

TA的精华主题

TA的得分主题

 楼主| 发表于 2022-2-17 15:33 | 显示全部楼层
如何修改附件中的SQL语句,满足以下2个要求:
1. 我希望出库中不需要输入"出库位置",在库存表中还是能得出"位置",因为出库位置是由"名称,型号,注册证,规格,单位,有效日期"确定的,是唯一的.
2.在"库存"表中增加"领用人列.
  1. SELECT a.名称,a.型号,a.注册证,a.规格,a.单位,a.有效日期,a.入库,b.出库,a.入库-iif(B.出库 is null,0,B.出库) as 库存,a.位置 from
  2. (SELECT 名称,型号,注册证,规格,单位,有效日期,sum(入库数量) AS 入库,入库位置 as 位置 FROM [入库$]  
  3. group by 名称,型号,注册证,规格,单位,有效日期,入库位置) a
  4. left join (SELECT 名称,型号,注册证,规格,单位,有效日期,sum(领用数量) as 出库,出库位置 as 位置 FROM
  5. [出库$] group by 名称,型号,注册证,规格,单位,有效日期,出库位置) b
  6. on  (a.名称=b.名称 or a.名称 is null) and (a.型号=b.型号 or a.型号 is null) and (a.注册证=b.注册证 or a.注册证 is null) and (a.规格=b.规格 or a.规格 is null) and (a.单位=b.单位 or a.单位 is null) and (a.有效日期=b.有效日期 or a.有效日期 is null)
  7. where a.名称<>null
  8. ORDER BY a.名称,a.有效日期
复制代码
出入库登记管理.zip (41.64 KB, 下载次数: 8)

TA的精华主题

TA的得分主题

发表于 2022-2-22 09:49 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
本帖最后由 pxy0409 于 2022-2-22 09:50 编辑

修改个别字段不就行吗?
SELECT a.名称,a.型号,a.注册证,a.规格,a.单位,a.有效日期,a.入库,b.出库,a.入库-iif(B.出库 is null,0,B.出库) as 库存,a.位置,b.领用人 from
(
SELECT 名称,型号,注册证,规格,单位,有效日期,sum(入库数量) AS 入库,入库位置 as 位置 FROM [入库$]  group by 名称,型号,注册证,规格,单位,有效日期,入库位置) a
left join (SELECT 名称,型号,注册证,规格,单位,有效日期,sum(领用数量) as 出库,领用人 FROM [出库$] group by 名称,型号,注册证,规格,单位,有效日期,领用人) b
on  (a.名称=b.名称 or a.名称 is null) and (a.型号=b.型号 or a.型号 is null) and (a.注册证=b.注册证 or a.注册证 is null) and (a.规格=b.规格 or a.规格 is null) and (a.单位=b.单位 or a.单位 is null) and (a.有效日期=b.有效日期 or a.有效日期 is null) where a.名称<>null

ORDER BY a.名称,a.有效日期

TA的精华主题

TA的得分主题

发表于 2022-2-22 10:38 | 显示全部楼层
本帖最后由 pxy0409 于 2022-2-22 10:39 编辑
jiangxiaoyun 发表于 2022-1-29 14:41
SELECT a.名称,a.型号,a.注册证,a.规格,a.有效日期,a.入库,b.出库,a.入库-b.出库 as 库存 from
(SELECT 名 ...

sql+透视表版,好久不做进销存表了SELECT 名称,型号,注册证,规格,单位,有效日期,sum(入库数量) as 入库,0 as  出库,入库位置 as 位置,"" as 领用人 FROM [入库$]  group by 名称,型号,注册证,规格,单位,有效日期,入库位置 union all
SELECT 名称,型号,注册证,规格,单位,有效日期, 0 as 入库,sum(领用数量) as 出库            出库位置,        领用人 FROM [出库$] group by 名称,型号,注册证,规格,单位,有效日期,出库位置,领用人

20220222103326.png

出入库登记管理.rar

160.04 KB, 下载次数: 12

TA的精华主题

TA的得分主题

 楼主| 发表于 2022-2-22 12:58 | 显示全部楼层
pxy0409 发表于 2022-2-22 10:38
sql+透视表版,好久不做进销存表了SELECT 名称,型号,注册证,规格,单位,有效日期,sum(入库数量 ...

非常感谢.
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-11-25 13:32 , Processed in 0.041047 second(s), 10 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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