Question
Please write the SQL queries for the followig tables below
7. For each hotel, list the (first word only of the) hotel name and the count of rooms by floor (hint: the floor is determined by the first digit of the room number), for all rooms at each hotel. Hint: You may want to use Substring/Len/PatIndex Function(s).
8. For check-ins during June and July (Folio check-in Date), what is the total number of arrivals and the average (decimal) length of stay by hotel name and month?
RESERVATION equines has- PK CreditCardD smallint GUEST ROOMTYPE PK nt Smal FK 1 GuestID smallint ReservationDate date PK Room smallint CCType varchar (5 Reservationstatus char(1 Guest First varchar(20 CCNumber varchar (16 Reservation Comments varchar (200 Guest Last varchar(20 CCCompany varchar (40) FK1 CreditCardID RTDescription varchar (200 smallint Guest Address varchar(30 ccCard Holder varchar(40) GuestAddress2 varchar (10) CCExpiration smalldatetime Res Status: CHECK R,A,C,X has GuestCity varchar(20 GuestState char(2) DISCOUNT Guest PostalCode char (10 RACKRATE PK smallint Guestcountry varchar(20 has PK BackBateID smallint Guest Phone varchar(20 Guest Ema varchar (30) escription varchar (50) FK1 oomTypeID nt GuestComments. varchar (200 Smal tains Discount Expiration date FK2 HotellD smallint DiscountRules varchar (100 Rack Rate small money DiscountPercen decimal (4,2) ROOM RackRate Begin date DiscountAmoun small money IPK BeamID smallint Rack Rate End date RackRateDescription varchar(200 has Room Numbe varchar(5) RoomDescription varchar (200) has Room Smoking bit otellD is NOT an Identity FOLIO RoomBedConfiguration char (2 HOTEL assigned.H FK3 HotelID Smal K FolioID. has FK 4 RoomTypeID nt IPK Hotellp smallint Smal ed Config K1 ReservationID nt Sma GuestID(TRIGGER) nt HotelName CHECK varchar(30 BILLING K2 RoomID smallint HotelAddress varchar(30 K, Q, F,2Q,2K,2F Quoted ate HotelCity varchar(20 small money PK FolloBillinglD Checkin Date smalldatetime HotelState char (2) ha Nights tinyint Hotel Country varchar(20) FK1 FoliollD smallint Status char (1) Hotel PostalCode char (10 FK2 BillingCategoryID nt Comments varchar (200 HotelStarRating char (1) BillingDescription char (30 K3 Discount ID Hotel PictureLink varchar (100) nt Sma Billing Amount small money FK 1 Tax LocationID Smal nt BillingltemQty tinyint Status: CHECK Discount: DEFAULT has BillingltemDate date R,A,C, X located in PAYMENT PaymentID IDENTITY (8000, PK BaymentLD TAXRATE smallint BILLINGCATEGORY FK1 FoliolID nt Sma PaymentDate date TaxDescription varchar (30 PaymentAmount Billing CatDescription varchar (30) small money RoomTaxRate decimal (6,4 Payment Comments varchar (200 Ver 1.1 6/5/2017 BillingCat Taxable bit decimal (6,4) Sales TaxRate
Explanation / Answer
7.
Select HotelName, count (RoomNumber) from HOTEL,ROOM where HOTEL.HotelID=ROOM.RoomID group by SUBSTITUTING (RoomNumber,1,1);
This query retrieves the hotel name and no of rooms for each floor. Here the floor information is retrieved From the room number. For that purpose we have written substring function where the substring takes the room number and that number it considers the first digit. Substring (RoomNumber,1,1) in this The first one tells that take the room number into consideration and then 1 tells that start from the position one in the given input which is room number here and the next one tells that take 1 digit only into consideration. For example if the room number is 201 then it considers the first digit only which is 2 only and will group according to that.