回 帖 发 新 帖 刷新版面

主题:查询怎样实现表内每一个日期的金额从大到小排列的前10名,请高手帮忙。

原表一内数据排列如下

产品    金额    日期

台灯    65       8.29
优盘    55       8.25
茶杯    50       9.2
文具    45       8.29
鼠标    40       8.25
托盘    35       9.2

通过查询[b]SELECT * FROM 表一 ORDER BY 日期 desc,金额 desc    [/b]得到了如下效果


产品    金额    日期

茶杯    50      9.2
托盘    35      9.2
台灯    65      8.29
文具    45      8.29
优盘    55      8.25
鼠标    40      8.25

我想按照每一个日期的金额都按照从大到小的排列,同时只显示金额从大到小的前10位或者前几位,我不知道该怎么做,,请各位帮忙

回复列表 (共4个回复)

沙发

用 UNION 连接多个子查询,
要每个时间段不同的子查询,前十个记录。

板凳


非常感谢cbl518大师的帮助,但小弟还是不知道怎样来写,麻烦cbl518大师给写一下,[em1]

3 楼

给你个思路:

select * from 表1 where .F. into cursor temp_table1


select 日期 distinc from 表1 order by 日期 DESC into cursor temp_table2
   scan
      Current_Date=temp_table2.日期
      select * from 表1 where 日期=Current_Date order by 金额 DESC into cursor temp_table3
      select * from cursor temp_table1  union select * from temp_table3 where reccount()<=10 into cursor temp_table1

      select temp_table2
   endscan


select temp_table1
brow

4 楼

select * from 表1 where .F. into table temp_table
select distinc 日期 from 表1 into cursor temp_table1
scan
  Current_Date=日期
  inseert innto temp_table select top 10 * from 表1 where 日期=Current_Date order by 金额 DESC        && 第一二个字中多余一个'e'和'n',执行时去掉
endscan
select temp_table
brow

我来回复

您尚未登录,请登录后再回复。点此登录或注册