У меня есть таблица «многие ко многим» с именем dbo.ObjectOwner, имеющая следующие столбцы:
ObjectId | OwnerId | StartDate |EndDate
Где ObjectId, OwnerId не является первичным ключом, а Startdate и Enddate ссылаются на даты, когда Object принадлежит Owner.
запрос, который я пытаюсь сделать, должен вернуть все
ObjectId где для каждого ObjectId, он не имеет связанных записей, где EndDate равен нулю. Т.е. вернуть все объекты, у которых в данный момент нет владельца.
так что-то вроде
foreach(objectId in dbo.ObjectOwner)
if (
doesnotexist (records where ObjectId = objectid and EndDate is null)
)
{
add this objectid to the select table
}
Я посмотрел на группу по порядку, но следующий скрипт возвращает все записи
SELECT oo.ObjectId
FROM dbo.ObjectOwner oo
GROUP BY oo.ObjectId
HAVING NOT EXISTS (
SELECT 1
FROM dbo.ObjectOwner
WHERE dbo.ObjectOwner.EndDate = null
)
Заранее спасибо