回 帖 发 新 帖 刷新版面

主题:求助(SQL语句在ASP中的执行问题)

数据库:SQL 两个表:TEST1,TEST2 (字段一模一样) 
1.现有三个条件的组合查询界面,提交查询条件(条件分别是:规格,日期1,日期2),对以上两个执行联合查询(分两个SQL语句,分别是SQL1,SQL2)
2.执行代码如下:
sql1="select *,'test1' as 组织  from TEST1 where"
if trim(xxm)<>"" then
sql1=sql1&" 规格 like '%"&trim(xxm)&"%'"
  flag=1
end if
if trim(rq)<>"" and flag=1 then
sql1=sql1&" and 日期 >= '"&trim(rq)&"'"
flag=1
else 
if trim(rq)<>"" then
sql1=sql1&" 日期 >= '"&trim(rq)&"'"
flag=1
end if
end if
if trim(rq1)<>"" and flag=1 then
sql1=sql1&" and 日期 <='"&trim(rq1)&"'"
flag=1
else 
if trim(rq1)<>"" then
sql1=sql1&" 日期 <='"&trim(rq1)&"'"
flag=1
end if
end if  
if flag=0 then
sql1="select *,'test1' as 组织 from TEST1"
end if

sql2="select *,'test2' as 组织  from TEST2 where"
if trim(xxm)<>"" then
sql2=sql2&" 规格 like '%"&trim(xxm)&"%'"
  flag=1
end if
if trim(rq)<>"" and flag=1 then
sql2=sql2&" and 日期 >= '"&trim(rq)&"'"
flag=1
else 
if trim(rq)<>"" then
sql2=sql2&" 日期 >= '"&trim(rq)&"'"
flag=1
end if
end if
if trim(rq1)<>"" and flag=1 then
sql2=sql2&" and 日期 <='"&trim(rq1)&"'"
flag=1
else 
if trim(rq1)<>"" then
sql2=sql2&" 日期 <='"&trim(rq1)&"'"
flag=1
end if
end if  
if flag=0 then
sql2="select *,'test2' as 组织 from TEST2"
end if

sql=sql1&" union "&sql2


执行不成功,只有把最后一句sql=sql1&" union "&sql2改成SQL=SQL1即只对TEST1查询才成功,改成SQL=SQL2也不成功,难道还分先后顺序? 

回复列表 (共3个回复)

沙发

你可以后面再跟一句response.write sql 看看最后生成的sql语句是什么样的,就可以知道sql语句是不是有问题了。

板凳

[quote]你可以后面再跟一句response.write sql 看看最后生成的sql语句是什么样的,就可以知道sql语句是不是有问题了。[/quote]
我想SQL语句的问题没有很大的可能,SQL1,SQL2两部门代码都是平行的,即SQL1只不过对TEST1的查询,SQL2对TEST2的查询,SQL=SQL1能执行,按道理SQL=SQL2也能执行的,SQL=SQL2不能执行,导致我的最后要求 SQL=SQL1&" UNION "&SQL2不能执行成功,所以现在最重要的问题是解决SQL=SQL2不能执行成功的原因.

3 楼


执行SQL=SQL2时还发现个问题,只要我在其中的一个查询条件"规格"中输入一个关键字即可执行OK,如果查询条件"规格"为空,就不能执行,不知道什么原因.

我来回复

您尚未登录,请登录后再回复。点此登录或注册