2017-02-13 11 views
0

Мне нужна помощь в определении того, какой запрос нужно выполнить для поиска клиента. Я создаю программу «кредитования денег», в которой есть функция поиска. Пользователь может фильтровать клиентов, отображаемых в системе, с помощью customerFirstName, customerSecondName и независимо от того, активны они или нет.MySQL: запрос, который находит активных клиентов в базе данных

Дело в том, что нет таблицы status в таблице клиентов. Покупатель считается Активен, если у одной или нескольких их учетных записей есть статус = 'Активный'. Клиента считаются Неактивным, если они не открывали счета или все их счета имеют статус = «Paid»

Мое ВЫБРАТЬ заявление:

SELECT 
customer.customerID, 
customerFName, 
customerLName, 
gender, 
civilStatus, 
birthDate, 
homeAddress, 
jobDescription, 
workingAddress, 
telNumber, 
phoneNumber, 
pinNumber 

Клиента фильтруется и фамилиями через это условие:

WHERE customerFName LIKE '%*userProvidedFirstName*%' AND customerLName LIKE '%*userProvidedLastName*%' 

Это моя схема базы данных:

This is my database ERD

+0

Безопасно предположить, что если клиент не имеет 'счета Active', клиент s 'Inactive'? –

+0

@VitaliiStrimbanu да :) –

ответ

1

Вы могли бы попытаться получить статус в выбранном участке, а затем фильтрации на основе суб выбора:

select * from 
    (SELECT 
    customer.customerID, 
    customerFName, 
    customerLName, 
    gender, 
    civilStatus, 
    birthDate, 
    homeAddress, 
    jobDescription, 
    workingAddress, 
    telNumber, 
    phoneNumber, 
    pinNumber 
    case when (select count(*) from account where account.customerID = customerID and account.status = 'Active') > 0 
    then 'Active' else 'Inactive' end as status 
from customer) 
    WHERE customerFName LIKE '%*userProvidedFirstName*%' AND customerLName LIKE '%*userProvidedLastName*%' AND status = *Status* 

 Смежные вопросы

  • Нет связанных вопросов^_^