Inainte sa intru mai adanc in detalii 2 lucruri nu le inteleg aici:
Cum poate ca in primul select cheia primara din tabela stocuri sa fie aceeasi ca din tabela cont. Oricum ar fi relatia a doua parte c1.compart = @comp nu isi are rostul pentru ca deja faci pk = ceva, si asta iti da doar o inregistrare: poate conditia trebuie pusa in subquery sau poate pk_key nu e de fapt cheie primara sau poate nu am inteles nimic inca :).
Aceeasi problem cu conditia (c1.compart = @comp) e si pentru al doilea select, doar ca aici e aceeasi tabela.
Fara nici o legatura cu performanta, primul lucru care l-as schimba ar fi aliasurile, din c1 si c2 in niste nume sugestive pentru tabelele care le reprezinta. Cred ca vezi si tu ca e greu de urmarit asa. Ar mai fi si niste chestii foarte mici de performanta, dar mai intai lamureste-ma cu astea.
Mersi.