设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
查看: 1860|回复: 4
打印 上一主题 下一主题

[查询] 三表联合查询

[复制链接]
跳转到指定楼层
1#
发表于 2012-2-7 12:35:24 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求助:求知识,谢谢各路英雄

1、如何在查询里可以实现表4的效果。(以表3的CODE为条件,表1、表2的对应记录合并在一起)
2、请看我做的联合查询,为什么会多了两条记录

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
发表于 2012-2-7 13:03:12 | 只看该作者
感谢楼主的 分享啊!!哈哈!
3#
发表于 2012-2-7 13:58:53 | 只看该作者
首先纠正一下,intime、outtime的字段类型应改为日期时间类型,innum改为数字类型,然后:
SELECT a.code, Max(a.intime) AS intime之最大值, Max(a.outtime) AS outtime之最大值, Sum(a.innum) AS innum之总计
FROM [SELECT 表1.code,表1.intime,表1.innum,0 as outtime
FROM 表1
UNION ALL SELECT 表2.code,0 as intime,0 as innum,表2.outtime
FROM 表2]. AS a
GROUP BY a.code
HAVING (((a.code) In (select code from 表3)))
基本可以达到你要的效果。
4#
发表于 2012-2-7 14:06:13 | 只看该作者
(以表3的CODE为条件,表1、表2的对应记录合并在一起)
可以有几种理解:
1、表1、表2的对应记录的code必须在表3中。楼上就是这种情况的处理方法之一
2、表3的所有记录,以及表1、表2的对应记录的code必须在表3中。这种情况还得另外处理,如下:
SELECT a.code, Max(a.intime) AS intime之最大值, Max(a.outtime) AS outtime之最大值, Sum(a.innum) AS innum之总计
FROM [SELECT 表1.code,表1.intime,表1.innum,0 as outtime
FROM 表1
UNION ALL SELECT 表2.code,0 as intime,0 as innum,表2.outtime
FROM 表2 union SELECT 表3.code,0 as intime,0 as innum,0 as outtime
FROM 表3]. AS a
GROUP BY a.code
HAVING (((a.code) In (select code from 表3)))
5#
 楼主| 发表于 2012-2-7 14:20:36 | 只看该作者
aslxt,thank you你啊!!!问题得已解决
{:soso_e181:}
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-5-10 18:42 , Processed in 0.093823 second(s), 29 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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