+ -
当前位置:首页 → 问答吧 → 求各位大师看看我的SQL语句有错否

求各位大师看看我的SQL语句有错否

时间:2011-06-02

来源:互联网

xx = Val(.Range("Q3").Value)       '凭证初始值
xz = Val(.Range("R3").Value)       '凭证尾值
   If xx > xz Then .Range("R3").Value = xx + 1
Set rs = Nothing
strSql = "SELECT sum(附件张数) From (select 凭证号 from (select distinct 凭证号,附件张数 from [凭证]  where month(日期)='" & pzQJ & "') where 凭证号 between " & xx & "and " & xz & ")a"
  rs.Open strSql, cnn, adOpenStatic
    pzrqx = IIf(IsNull(rs.Fields(0)), 0, rs.Fields(0))
rs.Close
运行出错..提示"至少一个参数没被指定"

作者: hxyzgk   发布时间: 2011-06-02

有错。sum(附件张数)中的附件张数,是从(select 凭证号 from (select distinct 凭证号,附件张数 from [凭证]  where month(日期)='" & pzQJ & "') where 凭证号 between " & xx & "and " & xz & ")而来,而这个子查询只有一个字段,就是凭证号。

作者: wudixin96   发布时间: 2011-06-02

这么复杂.
"select sum(附件张数)from [凭证] where month(日期)='" & pzQJ & "'and 凭证号 between '" & xx & "'and' " & xz & "'"
这样写不行么?
由于单双引号比较多乱,一般我这样处理.
strSql="select sum(附件张数)from [凭证] where month(日期)='aa' and 凭证号 between'bb'and'cc'"
strsql=replace(replace(replace(strsql,"aa",pzQJ),"bb",xx),"cc",xz)
这样就会出现引号不闭合了.
你和我一样喜欢用"xx".呵呵.

作者: shuyee   发布时间: 2011-06-02

谢谢大师指点啊..我终于明白怎么回事了.....

作者: hxyzgk   发布时间: 2011-06-02

谢谢指导.......我潜意识比较喜欢X来代表未知数之类的..哈哈哈./...如果变量多..我就会在后面加X....你为啥也喜欢XX啊

作者: hxyzgk   发布时间: 2011-06-02

strSql = "SELECT sum(附件张数) From (select distinct 凭证号,附件张数 from [凭证]  where month(日期)='" & pzQJ & "' and 凭证号 between " & xx & " and " & xz & ")"

作者: marco   发布时间: 2011-06-02