Sql Query获取楼层数

时间:2013-06-07 05:42:51

标签: sql

我正在研究酒店管理软件,我需要在那个楼层展示地板和房间......

我在数据库中有一个wing_master表,其中包含以下列: wing_id, wing_name, 地板, floor_room_count, 状态

就像我在那个有4层楼的酒店有一个翼的记录,但是当我写一个查询来获得那个翼的地板时它只是给了我“4”作为结果在sql .....

我希望查询返回如下 - :

1
2
3
4

我想这样,以便我可以在asp.net中使用嵌套的数据列表控件....

我的查询是“select floors from wing_master where wing_id = 1

2 个答案:

答案 0 :(得分:2)

对于大多数数据库(不是MySQL),您可以使用递归查询来获取所有楼层:

with all_floors as (
   select floors from wing_master where wing_id = 1
      union all
   select floors - 1 as floors from all_floors 
      where floors > 1
)
select * from all_floors order by floors;

SQLFiddle example.

在MySQL中,最简单的方法是创建一个数字表,其数字序列可达到最高楼层。然后加入该表以获得所有楼层:

select num from wing_master
   join numbers on 
       wing_id = 1 and 
       num <= floors;

SqlFiddle example.

答案 1 :(得分:0)

您的查询没问题,而且查询和表格结构似乎也可以满足您的要求。你可以显示你的数据,因为按照结构,表格中应该有四行,显示1楼,2楼,3楼,4楼

类似这样的事情

floor    wing_id
  1         1
  2         1
  3         1
  4         1

如果这是您的数据外观,那么您的查询必须正常,否则还有其他问题。所以用几行数据分享你的结构。