你可以通过ado 或者什么访问excel表,然后将值附给变量,然后直接在条件里判断就是访问excel  select * from $sheet1

解决方案 »

  1.   

    既然你已经导成临时表了,那更好办了,你直接update就可以了不过update不能一次修改多个记录,所以你最好用一循环最好
      

  2.   

    参考:
    update TB1 set col1=TB2.COLN from TB2 where TB1.id=TB2.id
      

  3.   

    "结果"字段在jfxx中,
    哪位给出完成的SQL语句吗?另请问amtyuranus((看看)) :在SQL语句中也可以循环吗?该怎么用法?我从没用过
      

  4.   

    因为你给的信息不完整,所以只能给出参考:update 表 set 结果=成功
    from 表 a inner join(select a.身份证号,a.银行帐号,b.交费 from ryxx a inner join jfxx b on a.身份证号=b.身份证号 and a.银行帐号=b.银行帐号) b
    on a.a.身份证号=b.身份证号 and a.银行帐号=b.银行帐号 and a.交费=b.交费
      

  5.   

    我用下面这句更新成功了,可是看看结果并不是我想要的:影响的行数大与我EXCEL文件中的总行数UPDATE jfxx
    SET 结果 = '成功'
    FROM (SELECT jfxx.结果
    FROM jfxx INNER JOIN
          ryxx ON jfxx.代理协议号 = ryxx.代理协议号 CROSS JOIN
          Sheet1 CROSS JOIN
          Sheet1 Sheet1_1
    WHERE (jfxx.缴费时段1 >= CONVERT(DATETIME, '2003-05-01 00:00:00', 102)) AND 
          (jfxx.缴费时段2 <= CONVERT(DATETIME, '2003-08-31 00:00:00', 102)) AND 
          (Sheet1.结果 = '成功')
    ) AS tb
    还有一个很奇怪的问题:
    UPDATE jfxx
    SET 结果 = '成功'
    FROM (SELECT jfxx.结果,jfxx.缴费时间
    FROM jfxx INNER JOIN
          ryxx ON jfxx.代理协议号 = ryxx.代理协议号 CROSS JOIN
          Sheet1
    WHERE  (ryxx.社会保障号=Sheet1.身份证) AND 
    (ryxx.银行帐号=Sheet1.帐号) AND
    (jfxx.缴费时段1 >= CONVERT(DATETIME, '2003-05-01 00:00:00', 102)) AND 
          (jfxx.缴费时段2 <= CONVERT(DATETIME, '2003-08-31 00:00:00', 102)) AND 
          (Sheet1.结果 = '成功')
    ) AS tb
    我写的类似上面的一些语句,自动检查语法都能通过,但是实际运行SQL
    则报错:"无法解决equal to 操作的排序规则冲突"
    问题还没解决,高手请继续help me