数据庫查询问题

myinfos 2006-12-08 03:18:33
假设我有如下的数据
name1 2.3 2005-12-13
name1 3.3 2005-12-14
name1 1.4 2005-12-16
name1 4.7 2005-12-17
name2 2.5 2005-12-13
name2 4.3 2005-12-15
name2 2.8 2005-12-16
name2 5.9 2005-12-18
name2 1.36 2005-12-19

我要取得如下的数据结果集
name1 2.3 2005-12-13 name2 2.5
name1 3.3 2005-12-14 name2 NULL
name1 NULL 2005-12-15 name2 4.3
name1 1.4 2005-12-16 name2 2.8
name1 4.7 2005-12-17 name2 NULL
name1 NULL 2005-12-18 name2 5.9
name1 NULL 2005-12-19 name2 1.36
即是通过日期关联起来,并放到一个结果集中?谢谢
...全文
117 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
wzh1215 2006-12-08
  • 打赏
  • 举报
回复
楼主倒不如跟据时间字段分组,其它字段分别合并(每1、2列分别合并),然后到数据显示层将其分开。
myinfos 2006-12-08
  • 打赏
  • 举报
回复
谢谢楼上的,我自已也查資料找到解决了,是用交叉链接
冷箫轻笛 2006-12-08
  • 打赏
  • 举报
回复
create table tab
(
name varchar(10),
num decimal(3,1),
rq varchar(10)
)

insert into tab select 'name1', 2.3, '2005-12-13'
insert into tab select 'name1', 3.3, '2005-12-14'
insert into tab select 'name1', 1.4, '2005-12-16'
insert into tab select 'name1', 4.7, '2005-12-17'
insert into tab select 'name2', 2.5, '2005-12-13'
insert into tab select 'name2', 4.3, '2005-12-15'
insert into tab select 'name2', 2.8, '2005-12-16'
insert into tab select 'name2', 5.9, '2005-12-18'
insert into tab select 'name2', 1.36, '2005-12-19'

--语句
select isnull(t1.name,'name1') as name1,t1.num as num1,isnull(t1.rq,t2.rq) as rq,
isnull(t2.name,'name2') as name2,t2.num
from
(select * from tab where name = 'name1')t1 full join
(select * from tab where name = 'name2')t2 on t1.rq = t2.rq
order by rq

--结果
name1 2.3 2005-12-13 name2 2.5
name1 3.3 2005-12-14 name2 NULL
name1 NULL 2005-12-15 name2 4.3
name1 1.4 2005-12-16 name2 2.8
name1 4.7 2005-12-17 name2 NULL
name1 NULL 2005-12-18 name2 5.9
name1 NULL 2005-12-19 name2 1.4


--删除环境
drop table tab

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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