问个ACCESS SQL语句的问题,高手请进!

jone7319 2010-03-30 05:32:16
我的数据库内容如下:

年 月 日 用电量 (注:年,月,日是字符型,用电量是数字型)
2009 1 1 38
.。。。。。。。。。。。。。。
2010 1 1 50
2010 1 2 45
.。。。。。。。。。。。。。。。
2010 2 1 60




现在要做的事就是分组逐年逐月统计每个旬的用电量,得到如下结果:

年 月 旬 用电量
2009 1 上旬 506
2009 1 中旬 489
2009 1 下旬 605
2009 2 上旬 545
2009 2 中旬 670
2009 2 下旬 368
.。。。。。。。。。。。


用sql语句怎么写?
(不用循环遍历数据库表)



...全文
132 点赞 收藏 18
写回复
18 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
柯本 2010-05-05
赞一个...
回复
bigfog 2010-05-05
select 年,月,sum(用电量) from titles
GROUP BY 年, 月
回复
llllllllllllleon 2010-05-05
接分。。。。多给点啊
回复
suine 2010-05-04
快结贴,给点分.
回复
lurel 2010-05-04
接分,哈哈
回复
e_board 2010-05-04
接分!!
回复
lghndyz 2010-05-04
接分!!
回复
YeBinYe 2010-05-02
学习了
回复
yefu2000 2010-05-02
jf...
回复
周药师 2010-05-02
来看看
lz都看看SQL
回复
jone7319 2010-05-01
看了老贴,竟发现还有一贴没结,打算结贴,见者有份!
回复
jone7319 2010-04-01
问题已解决,方法如下:

String sql="select 年,月,旬,avg(用电量) as 旬用电量 from (SELECT 年, 月, switch(日< 11,\'上旬\',日>20,\'下旬\',true,\'中旬\') as 旬,用电量 FROM 车间用电) group by 年,月,旬 order by 年,月,旬";
q1->SQL->Clear();
q1->SQL->Add(sql);
q1->Open() ;
回复
sczyq 2010-03-31
MSSQL 就可以解决了,可能是 ACCESS 不支持
回复
jone7319 2010-03-31
仅作如下最简单测试,提示“未指定的错误”!

TADOQuery *q=new TADOQuery(NULL);
q->ConnectionString="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=各部门用电量.mdb;Persist Security Info=False";
String sql="SELECT 年, 月, CASE WHEN 日< 11 THEN \'上旬\' WHEN 日>20 THEN \'下旬\' ELSE \'中旬\' END FROM 车间用电";
q->SQL->Clear();
q->SQL->Add(sql);
q->Open() ;
回复
jone7319 2010-03-31
对了,我用的是Access数据库啊。
回复
jone7319 2010-03-31
楼上的兄弟,用你写的试了一下,提示“未指定的错误”
回复
sczyq 2010-03-30
要使用 CASE 啦。



SELECT 年, 月,
CASE
WHEN 日 < 11 THEN '上旬'
WHEN 日 > 20 THEN '下旬'
ELSE '中旬'
END AS 旬,
SUM(用电量) AS 用电量
FROM titles
GROUP BY 年, 月, 旬

回复
e_board 2010-03-30
日期》“#2009-8-15#” and 日期 《="2009-8-31"
比较吧,简单。或者用between
回复
相关推荐
发帖
茶馆
创建于2007-08-02

529

社区成员

C++ Builder 茶馆
申请成为版主
帖子事件
创建了帖子
2010-03-30 05:32
社区公告
暂无公告