两个表链接

nijiushiposhi 2014-03-16 08:08:44
需求如下
A表字段
YGBH YLBX_JF GJJ_JF SJ
001 100 200 2014-3-16
001 101 201 2014-3-17
001 100 202 2014-4-16

B表字段
YGBH YLBX_KF GJJ_KF SJ YLBX_BJ GJJ_BJ
001 100 200 2014-3-16 0 0
001 101 201 2014-3-18 0 10

通过sql实现如下效果(A、B表数据行数可能一样,也可能不一样;null为无数据)
YGBH YLBX_KF GJJ_KF SJ YLBX_BJ GJJ_BJ YLBX_JF GJJ_JF
001 100 200 2014-3-16 0 0 100 200 3.16AB都有数据
001 null null 2014-3-17 null null 101 201 17号B表无数据
001 101 201 2014-3-18 0 10 null null 18号A表无数据
001 null null 2014-4-16 null null 100 202 4.16号B表无数据

请大家帮帮忙
...全文
72 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
直面人生 2014-03-17
  • 打赏
  • 举报
回复
引用 2 楼 nijiushiposhi 的回复:
好的,我试下。想学好sql应该看看哪些资料呐?
http://bbs.csdn.net/topics/390719238 上面有资料下载,推荐看 技术内幕!
nijiushiposhi 2014-03-17
  • 打赏
  • 举报
回复
好的,我试下。想学好sql应该看看哪些资料呐?
  • 打赏
  • 举报
回复
试试这个:
create table a(YGBH varchar(10),YLBX_JF varchar(10),GJJ_JF  varchar(10)
,SJ datetime
)

insert into a 
select  '001',            '100',            '200',                    '2014-3-16' union all
select  '001',            '101',            '201',                    '2014-3-17' union all
select  '001',            '100',           '202',                    '2014-4-16'

create table b(
YGBH varchar(10),       
YLBX_KF   varchar(10), GJJ_KF varchar(10),SJ  datetime,
YLBX_BJ  int,      GJJ_BJ  int
 ) 
 
 insert into b     
select  '001',            '100',            '200', '2014-3-16',0,0 union all
select  '001',            '101',            '201', '2014-3-18',0,10
go


select ISNULL(a.YGBH,b.YGBH) YGBH,
       b.YLBX_KF YLBX_KF,
       b.GJJ_KF GJJ_KF,
       ISNULL(a.SJ,b.SJ) SJ,
       b.YLBX_BJ,
       b.GJJ_BJ,        
       a.YLBX_JF,
       a.GJJ_JF      
from a 
full join b 
       on b.YGBH = a.YGBH and
          b.YLBX_KF = a.YLBX_JF and
          b.GJJ_KF = a.GJJ_JF and
          b.SJ = a.SJ
/*
YGBH	YLBX_KF	GJJ_KF	SJ	YLBX_BJ	GJJ_BJ	YLBX_JF	GJJ_JF
001	100	200	2014-03-16 00:00:00.000	0	0	100	200
001	NULL	NULL	2014-03-17 00:00:00.000	NULL	NULL	101	201
001	NULL	NULL	2014-04-16 00:00:00.000	NULL	NULL	100	202
001	101	201	2014-03-18 00:00:00.000	0	10	NULL	NULL
*/  

34,576

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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