怎么写出这样一条SQL语句? 比较难,求助!

ufo_ufo 2004-11-02 05:15:38
表A 表B

字段: a1 a
a2 b
a3 c
...
a40

表A的a1到a40这四十个字段关联表B.a字段,取得b,按照c的升序,取出前三个B.b

要横向排列的数据,不要纵向。

那位大虾帮解决一下。
...全文
216 20 打赏 收藏 转发到动态 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
Annyang620 2004-11-03
  • 打赏
  • 举报
回复
樓主有試我說的方法嗎?
ufo_ufo 2004-11-03
  • 打赏
  • 举报
回复
顶阿
Annyang620 2004-11-02
  • 打赏
  • 举报
回复
按樓主的說法,你要的表b中的b字段與表a沒有關系,而你要的又是三個紀錄橫向的資料,那它是個自連接應該這樣寫:
select top 1 a.b,b.b,c.b from (select top 3 b from 表b order by c asc) a join (select top 3 b from 表b order by c asc) b
on a.b<>b.b join (select top 3 b from 表b order by c asc) c on b.b<>c.b and a.b<>c.b
Annyang620 2004-11-02
  • 打赏
  • 举报
回复
按樓主的說法,你要的表b中的b字段與表a沒有關系,而你要的又是三個紀錄橫向的資料,那它是個自連接應該這樣寫:
select top 1 a.b,b.b,c.b from (select top 3 b from 表b order by c asc) a join (select top 3 b from 表b order by c asc)
on a.b<>b.b join (select top 3 b from 表b order by c asc) c on b.b<>c.b and a.b<>c.b
ufo_ufo 2004-11-02
  • 打赏
  • 举报
回复
top 3 出来的数据只是纵向的,而且条件也不对阿
lsxaa 2004-11-02
  • 打赏
  • 举报
回复
楼主,我写的对吗
lsxaa 2004-11-02
  • 打赏
  • 举报
回复
横排,

declare @s varchar(1000)
set @s=''
select @s=@s+','+b.b from (select top 3 b.b from a,b
where a.a1=b.a or a.a2=b.a ...
order by b.c) b
print stuff(@s,1,1,'')

Yang_ 2004-11-02
  • 打赏
  • 举报
回复
不小心又到这里

netcoder(朱二) 很有创意,不过加个top 3 也许更能体现....

lsxaa 2004-11-02
  • 打赏
  • 举报
回复
上面的or 可以改成and
lsxaa 2004-11-02
  • 打赏
  • 举报
回复
select top 3 b.b from a,b
where a.a1=b.a or a.a2=b.a ...
order by b.c
lsxaa 2004-11-02
  • 打赏
  • 举报
回复
是不是这样???

select top 3 b.b from a,b
where a.a1=b.a or a.a2=b.a2 ...
order by b.c

chd2001 2004-11-02
  • 打赏
  • 举报
回复
能不能举个例子说明,实在是深奥啊!
kookboy 2004-11-02
  • 打赏
  • 举报
回复
晕了
ufo_ufo 2004-11-02
  • 打赏
  • 举报
回复
我需要 select 1,2,3 from .... 的数据 ,也就是排序结果中的前三个数据横向
Annyang620 2004-11-02
  • 打赏
  • 举报
回复
樓上的兄弟,如果他的表a中a1, a2 ...a40都相同的話,我還真想不出他的表有什麼意義咧~~~
ufo_ufo 2004-11-02
  • 打赏
  • 举报
回复
不会吧,大哥们

表A的字段必须要得,还有其他的条件,只是和这块没多大关系就没写。
netcoder 2004-11-02
  • 打赏
  • 举报
回复
select * from
表A a join 表B b
ON a.a1=b.a AND a.a2=b.a AND ……
ORDER BY b.c ASC

谁继续呀
sql20041025 2004-11-02
  • 打赏
  • 举报
回复
发挥大家的想象力,猜吧。
Yang_ 2004-11-02
  • 打赏
  • 举报
回复
楼主很简洁,可惜理解不了
chd2001 2004-11-02
  • 打赏
  • 举报
回复
你的需求好象不关表A的事啊?最好举例说明一下拉。表A在这里做实验就不要那么多字段拉

34,587

社区成员

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

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