如何连接两个以上的表进行报表统计!

Lin2000y 2003-10-09 06:41:39
例如有三个或者更多,
A:库存
B:销售
C:生产
。。。。。

每个表都有一个字段:产品型号,产品颜色(码数等)

我想要的结果是在同一个检索结果里面按照产品型号(颜色)对数据进行汇总,要求每一个数据行都要有一个库存数、销售数、生产数,同时只要是在这三个表中出现过的产品型号(颜色或者码数)都要有一个统计行,不论其他数是否为空,
我想请问一下,我该怎样对这些表进行联接呢。

我想理论是以下这个连接方式是可行的但是我有试过,就是出现有的数据会漏掉

库存.产品型号=销售.产品型号
销售.产品型号=生产.产品型号

(AND 库存.颜色=销售.颜色
 销售.颜色=生产.颜色)
(AND 库存.码数=销售.码数
 销售.码数=生产.码数)

请赐教!
...全文
486 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
Lin2000y 2003-10-09
  • 打赏
  • 举报
回复
我这有个例子:

SELECT dbo.库存.款号, dbo.库存.颜色, dbo.库存.码数, dbo.库存.仓库进货量, dbo.补货.总补货,
dbo.产量.生产量
FROM dbo.库存 FULL OUTER JOIN
dbo.补货 ON dbo.库存.款号 = dbo.补货.款号 AND dbo.库存.颜色 = dbo.补货.颜色 AND
dbo.库存.码数 = dbo.补货.码数 FULL OUTER JOIN
dbo.产量 ON dbo.库存.款号 = dbo.产量.款号 AND dbo.库存.颜色 = dbo.产量.颜色 AND
dbo.库存.码数 = dbo.产量.码数
WHERE (dbo.库存.款号 = '3081A')

在产量表里有四个记录,其他表都是三个记录我用了外联接,结果却还是只有三个?
以下是运行出来的结果:

款号 颜色 码数 进货量 总补货 生产量
3081A 78 L 18.0000 3 48
3081a 78 M 18.0000 3 48
3081A 78 S 8.0000 2 24

应该还有一个记录是:
3081A 78 XL 5

大力兄帮帮忙

pengdali 2003-10-09
  • 打赏
  • 举报
回复
举例:

declare @a table(a int,b int)
declare @b table(a int,b int)
insert @a values(1,1)
insert @a values(2,2)
insert @b values(1,1)
insert @b values(3,3)

--左:
select * from @a Aa left join @b Bb on Aa.a=Bb.a
--右:
select * from @a Aa right join @b Bb on Aa.a=Bb.a
--内
select * from @a Aa join @b Bb on Aa.a=Bb.a
--外
select * from @a Aa full join @b Bb on Aa.a=Bb.a
--完全
select * from @a,@b
pengdali 2003-10-09
  • 打赏
  • 举报
回复
select * from 库存 full join 销售 on 库存.产品型号=销售.产品型号 full join 生产 on 销售.产品型号=生产.产品型号
酒店管理系统分为前台和后台两个部分,其中后台供管理员管理系统之用,包括客房类型设置模块、客房设置模块以及操作员设置三个子模块,具体的功能模块如下。 客房类型设置模块:该模块用来管理酒店的所有客房类型,包括新增客房类型、编辑已有客房类型、删除客房类型等功能。 客房设置模块:该模块用来管理酒店的所有客房信息,包括新增客房、编辑已有客房、删除客房等功能。 操作员设置模块:该模块用来管理酒店的操作员信息,包括新增操作员、编辑已有操作员信息、删除操作信息等功能。 系统前台供酒店所有工作人员使用,包括入住登记模块、结账模块、预定模块、客户管理模块以及业务统计五个模块。具体的功能模块如下。 入住登记模块:该模块用来登记客户的入住信息,其中入住信息包括登记信息、客人信息以及费用信息三部分。 结账模块:该模块用来处理客户的退房信息,只需要知道客户所住的房间号码,就能进行退房结账。 预定模块:该模块用来处理客户的预定信息,除了可以新增预定信息外,还可以对已有的预定信息进行管理。 客户管理模块:该模块用来管理客户的登记信息,包括新增客户信息、编译已有客户信息、删除客户信息等功能。 业务统计模块:该模块用来统计酒店的客房出租率,并且已图形的形式来显示出租率信息。 本系统的开发工具具体如下。 系统开发平台:MyEclipse 6.5。 数据库管理系统软件:MySQL 5.0。 java开发包:JDK 5.0以上。 Web服务器:Tomcat 6.0。 本系统采用MVC架构模式开发,具体技术如下。 AJAX框架:使用ExtJS技术开发 显示层:使用JSP技术开发 数据访问层:使用DAO模式开发 持久层:使用Hibernate框架开发 首页访问地址 :http://localhost:8080/JavaPrj_9/首页配置 页面 修改 打开web.xml 修改 即可 /WEB-INF/pages/userLogin.jsp 复制代码 数据库配置 为hotel-hibernate.xml 文件 测试了将近2个小时 系统跑的还不错 一下小细节 bug 大家可以自己去调整下
通过该课程的学习,掌握0行代码写服务框架的服务发布,参数验证,代码生成功能,具备初步的使用能力 该项目本身设计的内容非常多,后期会逐步开放讲解框架后期内容参考:https://mp.csdn.net/editor/html/112142371与Springboot+mybatis和Springboot+jdbctemplate对比:https://editor.csdn.net/md/?articleId=106091083框架主要功能:生成自定义sql模板文件1.一键生成数据库所有列增、删、改、查接口通过代码生成器,一键生成增、删、改、查代码,分为有代码和无代码两种方式。有代码方式可以在需要业务封装时直接调用生成的代码进行业务组装。有代码方式和无代码方式都可以直接调用访问。2.可指定单生成接口可以指定生成那张的数据接口,以免对已有接口造成影响。3.一键生成接口测试postman调用文件生成postman调用接口,直接导入即可测试,不需要单独也写接口文档,也不需要使用swangger在代码中单独增加注释。字段长度类型,大小一目了然。4.可生成controller、service、dao、model、自定义sql、postman测试文件可以根据实际需要进行单独配置5.接口任意参数可自动配置多维度验证比如一个参数phone,在不需要编程的情况下,可以配置验证是否为空、长度、是否是电话号码6.数据接口可以任意组合形成新的接口比如、查询学校是一个接口、查询城市是一个接口,通常情况下在前端是需要两次请求,现在可以通过一次请求自动合并两个接口的数据结果,一次性返回。而这样的组合可以是无限个组合。7.所有接口参数均可自动封装比如查询省份接口,里面有10个参数,前端传入几个参数,便可自动封装几个参数。8.所有查询接口自带分页列查询,有码方式和无码方式,均自带分页。9.通过简单sql的编辑即可完成服务发布只要会写sql便可生成服务,不需要任何多余操作10.接口可以进行限流配置,可以根据ip、token、ak进行限流操作多维度自定义限流,可设置次数、时限、限流方式11.所有接口可以进行签名认证所有接口通过接口sign签名认证12.所有接口可以进行登录认证限制,也可单独配置不需要登录认证可以指定接口单独授权不需要登录验证,比如验证码接口13.所有接口均可设置需要验证码验证所有的接口都可以通过参数配置设置短信验证码和图片验证码14.所有查询接口均可单独设置缓存所有接口皆可设置单独缓存,缓存周期15.所有接口均可监控访问次数同一接口访问次数记录,很容易监控服务访问,可以做更细致的服务优化16.所有接口均可记录访问日志,包括请求来源请求参数、获得结果入参出参所有访问皆有详细记录17.项目中的代码可以进行自动统计代码量一键统计代码量,包括前后端代码行数和体积18.可以自动进行数据统计,可配置单数据量统计、也可以配置定时任务数据统计自动数据统计,方便做BI可视化,不需要开发直接配置即可19.可进行跨域设置跨域通过配置文件配置20.可进行IP禁用对于恶意访问ip进行封禁21.可进行访问次数限制所有接口可以进行访问次数限制22.可进行访问来源设备、应用检查验证验证请求来源所用设备和请求发起的应用

27,580

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧