ASP查询条件为空时,默认查询全部
不知道有没有高手在,问个简单的问题我有个查询系统,分别有年、月、部门三个查询条件年、月是手动输入的,部门是下拉列表,部门默认为全部,值为空我想问的是:怎么实现当只输入年或...
不知道有没有高手在,问个简单的问题
我有个查询系统,分别有年、月、部门三个查询条件
年、月是手动输入的,部门是下拉列表,部门默认为全部,值为空
我想问的是:怎么实现当只输入年或者月或者部门的时候,其它两项不输入(即为空)的时候只查询符合输入项的条件。但当三个条件都输入或者其中两个条件输入了的时候,三个条件是AND关系输出查询结果。
我不知道我说的够不够明白
另外不要说什么做一个判断语句之类的,那样每个条件都得判断了。
求高手解答,万谢
sql="select * from telephone left outer join rent on rent.电话号码=telephone.电话号码 where isnull (telephone.部门,'') like '"&bm&"' and isnull (rent.年,'') like '"&ni&"' and rent.总计> '"&zj&"' "
这是我现在的sql语句
可能跟问题有点不符,我想知道的就是如何实现这个功能,一通全通了就 展开
我有个查询系统,分别有年、月、部门三个查询条件
年、月是手动输入的,部门是下拉列表,部门默认为全部,值为空
我想问的是:怎么实现当只输入年或者月或者部门的时候,其它两项不输入(即为空)的时候只查询符合输入项的条件。但当三个条件都输入或者其中两个条件输入了的时候,三个条件是AND关系输出查询结果。
我不知道我说的够不够明白
另外不要说什么做一个判断语句之类的,那样每个条件都得判断了。
求高手解答,万谢
sql="select * from telephone left outer join rent on rent.电话号码=telephone.电话号码 where isnull (telephone.部门,'') like '"&bm&"' and isnull (rent.年,'') like '"&ni&"' and rent.总计> '"&zj&"' "
这是我现在的sql语句
可能跟问题有点不符,我想知道的就是如何实现这个功能,一通全通了就 展开
3个回答
展开全部
你这个查询的SQL需要稍做修改就可以实现了。
但是还是要判断的。
string GetCondition()
{
string condition=" where 1=1 ";
if(年.text!="")
condition+=" and 年='"+年.text+"'";
if(月.text!="")
condition+=" and 月='"+月.text+"'";
if(部门.text!=null)
condition+=" and 部门='"+部门.text+"'";
string sql="select * from 表名"+condition;
}
不判断是不可能的。起码我是做不到,但是用上面的判断方法使得查询变得灵活。有需要查询的条件,就在后面拼接字符串,没有,就不用拼接查询条件。
但是还是要判断的。
string GetCondition()
{
string condition=" where 1=1 ";
if(年.text!="")
condition+=" and 年='"+年.text+"'";
if(月.text!="")
condition+=" and 月='"+月.text+"'";
if(部门.text!=null)
condition+=" and 部门='"+部门.text+"'";
string sql="select * from 表名"+condition;
}
不判断是不可能的。起码我是做不到,但是用上面的判断方法使得查询变得灵活。有需要查询的条件,就在后面拼接字符串,没有,就不用拼接查询条件。
展开全部
假如你的年、月、部门的表单名称分别是:NIAN、YUE、BUM,那么可以使用下面的语句:
<%
IF BUM<>"" AND NIAN<>"" AND YUE="" THEN
strSQL = "select * from 数据表 WHERE 部门='" & BUM & "' AND 年='" & NIAN & "'"
ELSEIF BUM<>"" AND NIAN="" AND YUE<>"" THEN
strSQL = "select * from 数据表 WHERE 部门='" & BUM & "' AND 月='" & YUE & "'"
ELSEIF BUM="" AND NIAN<>"" AND YUE<>"" THEN
strSQL = "select * from 数据表 WHERE 年='" & NIAN & "' AND 月='" & YUE & "'"
ELSEIF BUM<>"" AND NIAN<>"" AND YUE<>"" THEN
strSQL = "select * from 数据表 WHERE 部门='" & BUM & "' AND 年='" & NIAN & "' AND 月='" & YUE & "'"
END IF
%>
或者:
<%
strSQL = "select * from 数据表 WHERE 部门='" & BUM & "'" '先决条件是部门不能为空
IF BUM<>"" AND NIAN<>"" THEN strSQL = strSQL & " AND 年='" & NIAN & "'"
IF BUM<>"" AND YUE<>"" THEN strSQL = strSQL & " AND 月='" & YUE & "'"
%>
<%
IF BUM<>"" AND NIAN<>"" AND YUE="" THEN
strSQL = "select * from 数据表 WHERE 部门='" & BUM & "' AND 年='" & NIAN & "'"
ELSEIF BUM<>"" AND NIAN="" AND YUE<>"" THEN
strSQL = "select * from 数据表 WHERE 部门='" & BUM & "' AND 月='" & YUE & "'"
ELSEIF BUM="" AND NIAN<>"" AND YUE<>"" THEN
strSQL = "select * from 数据表 WHERE 年='" & NIAN & "' AND 月='" & YUE & "'"
ELSEIF BUM<>"" AND NIAN<>"" AND YUE<>"" THEN
strSQL = "select * from 数据表 WHERE 部门='" & BUM & "' AND 年='" & NIAN & "' AND 月='" & YUE & "'"
END IF
%>
或者:
<%
strSQL = "select * from 数据表 WHERE 部门='" & BUM & "'" '先决条件是部门不能为空
IF BUM<>"" AND NIAN<>"" THEN strSQL = strSQL & " AND 年='" & NIAN & "'"
IF BUM<>"" AND YUE<>"" THEN strSQL = strSQL & " AND 月='" & YUE & "'"
%>
追问
方便把你QQ告诉我么 我觉得你这虽然也有点报错 可我还能看得懂原理
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
sql="select * from telephone left outer join rent on rent.电话号码=telephone.电话号码 where 1=1"
if bm<>"" then sql=sql & " and telephone.部门 like '%"&bm&"%'"
if ni<>"" then sql=sql & " and rent.年 like '%"&ni&"%'"
..........
rs.open sql,conn,1,1
if bm<>"" then sql=sql & " and telephone.部门 like '%"&bm&"%'"
if ni<>"" then sql=sql & " and rent.年 like '%"&ni&"%'"
..........
rs.open sql,conn,1,1
追问
谢谢、我按你的写、都可以成功、唯独其中有个条件是 rent.总计>'%"&zj&"%'"
打上这个条件后 就显示
ODBC 驱动程序不支持所需的属性
sql="select * from telephone left outer join rent on rent.电话号码=telephone.电话号码 where 1=1"
if zj"" then sql=sql & " and rent.总计>%"&zj&"%"
set r=server.CreateObject("adodb.recordset")
r.open sql,conn,1,1
if r.eof or r.bof Then
后面的代码就没什么用了
追答
if zj"" then sql=sql & " and rent.总计>"&zj&""
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询