access 多表查询 结果记录条数减少

来源:百度知道 编辑:UC知道 时间:2024/06/09 13:29:01
先建了一个项目名称的地表,里面包括全部的项目,中长期和短期,这些项目用项目号区别,短期的项目号在数字编号最后加C以示区别。另外还有短期项目成本、短期项目投入、长期项目成本、长期项目投入。其中短期项目成本表里面包含项目名称和成本数据,其他表类似。但是每个表中并不包含全部的项目名称,也就是说,比如在短期项目成本中,只记录有成本的短期项目,没有的不记录。在做查询时,使用项目名称表、短期项目成本表、短期项目投入表,最后查询的结果只显示既有成本又有投入的项目名,而不是全部显示项目名,并在没有记录的项目后显示空记录。该如何修改来显示全部的项目名以及既是没有成本或者投入数据?
总共5个表,一个是项目名称,包括全部的项目名称、项目编号;另外4个,分别是中长期投入、成本,短期投入、成本。现在要生成一个表或者查询,要求就是包含全部的项目名称,以及有记录的成本和投入。

我现在做的短期成本和投入,出来的结果只是既有成本又有投入的短期项目信息,但是没有成本或者投入的项目,就不显示了,怎么处理?

写的确实比较乱,建议楼主下次提这种问题把你的表结构和sql语句写出来,大家分析起来就清楚多了。

不过我大体还是弄懂了你的意思,你应该是在多表连接时连接符设置的问题,如果用

A表.主键=B表.主键

这种写法就会出现你所说的问题,你可以试着用“A表.主键*=B表.主键”或是“left join、right join、inner join”等写法来完成你的连接。

顺便在网上给你找了一篇参考,看一下吧:

http://yexin188.blog.163.com/blog/static/1011661320094111331584/

说的太混乱了。先理顺下吧。

select a.项目名称,a.项目编号 from 项目名称 as a,中长期投入 as b,中长期成本 as c,短期投入 as d,短期成本 as e where (a.项目编号=b.项目编号 and b.项目资金<>'' ) or (a.项目编号=c.项目编号 and c.项目资金<>'' ) or (a.项目编号=d.项目编号 and d.项目资金<>'' ) or (a.项目编号=e.项目编号 and e.项目资金<>'' )