一.源文件是一个EXCEL表格,格式如下
行号     卡号    金额
0       a01    100
1       a01    200   
2       a01    300
3       a02    100
...
二.要求把卡号相同的金额汇总后插入一个SQLSERVER数据库中
即插入SQLSERVER的表中应该是这样
卡号    金额
a01    600
a02    100三.用VB来写判断如何写

解决方案 »

  1.   

    还没用过 SQL ~~~~
    -_-!Up......
      

  2.   

    用VB写出算法就可以了,写入SQL部分我自己搞定
    例如:
    cardno=""
    cardamount=0
    for i=2 to .UsedRange.Rows.Count
       if cardno=.cells(i,2) then
           cardamount=cardamount+.cells(i,3)
           ?什么时机插入相同卡号的汇总金额到SQL中,这样显然不行,
           
       end if
      '插入不相同的部分内容到SQL
           ...
    next
      

  3.   


    Excel 是 Jet Engine 的外部数据库,可以建立连接后直接查询:Dim cn As New ADODB.Connection, rs As New ADODB.Recordset
    cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Book1.xls;Extended Properties=Excel 8.0;"
    rs.Open "SELECT 卡号, Sum(金额) As 汇总金额 From [Sheet1$] GROUP BY 卡号", cn
      

  4.   

    cardno="" 
    cardamount=0 
    for i=2 to .UsedRange.Rows.Count 
      ’循环的第一次卡号一定不形同
      '循环的第二次卡号相同了,按上面的那个EXCEL
      '循环的第三次卡号相同,按上面的那个EXCEL
      if cardno<>.cells(i,2) then 'EXCEL的I行2列为卡号
           cardno=.cells(i,2)
          '插入不相同的部分内容到SQL 
          ... 
      end if 
      cardamount=cardamount+.cells(i,3) 
      '如果在这里插入汇总金额也不行,因为还不知道下一次EXCEL中的卡号是否相同,如果相同,这里插入就不对了
    next
      

  5.   

    SELECT 卡号, Sum(金额) As 汇总金额 From [Sheet1$] GROUP BY 卡号"
      

  6.   

    SELECT 卡号, Sum(金额) As 汇总金额 From [Sheet1$] GROUP BY 卡号