各位老大帮我看看这个查询参数怎么设置,一定给分

litong_master 2002-10-08 11:38:13
SELECT TOP 100 PERCENT SUM(tt.room_num) AS 房间数量,
hotel.hot_roomnum * DATEDIFF(day, '2002-07-07', '2002-09-27')
AS 房间总数, dbo.hotel.hot_star as 酒店星级
我是想求出任意一段时间的房间总数。

我用DATEDIFF(day, '2002-07-07', '2002-09-27')把这个时间区间作为参数。我是用
sql server2000 + c++buider
...全文
56 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
litong_master 2002-10-08
  • 打赏
  • 举报
回复
select 酒店星级, convert(decimal(18,2), CAST(房间数量 AS float) / CAST(房间总数 AS float)*100 ) as 酒店入住率
from(


select 酒店星级 ,sum(房间数量) as 房间数量,sum(房间总数)as 房间总数
from(
SELECT TOP 100 PERCENT SUM(tt.room_num) AS 房间数量,
dbo.hotel.hot_roomnum * DATEDIFF(day, '2002-07-07', '2002-09-27')
AS 房间总数, dbo.hotel.hot_star as 酒店星级
FROM (SELECT roomorder.room_num, roomorder.room_traid ,
roomorder.room_hotid, iccardread.icc_time, unitcode.uni_name
FROM roomorder INNER JOIN
iccardread ON
roomorder.room_traid = iccardread.icc_bookingcode AND
roomorder.room_hotid = iccardread.icc_unitcode INNER JOIN
unitcode ON roomorder.room_hotid = unitcode.uni_code
WHERE (iccardread.icc_station = 'y') AND
(iccardread.icc_time >= '2002-07-07') AND
(iccardread.icc_time <= '2002-09-27')) tt INNER JOIN
dbo.unitcode ON
tt.room_hotid COLLATE Chinese_PRC_CI_AS = dbo.unitcode.uni_code INNER JOIN
dbo.hotel ON dbo.unitcode.uni_code = dbo.hotel.hot_code
GROUP BY dbo.unitcode.uni_name, dbo.unitcode.uni_code,
dbo.hotel.hot_roomnum, dbo.hotel.hot_star)trt
group by 酒店星级) rtr
order by 酒店入住率 desc



SELECT hotel.hot_name as 酒店名称,
convert(dec(18,2), sum(roomorder.room_num*roomorder.room_price* roomorder.room_daynum))as 酒店收入
FROM iccardread INNER JOIN
roomorder ON iccardread.icc_bookingcode = roomorder.room_traid INNER JOIN
hotel ON roomorder.room_hotid = hotel.hot_code
WHERE (iccardread.icc_station = 'y') AND (iccardread.icc_time >= '2002-07-08') AND
(iccardread.icc_time >= '2002-09-28') AND (hotel.hot_star = '二星')
group by hotel.hot_name
Yang_ 2002-10-08
  • 打赏
  • 举报
回复
你的语句没有贴全
蓝天 2002-10-08
  • 打赏
  • 举报
回复
tt 和 hotel表主要字段列出来
另外DATEDIFF(day, '2002-07-07', '2002-09-27') 就是82 你想做什么?
nobelpu 2002-10-08
  • 打赏
  • 举报
回复
SQL.Text = Format('...DATEDIFF(day, ''%s'', ''%s'')... ',['2002-07-07', '2002-09-27'])


lyyrw 2002-10-08
  • 打赏
  • 举报
回复
dbo.hotel.hot_roomnum * (DATEDIFF(month, '2002-07-07', '2002-09-27')*30+ DATEDIFF(day, '2002-07-07', '2002-09-27'))
AS 房间总数, dbo.hotel.hot_star as 酒店星级
但是会少1、2天。

34,593

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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