Уже столько всего сказано... я предпочитаю форматировать запросы так:
X++:
while select createdbBy, createdDateTime, RecId
from bankClientPayment_RU
where bankClientPayment_RU.RContractAccount
notexists join RContractTable
where ( ( RContractTable.RContractPartnerType == RContractPartnerType::Cust
&& BankClientPayment_RU.PartnerType == ModuleCustVend::Cust
)
|| ( RContractTable.RContractPartnerType == RContractPartnerType::Vend
&& BankClientPayment_RU.PartnerType == ModuleCustVend::Vend
)
)
&& RContractTable.RContractAccount == bankClientPayment_RU.RContractAccount
&& RContractTable.RContractCode == bankClientPayment_RU.RContractCode
С notexists join, конечно, засада - все отступы рушит, а так, если после where/join/from использовать табуляцию, получается все выровнено одинаково. А еще в сложных логических выражениях или в одиночных запросах select (если только они совсем уж не какие-нить тривиальные) предпочитаю точку с запятой ставить на новой строке - так, в случае чего, удобно новые условия добавлять.
Собственно, основной принцип, как уже отмечали тут, - это возможность править впоследствии код, затрагивая минимум исходных строк, в идеале - лишь добавляя новые строки, чтобы на сравнении они были бы четко отделены от исходного варианта кода. В этом отношении очень раздражает, что в стандартном функционале какой-нить вызов метода с тучей параметров бывает если и написан даже с каждым параметром на отдельной строке, то последний обязательно оказывается на одной строке с закрывающей скобкой. Ну <censored> просто, ни фига о других не думают...