关于数据库多表关联关联的问题

其他回答(1)
建立关系还是有好处的,能够从数据库层面杜绝错误的数据结构,有时一个代码BUG就可能造成数据灾难,像级联删除这种情况,由代码明确写出整个删除过程,会比数据库里自动完成要好。
现在的一些项目可能是追求速度,或者有些人不太懂数据库原理,故而没编写关系。
园豆:4300
&&&您需要以后才能回答,未注册用户请先。关于数据库SQL的问题,详见问题补充_百度知道
关于数据库SQL的问题,详见问题补充
教师年龄,年龄,M,但一个教师可以教多门课程。
②查询年龄在30-35岁之间的教师所教课程的成绩单,设计一个学生——课程的数据库,一门课可由多个学生选修,课程号:N),教师姓名,教师可能重名。假设一门课程总是由一个教师讲授,课程名,包含下列表关系:N,1。
①定义所得关系(表)结构,所在系)课程关系(课程号,规范化至3NF。
③插入一条记录:一个学生可以选修多门课,学分) 选修关系(学号:9607001号学员C12号课程成绩为80分,要求在图中表示联系的类型(1: 学生关系(学号。注。 (2)上题所得到的结果关系模式,成绩)(1)试用E-R图描述这个数据库,学号与课程号组成主键 (1)请将其进行无损联接分解,教师办公室),其中,用SQL语言执行下列操作:1;并且指出每个表关系的键码:教务(学号。(2)用SQL语句定义上述表关系结构现有关系模式,学生选课后有成绩,成绩,性别,姓名,课程号。
④将教师张三的办公室从“7-401”搬到“7-418”
明显少了一个字段?2 品号表中,怎么可能是02呢:父品名编号3 更正上面错误后,你的数据描述有问题很明显:1 C的阶码,你就知道该怎么做了
其他类似问题
数据库的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁您所在的位置: &
SQL Server数据库多表关联汇总查询的问题解决
SQL Server数据库多表关联汇总查询的问题解决
本文我们主要介绍了SQL Server数据库多表关联汇总查询的一个实例问题的原因分析及解决方案,希望本次的介绍能够对您有所收获!
SQL Server数据库多表关联汇总查询是我们经常用到的,本文我们就介绍了一个多表关联汇总查询的实例,通过这个实例在多表关联查询中遇到的问题以及它的解决方法让我们一起来了解一下SQL Server数据库多表关联汇总查询的相关知识吧,希望本次的介绍能够对您有所帮助。
select&isnull(s.mnumber,ss.mnumber)&mnumber,isnull(m.whcode,ss.whcode)&whcode, &&&&&isnull(sum(factreceiptquan),0)-isnull(sum(factissuequan),0)&+&sum(isnull(ss.quan,0))&quan& &&&&&from&(select&*&from&gy_inoutmain&where&billcode&in('1201','1202','1203','1204','1205','1206')&)&m &&&&&inner&join&gy_inoutsub&s&on&m.inoutmainid=s.inoutmainid &&&&&left&join( &&&&&&&&&select&sms.mnumber,sm.whcode,sum(sms.quan)&quan&from&Kf_StartMain&sm &&&&&&&&&inner&join&Kf_Startsub&sms&on&sm.startmainid=sms.startmainid &&&&&&&&&group&by&sm.whcode,sms.mnumber &&&&&)&ss&on&m.whcode=ss.whcode&and&s.mnumber=ss.mnumber &&&&&group&by&isnull(m.whcode,ss.whcode),isnull(s.mnumber,ss.mnumber)&order&by&s.mnumber&
上面将收发表的数量进行汇总,然后再加上期初表的数量,得到库存量。但是得到的实际数量却多出很多来,比如本来物料&&只有20吨,统计的结果却有5000多吨。问题出在哪里呢?
select&sms.mnumber,sm.whcode,sum(sms.quan)&quan&from&Kf_StartMain&sm &&&&&&&&&inner&join&Kf_Startsub&sms&on&sm.startmainid=sms.startmainid &&&&&&&&&where&sms.mnumber='&&&&'&&&&&&&&&group&by&sm.whcode,sms.mnumber&
上面sql统计[期初表] 数量 = 31.500000
select&s.mnumber,m.whcode, &&&&isnull(sum(factreceiptquan),0)-isnull(sum(factissuequan),0)&quan& &&&&from&(select&*&from&gy_inoutmain&where&billcode&in('1201','1202','1203','1204','1205','1206')&)&m &&&&inner&join&gy_inoutsub&s&on&m.inoutmainid=s.inoutmainid &&&&where&s.mnumber='&&&&&&&&&&&'&&&&group&by&m.whcode,s.mnumber &&&&order&by&s.mnumber&
上面sql统计[收发表] 数量 = -27.000000
select&s.mnumber,m.whcode, &&&&isnull(sum(factreceiptquan),0)-isnull(sum(factissuequan),0)&+sum(ss.quan)&quan& &&&&from&(select&*&from&gy_inoutmain&where&billcode&in('1201','1202','1203','1204','1205','1206')&)&m &&&&inner&join&gy_inoutsub&s&on&m.inoutmainid=s.inoutmainid &&&&left&join( &&&&&&&&select&sms.mnumber,sm.whcode,sum(sms.quan)&quan&from&Kf_StartMain&sm &&&&&&&&inner&join&Kf_Startsub&sms&on&sm.startmainid=sms.startmainid &&&&&&&&where&sms.mnumber='&&&&'&&&&&&&&group&by&sm.whcode,sms.mnumber &&&&)&ss&on&m.whcode=ss.whcode&and&s.mnumber=ss.mnumber &&&&where&s.mnumber='&&&&&&&&&&&'&&&&group&by&m.whcode,s.mnumber &&&&order&by&s.mnumber&
上面sql关联两表,数量=,原来,在[收发表]关联[期初表],[收发表]有几百条记录,而[期初表]只有一条记录,两者一关联,则这几百条记录都有期初数,结果期初数被累加了几百次。
举个例子:
create&table&[期初表](MNUmber&varchar(10),quan&decimal(10,3)) &create&table&[收发表](MNUmber&varchar(10),quan&decimal(10,3)) &&insert&into&[期初表]&values('001',7) &insert&into&[期初表]&values('001',5) &insert&into&[期初表]&values('001',-9) &&insert&into&[收发表]&values('001',10) &&select&sum(quan)&from&期初表&&--期初表合计=3&
那得到的现存量应该是 [收发表]的合计 加上 期初数:3+10 = 13。但一关联,再汇总,就出问题了。
select&sum(m.Quan)+sum(s.Quan)&from&[收发表]&m &inner&join&[期初表]&s&on&m.MNumber=s.MNumber& &group&by&m.MNumber&
得到的结果是33。因为一关联,就变成:
收发表.MNumber&&&&收发表.quan&&&期初表.MNumber&&&&期初表.quan&&& &--------------------------------------------------------------------- &001&&&&&&&&&&&&&&&&7&&&&&&&&&&&&&&001&&&&&&&&&&&&&&10&&& &001&&&&&&&&&&&&&&&&5&&&&&&&&&&&&&&001&&&&&&&&&&&&&&10 &001&&&&&&&&&&&&&&&&-9&&&&&&&&&&&&&001&&&&&&&&&&&&&&10&
结果就变成:7+5+(-9)+10+10+10,期初数被加了三次。解决的办法就是采用平级汇总的方式,先汇总,然后再关联。不要关联的两边,一边是明细,一边是汇总,那关联肯定出问题。
关于SQL Server数据库多表关联汇总查询的问题就介绍到这里了,希望本次的介绍能够对您有所收获!
【编辑推荐】
【责任编辑: TEL:(010)】
关于&&的更多文章
不管你有没有准备好,新版SQL Server来了!代号为Denali的下一个
数据库产品
数据库综合
数据库新闻
维基百科将切换到另外一款开源数据库MariaDB
作为甲骨文公司的基石,Oracle数据库一直占据着数据库
MySQL众多的管理工具,是广大DBA管理好数据库的利器。
本专题将带领大家走入MongoDB的世界,MongoDB是一个基
本书结合JSP和Servlet的最新规范,从基本的语法和规范入手,以经验为后盾,以实用为目标,以实例为导向,以实践为指导,深入浅出
51CTO旗下网站 下载
 收藏
该文档贡献者很忙,什么也没留下。
 下载此文档
正在努力加载中...
关系数据库理论
下载积分:1000
内容提示:
文档格式:DOC|
浏览次数:0|
上传日期: 08:57:58|
文档星级:
该用户还上传了这些文档
关系数据库理论.DOC
官方公共微信

我要回帖

更多关于 数据库表关联 的文章

 

随机推荐