TOP和ORDER BY的问题,急!!!

kuangdp 2007-09-20 04:45:32
Select e.REPORTDATE,e.SYMBOL, e.FNAME, e.SNAME, e.STYPE, e.F0010, e.F0020, e.F0040, e.F0050, e.F0070, e.F0080, e.F0100, e.F0110, e.F0120, e.F0130, e.F0140,e.F0200
From (SELECT TOP 10 A.REPORTDATE,A.SYMBOL, A.FNAME, A.SNAME, A.STYPE, A.F0010, A.F0020, A.F0040, A.F0050, A.F0070, A.F0080, A.F0100, A.F0110, A.F0120, A.F0130, A.F0140,B.F0020 AS F0200
FROM TB_2005 A,TB_2038 B WHERE A.SYMBOL='260109'AND A.F0010=B.SYMBOL AND A.REPORTDATE=(SELECT MAX(REPORTDATE)AS MAXDATE FROM TB_2005 c Where a.SYMBOL=c.SYMBOL )
) as e
order by e.F0200 desc
上面的语句可以完成我想的排序 ,但是如果换成
order by e.F0110 desc 结果就不一样了 就不是按照e 表来排序的了 ,请哪位大虾赐教!
...全文
164 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
kuangdp 2007-09-20
  • 打赏
  • 举报
回复
哈~发现问题了~~``确实不需要了~``因为我里面少了一个关联,才导致结果是这样```
现在里面关联了,就好了
SELECT TOP 10 A.REPORTDATE,A.SYMBOL, A.FNAME, A.SNAME, A.STYPE, A.F0010, A.F0020, A.F0040, A.F0050, A.F0070, A.F0080, A.F0100, A.F0110, A.F0120, A.F0130, A.F0140,B.F0020
FROM TB_2005 A,TB_2038 B WHERE A.SYMBOL='260109'AND A.F0010=B.SYMBOL
and A.REPORTDATE=B.F0010 --少了这行
AND A.REPORTDATE=(SELECT MAX(REPORTDATE)AS MAXDATE FROM TB_2005 c Where a.SYMBOL=c.SYMBOL )
ORDER BY B.F0020 DESC /ORDER BY A.F0100 DESC --现在怎么排都好了```想怎么排怎么排 呵呵```
还是谢谢大家的讨论```此贴到此结束!!西西```
livan1038 2007-09-20
  • 打赏
  • 举报
回复
就這樣看不出什麼問題哦。。
就裡面的子查詢就可以實現你上面的功能了吧,看不出為什麼還要加一層查詢
kuangdp 2007-09-20
  • 打赏
  • 举报
回复
但是按照e表的其他字段排序 结果就不是我想的'按照E表的结果'再去排序啊`
plsandslp 2007-09-20
  • 打赏
  • 举报
回复
看起来没得啥子问题
kuangdp 2007-09-20
  • 打赏
  • 举报
回复
就是我想把 括号的e 表的数据按照某个字段来排列啊~``现在按照e.F0200 是对的,但是 如果按照其他的就不对了~~``
fa_ge 2007-09-20
  • 打赏
  • 举报
回复
這樣看不出效果
caixia615 2007-09-20
  • 打赏
  • 举报
回复
最好列举点数据出来可以测试下

22,210

社区成员

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

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