Что касается следующего утверждения:Помощь с SQL Query
Select *
From explorer.booking_record booking_record_
Inner Join explorer.client client_
On booking_record_.labelno = client_.labelno
Inner Join explorer.tour_hotel tour_hotel_
On tour_hotel_.tourcode = booking_record_.tourrefcode
Inner Join explorer.hotelrecord hotelrecord_
On tour_hotel_.hotelcode = hotelrecord_.hotelref
Where booking_record_.bookingdate Not Like '0000-00-00'
And booking_record_.tourdeparturedate Not Like '0000-00-00'
And (hotelrecord_.hotelgroup = "LPL"
And Year(booking_record_.tourdeparturedate)
Between Year(AddDate(Now(), Interval -5 Year))
And Year(Now())
Мои навыки MySQL, конечно, не до нуля, фактический набор результатов я хочу найти это «клиент, который был 5 или более LPL за последние 5 лет ». До сих пор я до сих пор не дошел до счета, так как получаю огромное количество результатов с примерно 250 + на клиента.
Я предполагаю, что это связано с тем, как я соединяю столы. Схема мудрой таблицы booking_record содержит код ссылки тура, который ссылается на tour_hotel, который затем содержит код отеля, который ссылается на hotelrecord. В этой таблице для гостей отеля есть группа отелей.
Клиентский стол соединен с booking_record через ссылку на бронирование, и у клиента может быть много заказов.
Если бы кто-нибудь мог предложить мне способ сделать это, я был бы очень благодарен и, надеюсь, научился достаточно, чтобы сделать это сам в следующий раз! Я уже несколько часов царапаю голову над этим.
Клиенты могут иметь много заказов в booking_record
Даниэль.
Это отлично работает! Какие-нибудь идеи, как я мог теперь подсчитать их? Я попробовал добавить «С COUNT (booking_record_.labelno)> 5» в конце, но это привело к одной строке со счетом 1,09 миллиона! –
@ djfrear, вы можете попробовать объединить GROUP BY и HAVING. –