Rivkin Dmitry,
После WHERE ничего не сократить?
Вообще задумка глобальная, пока разбил задачу на части и пытаюсь её решить мелкими кусочками

Есть некая неисправность, виновником которой могут послужить работы и материалы, собственные и сторонние - соответственно 4 таблицы.
Виновником может являться только одна позиция во всех этих 4-х таблицах. Если галка уже стоит на одной позиции, то при установке её на другую, уже установленная галка затирается и выводится сообщение об этом. Такую кадабру придётся прописывать во всех 4-х таблицах через программу.
В программной оболочке есть форма задания условия на значение, пока пытаюсь компактно задать это условие, дальше ломать голову как сделать остальное.
Сначала сделал так:
(SELECT COUNT(VLabour) FROM qdfLabour WHERE LMainID = <LMainID> AND VLabour LIKE "-1") =0
AND (SELECT COUNT(VMaterial) FROM qdfMaterial, qdfLabour WHERE MMainID = <LMainID> AND VMaterial LIKE "-1") =0
AND (SELECT COUNT(VLabourStor) FROM qdfLabourStor, qdfLabour WHERE LStorID = <LMainID> AND VLabourStor LIKE "-1") =0
AND (SELECT COUNT(VMaterialStor) FROM qdfMaterialStor, qdfLabour WHERE MStorID = <LMainID> AND VMaterialStor LIKE "-1") =0
Потом вот так:
SELECT COUNT(VLabour) + COUNT(VMaterial) + COUNT(VLabourStor) + COUNT(VMaterialStor) FROM qdfLabour, qdfMaterial, qdfLabourStor, qdfMaterialStor WHERE LMainID = <LMainID>
AND VLabour LIKE "-1" AND MMainID = <LMainID> AND VMaterial LIKE "-1" AND LStorID = <LMainID> AND VLabourStor LIKE "-1" AND MStorID = <LMainID> AND VMaterialStor LIKE "-1"
<LMainID> - это текущее значение, я его пока заменил конкретным, в программе записи отбираются по текущему.