我正在开发一个项目,其中我有一个酒店数据库。有三个名为room, hotel, booking
的表。我想从所有酒店计算今天的总收入。出于这个目的,我有以下查询,但它除了Null
之外什么都不输出。
SELECT
sum(price) TODAY_INCOME
FROM
room
WHERE
roomNo IN (SELECT roomNo
FROM booking1
WHERE datefrom1 <= GETDATE() AND dateTo1 >= GETDATE()
AND hotelNo = (SELECT hotelNo FROM hotel
WHERE hotelName = 'avari'));
任何类型的帮助都会受到赞赏。以下是我的表格的链接。
答案 0 :(得分:1)
这可能是因为GetDate()返回一个日期时间,并带有时间戳。因此,如果您执行dateTo1 >= GETDATE()
,那么您实际上是在说where dateTo1 >= '01/08/2014 11:44am'
。 '01 / 08/2014上午11:44'大于'1/8/2014'的日期,因为时间部分将默认为午夜。
将您的查询更改为:
SELECT sum(price) TODAY_INCOME from room
where roomNo IN(select roomNo from booking1
WHERE datefrom1 <= CAST(GETDATE() as date) AND dateTo1 >= cast( GETDATE() as date) AND
hotelNo =(select hotelNo from hotel
where hotelName = 'avari'));