我想做个类似进销存的汇总
主要字段大概如下:有进货时间,进货人,检验员,数量
我想做的统计汇总大概是这样的每天的进货总量,每月的进货总量,每年的进货总量
其次,就是进货人员和检验员2人是起到相互监督的作用,然后比如a今天进货,那么b就是检验员,b进货,a就是检验员,当然还有人员cdef等等,也就是说每天进货和检验的人一定是2个不同的人。
然后对年月日统计之后还想看看比如a进货的数量,b进货的数量等,还想对a做检验员时进货数量统计,b做检验员的统计,这些基本都做出来了!
但是有个小毛病,比如信息是:
进货时间                进货人     检验员    数量
2011-11-01 10:11:11    a         b         2000
2011-11-02 10:11:11    a         b         1000
2011-11-02 11:11:11    a         b         2000
按天统计sql语句是这样的
select day(进货时间), 进货人,检验员,sum(数量) from 进货表 group by day(进货时间), 进货人,检验员 order by day(进货时间)
显示结果为:
1 a b 2000
2 a b 3000
前面的时间我想显示成:
2011-11-1
2011-11-2
然后网上找了个这样方法cstr(year(进货时间))+'-'+cstr(month(进货时间))+'-'+cstr(day(进货时间))代替day(进货时间)
但是如果日期出现10以后 排序就错了
成为:
2011-11-1
2011-11-10
2011-11-2
后来我把2种合成一个也就是
select cstr(year(进货时间))+'-'+cstr(month(进货时间))+'-'+cstr(day(进货时间)),day(进货时间), 进货人,检验员,sum(数量) from 进货表 group by cstr(year(进货时间))+'-'+cstr(month(进货时间))+'-'+cstr(day(进货时间)),day(进货时间), 进货人,检验员 order by day(进货时间)
成了这样结果:
2011-11-1 1 a b 2000
2011-11-2 2 a b 3000
2011-11-10 10 a b 3000
我想问的就是有没有好的办法实现我要达到的效果?就是下面这样
2011-11-1  a b 2000
2011-11-2  a b 3000
2011-11-10 a b 3000
还有个一直困扰我的就是这个问题:我如何统计所以和a有关的数量呢?就是无论a是进货还是检验员时的总量?

解决方案 »

  1.   

    convert(varchar(10),进货时间,120)
      

  2.   

    我这么写的sql
    select convert(varchar(10),进货时间,120),进货人,检验员,sum(数量) from 进货表 group by convert(varchar(10),进货时间,120),进货人,检验员 order by convert(varchar(10),进货时间,120)
    但是提示我convert函数未定义
      

  3.   

    select cstr(year(进货时间))+'-'+cstr(month(进货时间))+'-'+cstr(day(进货时间)),进货人,检验员,sum(数量) from 进货表 group by cstr(year(进货时间))+'-'+cstr(month(进货时间))+'-'+cstr(day(进货时间)), 进货人,检验员 order by day(进货时间)
      

  4.   


    --mssql2005 测试通过.
    select substring(convert(char(20), [day], 23), 1, 10) as [time],进货人,效验员,sum(进货数量) from 表 group by [day],进货人,效验员 order by [day]
      

  5.   

    数据库的类型问题,
    最好在数据库里把“进货时间”改一下不要用VARCHAR转成datetime类型试一下
      

  6.   

    哦!各位真是抱歉!是因为数据库的关系!我忘说了!你们的方法都很好!但是我现在用的确实accsee!
    然后我用了
    select FormatDateTime(进货时间,2) as 日期,进货人,检验员,sum(数量) from 进货表 group by FormatDateTime(进货时间,2),进货人,检验员 order by FormatDateTime(进货时间,2)
    这种方式!在access里的查询视图里可以实现!但是在程序里却提示FormatDateTime函数未定义!
    谁遇到过这样的问题?