数据: 年 月 日 开盘 收盘
使用下面语句搜索到了 每年每个月的月初和月末都是几号  select 年,月,MIN(日) as frist,MAX(日) AS laset from mt4his.DB  GROUP BY 年,月我想得到  每年每个月的月初和月末 所对应的 开盘  收盘 应该怎么写

解决方案 »

  1.   

    大概这样(月初)
    select  年,月,日, 开盘, 收盘 from mt4his.DB a,
    (select 年,月,MIN(日) as frist from from mt4his.DB GROUP BY 年,月) b
    where a.年=b.年 and a.月=b.月 and a.日=b.first
      

  2.   

    form12.Query1 .Close;
    form12.Query1.DatabaseName:=(ExtractFilePath(ParamStr(0))+'TABLE');
    form12.Query1.SQL.Clear;
    form12.Query1.SQL.Add('select 年,月,日, 开盘, 收盘 from mt4his.DB a,(select 年,月,MIN(日) as frist,MAX(日) AS laset from mt4his.DB  GROUP BY 年,月) b where a.年=b.年 and a.月=b.月 and a.日=b.first');
    form12.Query1.Open;
    --
    显示INVALID USE OF KEYWORD TOKEN:select
      

  3.   

    晕啊,没注意是paradox数据库,它的SQL功能太有限了...
      

  4.   

    http://download.csdn.net/source/1644211
      

  5.   

    paradox的话,感觉只能二次查询完成
    select 年,月,MIN(日) as frist,MAX(日) AS laset from mt4his.DB GROUP BY 年,月
    得到 年,月,frist,laset
    那么每年每个月的月初所对应的 开盘 收盘
    对上面的结果做循环:
    得到1个年,月,frist
    select 年,月,开盘,收盘 from 表 where 年="上面的年" and 月="上面的月" and 日=first
    下一个 年,月,frist并循环
      

  6.   

    已经换了 ACCESS 显示 该特定字段 '年'可以参考SQL语句中 FROM子句列表中的多个表---------
    -------------
    sa:=ExtractFilePath(ParamStr(0))+'TABLE\mt4his.mdb';
    form10.ADOConnection1 .ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;Data Source='+sa;
    form10.ADOQuery1 .Connection:=form10.ADOConnection1 ;
     s:='select 年,月,日, 开盘, 收盘 from mt4his a,(select 年,月,MIN(日) as frist,MAX(日) AS laset from mt4his GROUP BY 年,月) b where a.年=b.年 and a.月=b.月 and a.日=b.first';
      form10.ADOQuery1.SQL.Add(s);
      form10.ADOQuery1 .open;
      form10.ADOQuery1 .Active:=true;