数据: 年 月 日 开盘 收盘
使用下面语句搜索到了 每年每个月的月初和月末都是几号 select 年,月,MIN(日) as frist,MAX(日) AS laset from mt4his.DB GROUP BY 年,月我想得到 每年每个月的月初和月末 所对应的 开盘 收盘 应该怎么写
使用下面语句搜索到了 每年每个月的月初和月末都是几号 select 年,月,MIN(日) as frist,MAX(日) AS laset from mt4his.DB GROUP BY 年,月我想得到 每年每个月的月初和月末 所对应的 开盘 收盘 应该怎么写
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
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
select 年,月,MIN(日) as frist,MAX(日) AS laset from mt4his.DB GROUP BY 年,月
得到 年,月,frist,laset
那么每年每个月的月初所对应的 开盘 收盘
对上面的结果做循环:
得到1个年,月,frist
select 年,月,开盘,收盘 from 表 where 年="上面的年" and 月="上面的月" and 日=first
下一个 年,月,frist并循环
-------------
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;