Foxtable(狐表)用户栏目专家坐堂 → 求教,这样的SQL查询语句如何实现?


  共有10763人关注过本帖树形打印复制链接

主题:求教,这样的SQL查询语句如何实现?

帅哥哟,离线,有人找我吗?
SQL2011
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:21 积分:284 威望:0 精华:0 注册:2012/2/24 19:31:00
  发帖心情 Post By:2012/3/27 18:58:00 [显示全部帖子]

如果使用Sql server 2005 以后的版本 作为外部数据源,写个视图就可以了

 

select a.seqno,a.col01,Rs.col01,rs.col02,rs.seqno from

A

left join

(SELECT b.col01,b.col02,b.seqno,

ROW_NUMBER() OVER (PARTITION BY b.col01 ORDER BY b.seqno desc) AS RowID

 FROM B )rs

on a.seqno=rs.col01 and rs.Rowid=1


 回到顶部
帅哥哟,离线,有人找我吗?
SQL2011
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:21 积分:284 威望:0 精华:0 注册:2012/2/24 19:31:00
  发帖心情 Post By:2012/3/28 6:23:00 [显示全部帖子]

SQL 2000 下的方法比较繁琐一些,速度也可能比较慢。

 

 

select a.seqno,a.col01,Rs.col01,rs.col02,rs.seqno

from A

left join

(

select

(select count(*) from B as B2 where B2.Seqno>=B1.seqno and b1.COL01=b2.col01 ) as RowID

, B1.seqno,b1.COL01,b1.col02

from B as B1

) rs

on a.seqno=rs.col01 and rs.Rowid=1


 回到顶部
帅哥哟,离线,有人找我吗?
SQL2011
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:21 积分:284 威望:0 精华:0 注册:2012/2/24 19:31:00
  发帖心情 Post By:2012/3/28 9:31:00 [显示全部帖子]

直接连接那个Test的表到狐表,然后使用狐表的交叉表来呈现解决比较好。

 

那时一个动态的SQL, 意味着列的数量可能是不固定的。

 

如果一定要基于这个结果在来处理数据,SQL 里面有好几种可以方法呈现。

 

但是不知道狐表连接外部数据源的时候可不可以动态增加列。

请问狐爸能否解答。

谢谢

 


 回到顶部