Помогите написать процедуру
От: Gudzik Германия  
Дата: 03.10.07 07:23
Оценка:
Привет! Необходимо решить такую задачу.
Имеется четыре таблицы: person, profession, qualification, organization. Последние три таблицы связаны с первой как "много ко многим" при помощи доп. таблиц (person2profession, person2qualification, person2organization). Стоит задача написать хранимую процедуру которая будет принимать три параметра: @ProfessionID, @QualificationID, @OrganizationID. Каждый параметр может содержать либо значение ключевого поля соответствующей таблицы либо НОЛЬ. В процедуре нужно выбрать значения из person, отфильтрованные по полям ProfessionID, QualificationID, OrganizationID из соотв. таблиц. Что-то вроде:
SELECT * FROM person
INNER JOIN person2profession ON person2profession.personID = person.personID
INNER JOIN person2qualification ON person2qualification .personID = person.personID
INNER JOIN person2organization ON person2organization .personID = person.personID
WHERE person2profession.professionID = @ProfessionID
AND person2qualification.qualificationID = @QualificationID
AND person2organization.organizationID = @OrganizationID

Но вся проблема в том, что когда какой-то параметр процедуры (@ProfessionID, @QualificationID, @OrganizationID) принимает нулевое значения, он не должен участвовать в фильтрации. Помогите пожалуста докумекать как это грамотно реализовать (конечно же на первом месте производительность процедуры).
Спасибо.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.