数据表里有N行数据,D1列为时间,每分钟一行,现想循环取某几列一个时间点往前推1个小时的平均值,每分钟要1个平均值,滚动的,然后输出到EXCEL中,如:D2列:10:30分的数据等于从10:30到9:30的60行的D2的平均值(注意,有时从9:30到10:30并不是一定60行,有时会丢数据,丢几行也有可能),实在弄不明白,初学者,请给详细语句。谢谢!
大侠,现在需要字符连接串,这是别人给的一句,
sqlstring = "select convert(varchar(50),dt,23),datepart(hh,dt),(select avg(d5) from SHEET_DAILY where dt<=c1.dt and dt>=c1.dt-0.04166666667),count(*) from SHEET_DAILY c1 where dt between '" & yesterday_date2 & "' and '" & yesterday_date1 & "' ORDER BY CONVERT(varchar,dt,23),DATEPART(hh,dt)"
With ActiveSheet.QueryTables.Add(Connection:=connstring, Destination:=Range("A1"), Sql:=sqlstring)
但是报错,说C1.DT未包含在聚合函数中,并且没有GROUP BY子句
å¤§ä¾ ï¼ç°å¨éè¦ä¸ä¸ªè¿æ¥å符串ï¼å«äººç»åºäºä¸å¥ï¼è¯·çè¡¥å é®é¢ï¼ä½æ¯æ¥éã请修æ¹ï¼è°¢è°¢è°¢ã
追çå¯ä»¥å»æcountï¼*ï¼ï¼å¦æéè¦çè¯å个æ¥è¯¢æ¾å¨é£ (select count(*) from ...)