请教查询统计的SQL语句???
表中一字段是表示日期的 类型(int 或 varchar) 格式(YYYYMMDD 20010905)
查询单位为日可select count(date) from table group by date
但如果查询单位是月或年该怎么写???
我要查询统计 20010101 到 20010930 中9个月分别的记录数,
SQL语句该怎么写???
表是paradox表
问题点数:50、回复次数:13Top
1 楼SCORPIONS(歇斯底里)回复于 2001-09-05 18:23:27 得分 0
??Top
2 楼luhongjun(过江项羽)回复于 2001-09-05 18:26:06 得分 0
Paradox不好半.
如果用MS SQL SERVER
可以使用left,substring
如果是Access只能用left
Top
3 楼Danny_Yuan(小丹尼)回复于 2001-09-05 18:27:00 得分 50
如果是varchar则用substring(ltrim(rtrim(date)),1,4)取年;substring(ltrim(rtrim(date)),5,2)取月
如果是int则用str转成string再取Top
4 楼DIABL0(电脑破坏神)回复于 2001-09-05 18:57:36 得分 0
用int形不溢出吗?Top
5 楼turbozzh(涡轮超人)回复于 2001-09-05 22:30:51 得分 0
int不溢出,Delphi中Integer好像到21亿多,记不清了。自己算吧!Top
6 楼cobi(我是小新)回复于 2001-09-06 08:37:03 得分 0
gzTop
7 楼SCORPIONS(歇斯底里)回复于 2001-09-06 13:34:19 得分 0
paradox好像没有str函数?Top
8 楼luxiaoban(鲁小班)回复于 2001-09-06 16:38:10 得分 0
gzTop
9 楼SCORPIONS(歇斯底里)回复于 2001-09-06 17:08:16 得分 0
为什么不能group by???
这样写可以
select substring(date from 1 for 6) as test from table where substring(date from 1 for 6)>='200101' and substring(date from 1 for 6)<='200201'
这样写出错????
select substring(date from 1 for 6) as test,
count(*) as sum1 from table
where substring(date from 1 for 6)>='200101' and
substring(date from 1 for 6)<='200201'
group by substring(startdate from 1 for 6)Top
10 楼SCORPIONS(歇斯底里)回复于 2001-09-06 17:23:10 得分 0
????Top
11 楼jingpingyi(jingpingyi)回复于 2001-09-06 17:31:11 得分 0
20010930/100 = 200109
20010930/10000 = 2001
一个查询语句很不好处理,paradox表的group by 不能含有计算。
可以考虑添加中间处理表。
Top
12 楼SCORPIONS(歇斯底里)回复于 2001-09-06 17:49:06 得分 0
有什么好办法吗?Top
13 楼SCORPIONS(歇斯底里)回复于 2001-09-07 09:30:38 得分 0
??Top




