2015-08-23 69 views
0

我試圖用以下查詢來計算未來7天的預訂數量。子查詢中的MySQL count()

select calendarDate, 
    (
    select COUNT(*) 
    FROM isBooked INNER JOIN booking 
    ON isbooked.BookingID = booking.bookingID 
    where specificday between booking.startDate and booking.endDate 
    ) 
from calendar as specificday 
where calendardate between '2015-08-23' and DATE_ADD('2015-08-23', INTERVAL 6 DAY); 

我使用SQL服務器,允許使用「作爲specificday」但是MySQL不,我如何在MySQL重寫查詢。

回答

1

specificday引用一個表,而不是一列。您需要WHERE子句的列名稱:

select c.calendarDate, 
     (select COUNT(*) 
     from isBooked ib INNER JOIN 
      booking b 
      ON ib.BookingID = b.bookingID 
     where c.calendarDate between b.startDate and b.endDate 
     ) 
from calendar c 
where c.calendardate between '2015-08-23' and DATE_ADD('2015-08-23', INTERVAL 6 DAY);