日期:2014-05-16  浏览次数:20907 次

实现下列语句


    tb

内容如下
shijian                                         zu                             shuliang
2007-4-20   17:52:47                     23                             35
2007-4-21   9:07:51                       34                             45






会有很多组,组是有重复的
现在我想统计          


21每个月的数量总和
比如  

shijian               shuliang
2007-01                   45654
2007-02                   3534
2007-03                   22332
2007-04                   544
2007-05                   0(没有到或者统计的确是0,所以为0)


2:每个月中每一个组的数量总和

比如
    shijian               zu     shuliang
    2007-01             34           252343
    2007-01             23           3454
    '
    '
    '
    2007-02             23           5423
    '
    '
    '
    '
数据库是access,由于ACCESS   不支持CONVERT
如何实现啊


------解决方案--------------------
没有Convert,但是有format()函数,功能类似。

如:

format(now(), "yyyy-mm ")

返回:2007-04
------解决方案--------------------
--1、

SELECT
format(shijian, "yyyy-mm ") as 年月,
Sum(tb.shuliang) AS 数量合计
FROM tb
GROUP BY format(shijian, "yyyy-mm ")


--2、

SELECT
format(shijian, "yyyy-mm ") as 年月,
zu as 组,
Sum(tb.shuliang) AS 数量合计
FROM tb
GROUP BY format(shijian, "yyyy-mm "),zu

------解决方案--------------------

Format 函数


返回 Variant (String),其中含有一个表达式,它是根据格式表达式中的指令来格式化的。

语法

Format(expression[, format[, firstdayofweek[, firstweekofyear]]])

Format 函数的语法具有下面几个部分:

部分 说明
expression 必要参数。任何有效的表达式。
format 可选参数。有效的命名表达式或用户自定义格式表达式。
firstdayofweek 可选参数。常数,表示一星期的第一天。
firstweekofyear 可选参数。常数,表示一年的第一周。


设置值

firstdayofweek 参数有下面设置:

常数 值 说明
vbUseSystem 0 使用 NLS API 设置。
VbSunday 1 星期日(缺省)
vbMonday 2 星期一
vbTuesday 3 星期二
vbWednesday 4 星期三
vbThursday 5 星期四
vbFriday 6 星期五
vbSaturday 7 星期六


firstweekofyear 参数有下面设置:

常数 值 说明
vbUseSystem 0 使用 NLS API 设置。