急,在线等,sql查询问题?

aspyaun 2003-09-30 09:57:58
v_house是酒店与客房的视图 ,在这个视图中一个酒店对多个客房,
我在我的sql查询中得出是一个洒店显示好多次,如
1 琼海官塘温泉休闲中心 标准间
2 琼海官塘温泉休闲中心 豪华海景房

但我只想用个一个显示出来,如显示
1 琼海官塘温泉休闲中心 标准间

我的程序如下,
search.asp
<input name="Hotelname" type="text" id="keyword" size="15">
<select name="pro" class="k" id="pro" >
<option value="全国" selected>全国</option>
<option value="广东省">广东省 </option>
......
<option value="海南省">海南省 </option>
</select>

searchok.asp 问题在这里sql怎样写
<%
Hotelname=trim(request.Form("Hotelname"))
pro=request("pro")
set rs=server.CreateObject("adodb.recordset")
sql="select * from v_house "
if (keyword="" and pro="全国") then
sql=sql
elseif pro="全国" then
sql=sql& " where Hotelname like '%"&Hotelname&"%' "
else
sql=sql & " where Hotelname like '%"&Hotelname&"%' and province='"&pro&"' "
end if
rs.open sql,conn,1,1
%>
...全文
29 25 打赏 收藏 转发到动态 举报
写回复
用AI写文章
25 条回复
切换为时间正序
请发表友善的回复…
发表回复
alan815 2003-10-10
  • 打赏
  • 举报
回复
呵呵,刚才表名写错了^_^

SELECT MAX(housetype) AS 客房类型, MAX(bgname) AS 酒店名称, jdid AS 酒店ID
FROM v_house
GROUP BY jdid

这回应该可以了。别忘了加你的条件
gmlxf 2003-10-10
  • 打赏
  • 举报
回复
<%
Hotelname=trim(request.Form("Hotelname"))
pro=request("pro")
set rs=server.CreateObject("adodb.recordset")
sql="select * from v_house "
if (keyword="" and pro="全国") then
sql=sql
elseif pro="全国" then
sql=sql& " where Hotelname like '%"&Hotelname&"%' "
else
sql=sql & " where Hotelname like '%"&Hotelname&"%' and province='"&pro&"' "
end if
'加上以下一行。
sql=sql & " and 酒店的字段 in (select distinct 酒店的字段 from v_house)'
rs.open sql,conn,1,1
%>
alan815 2003-10-10
  • 打赏
  • 举报
回复
SELECT MAX(housetype) AS 客房类型, MAX(bgname) AS 酒店名称, jdid AS 酒店ID
FROM tb_temp
GROUP BY jdid
1蓝天1 2003-10-10
  • 打赏
  • 举报
回复
你说的不太明白,我也没看明白
hwkknd 2003-10-10
  • 打赏
  • 举报
回复
错了
select distinct bgname , (select top 1 housetype from v_house where bgname=V.bgname) as housetype from v_house V
只有这样子才可以

hwkknd 2003-10-10
  • 打赏
  • 举报
回复
sql="select province, (select top 1 housetype from v_house where bgname=V.bgname) as housetype, distinct bgname from v_house V"
xianglong 2003-10-10
  • 打赏
  • 举报
回复
还是搞不太懂,,你表的内容是这样
id jdjd housetype bgname
1 2 山景房 三亚山海天大酒店
2 2 豪华海景房 三亚山海天大酒店
3 3 山景房 三亚凯莱度假酒店

你的《但我只想用个一个显示出来,如显示1 琼海官塘温泉休闲中心 标准间》何解?


那显示的要求是否是:
-----------------
三亚山海天大酒店 山景房
豪华海景房

三亚凯莱度假酒店 山景房
????????







wind1234 2003-10-10
  • 打赏
  • 举报
回复
if (keyword="" and pro="") then

sql=sql

elseif (keyword="" and pro="全国") then

sql=sql

elseif pro="全国" then
sql=sql& " where bgname like '%"&keyword&"%' "

else
sql=sql & " where bgname like '%"&keyword&"%' and province='"&pro&"' "
end if

rs.open sql,conn,1,1
aspyaun 2003-09-30
  • 打赏
  • 举报
回复
id jdjd housetype bgname
1 2 山景房 三亚山海天大酒店
2 2 豪华海景房 三亚山海天大酒店
3 3 山景房 三亚凯莱度假酒店
表的内容是这样
homeyang 2003-09-30
  • 打赏
  • 举报
回复
<%
Hotelname=trim(request.Form("Hotelname"))
pro=request("pro")
set rs=server.CreateObject("adodb.recordset")
sql="select distinct 酒店的字段 from v_house "
if (keyword="" and pro="全国") then
sql=sql
elseif pro="全国" then
sql=sql& " where Hotelname like '%"&Hotelname&"%' "
else
sql=sql & " where Hotelname like '%"&Hotelname&"%' and province='"&pro&"' "
end if
rs.open sql,conn,1,1
%>

取的时候用<%=rs("酒店的字段")%>

那你就再以酒店作为条件取第一条记录显示好啦,虽然方法比较笨但做出来就行啦
aspyaun 2003-09-30
  • 打赏
  • 举报
回复
我从另一个网页提交过来的啊!
如我不加客房类型housetype就对,
sql="select province, housetype, distinct bgname from v_house "这个好像是错的
sql="select distinct bgname ,province, housetypefrom v_house " 这个又能查出来,但酒酒店重出现
wang7655 2003-09-30
  • 打赏
  • 举报
回复
按照酒店和客型group by 来查询啊!
可以循环查询
每个酒店就只有一个显示了,你加上客型的条件就是了啊
whyslr 2003-09-30
  • 打赏
  • 举报
回复
建多一个类型的字段。在sql里面对那个字段进行条件查询就可以啦。因为一个洒店有很多种服务类型不是吗?
aspyaun 2003-09-30
  • 打赏
  • 举报
回复
sql="select province, housetype, distinct bgname from v_house "

bgname是酒店名称,province省份,housetype客房类型
我是想取一个酒店与一种客型

bgname bgname
1 琼海官塘温泉休闲中心 标准间

我肯定用循环读出所有的酒店,只是不让一个酒店出现重出现
homeyang 2003-09-30
  • 打赏
  • 举报
回复
<%
Hotelname=trim(request.Form("Hotelname"))
pro=request("pro")
set rs=server.CreateObject("adodb.recordset")
sql="select distinct 酒店的字段 from v_house "
if (keyword="" and pro="全国") then
sql=sql
elseif pro="全国" then
sql=sql& " where Hotelname like '%"&Hotelname&"%' "
else
sql=sql & " where Hotelname like '%"&Hotelname&"%' and province='"&pro&"' "
end if
rs.open sql,conn,1,1
%>

取的时候用<%=rs("酒店的字段")%>
lihua9666 2003-09-30
  • 打赏
  • 举报
回复
你可以不要让代码循环,只取记录集中的第一个纪录
aspyaun 2003-09-30
  • 打赏
  • 举报
回复
不行,我不知把distinct放在那个sql里边
sql="select * from v_house "
if (keyword="" and pro="全国") then
sql=sql
elseif pro="全国" then
sql=sql& " where Hotelname like '%"&Hotelname&"%' "
else
sql=sql & " where Hotelname like '%"&Hotelname&"%' and province='"&pro&"' "
end if
rexsp 2003-09-30
  • 打赏
  • 举报
回复
是不是要显示出一个酒店所有不同类型的房间啊
homeyang 2003-09-30
  • 打赏
  • 举报
回复
这样相同的酒店就会只显示一次
homeyang 2003-09-30
  • 打赏
  • 举报
回复
select distinct 字段 from table where 条件
加载更多回复(5)

28,390

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧