小弟才学VB没多久。
是个收银系统,有个当天的流水表,然后当日结帐后,把数据汇总到当月的一个表,比如昨天的表汇总到201011,
我想通过输入2个日期,查询2个时间段之间的流水,然后进行分类汇总
比如统计2010-09-15到2010-11-04之间的流水分类汇总就要把201009,201010,201011这3个表的符合要求的流水放在一起,然后分类汇总。这如何做?怎么写SQL语句?如果可以不要用存储过程我不会。。- -!列名为  (流水号,品牌名称,实际销售价格)

解决方案 »

  1.   

    http://download.csdn.net/source/1644211
      

  2.   

    参考大概思路:
    1、写一个过程,参数为 要查询的 开始日期,结束日期,形如:
    Public Function TotalAccount(StartRq As Date, EndRq As Date) As Integer  '汇总金额
    ....
    ....
    End Function根据 开始/结束日期,计算出中间相隔的月数n,通过动态数组的方式把日期+月 取出来作为要打开的表T(n)如 201009 201010 201011,(这步比较关键,我也在思考)然后通SQL语句统计,如 select 其它字段,sum(实际销售价格) as 汇总价格 from t(n) where 时间 between startrq and 当月结束时间(30号或31号)2、调用 过程:汇总=TotalAccount("2010-09-15",  "2010-11-07")
      

  3.   

    谢谢3楼,我自己的想法,也与之类似,但是具体处理的话,感觉有很多困难,比如输入计算日期的函数后,要分成几部分
    2010-09-15至2010-09-30  对应201009表
    2010-10-01至2010-10-31  对应201010表
    2010-11-01至2010-11-07  对应201011表然后再弄进一张表里,再进行select分类汇总
      

  4.   

                    TbName = "会员鲜花结算"
                    FDName = "结算"
                    TMName = "结算日期"
                        SqlStr = "Select Sum(" & FDName & ") FROM " & TbName & " Where " & TMName & " = #" & IDateStr & "# Group by " & TMName
      

  5.   


    select * from 
    (
    select * from 201009 where [流水号] > '20100915' and [流水号]<'20101105' 
    union 
    select * from 201010 where [流水号] > '20100915' and [流水号]<'20101105' 
    union 
    select * from 201011 where [流水号] > '20100915' and [流水号]<'20101105'
    )a
    这个是查询2010-09-15到2010-11-04之间数据的语句来的,如果要导入别的表就用Insert into 或者 select into 语句稍微改造一下就O了,另外你的表里没有关于时间的字段,我这里假定你的流水号前面是以日期开头的而且是字符型的字段,你可以根据你的实际情况修改where后面的判断条件咯