Я немного растерялся от того, чего ты хочешь достичь здесь,
в соответствии с вашим требованием , если isCustomCost = 1, то вернуть запись # 3 из SupplierVenueProductId 1 и обе записи из SupplierVenueProductId 2
Пытаясь обобщить это, я думаю, что вам нужно :
возвращает все строки из таблицы, кроме случаев, когда существует запись для SupplierVenueProductId, у которой isCustomCost = 1, а затем только эта запись для этого SupplierVenueProductId
Который затем становится чем-то вроде:
SELECT t1.*
FROM myTable t1
WHERE t1.isCustomCost = 1
OR NOT EXISTs (SELECT *
FROM t2
WHERE t2.SupplierVenueProductId = t1.SupplierVenueProductId
AND t2.isCustomCost = 1)
Надеюсь, это поможет.