2015-12-31 4 views
0

У меня есть две таблицы в базе данных, как показано на скриншоте ... enter image description hereУдаление записей из таблицы соответствующих

Пожалуйста, обратите внимание, что LicenceType во второй таблице ведет себя, как GroupID для того, чтобы классифицировать группу записей.

В соответствии с бизнес-логикой (требование клиента) некоторые записи сохраняются в tbCompanyAgent, как показано в первой таблице.

Теперь, если мы удалим данные из tbLicence на основе LicenceType (идентификатор группы) , тогда все соответствующие данные должны быть удалены из tbCompanyAghent.

для этого я написал ниже запрос

DELETE FROM tbLicence WHERE LicenceType = @LicenceType 

DELETE FROM tbCompanyAgent 

SELECT * FROM tbCompanyAgent INNER JOIN tbLicence ON tbCompanyAgent.LicenceNumber = tbLicence.LicenceNumber 
    OR tbCompanyAgent.LicenceNumber = tbLicence.StateIssuedLicenseNumber 
    OR tbLicence.LicenceType = @LicenceType 

, но это не делает по мере необходимости. Пожалуйста помоги !!!

ответ

1
 Delete from tbCompanyAgent 
     where LicenceNumber in (select distinct LicenceNumber 
     from tbLicence where LicenceType= @LicenceType)   

     Delete from tbLicence where LicenceType = @LicenceType 
+0

хорошее решение ... –

0

избежать Суб запроса, Вы можете попробовать это

delete a from tblCompanyAgent a 
inner join tblLicence b on a.LicenceNumber = b.LicenceNumber 
where b.LicenceType = @licenceType 
Смежные вопросы