Solicitări 1c 8

Există situații în care trebuie să combinați mai multe interogări într-o singură interogare și tabelele care se alătură nu pot ajuta. Cel mai simplu mod de a arăta un exemplu.

Să presupunem în sistemul nostru că faptele de cumpărare și vânzare a mărfurilor sunt înregistrate prin documentele Sosirii și Cheltuielilor, respectiv. Contrapartea poate fi atât cumpărătorul, cât și furnizorul. Datoria poate fi compensată prin livrarea de bunuri:

Pentru a calcula datoria totală a contrapartidei trebuie să fie adăugate la suma tuturor cheltuielilor de contrapartidă și scade suma tuturor parohiilor aceluiași contractant, cel mai simplu mod de a face acest lucru cu ajutorul operatorului de a combina toate:

Solicitări 1c 8

În prima solicitare se ia în considerare suma cheltuielilor pentru fiecare contrapartidă, în al doilea - suma pentru care fiecare dintre contrapartide ne-a furnizat bunurile. Suma din a doua cerere este luată cu un semn minus, astfel încât atunci când tabela de rezultate se prăbușește, ea este dedusă din suma transportului către contrapartidă. Ca rezultat, obținem un tabel al formularului:

Nu este exact ceea ce vrem, dar este aproape. Pentru a obține rezultatul dorit, rămâne grupat de către contrapartidă. Pentru a face acest lucru, interogarea trebuie plasată într-o tabelă temporară (lucrul cu mesele temporare este luat în considerare în partea închisă a cursului) și deja de la acesta selectați și grupați câmpurile:

Cerințe pentru combinarea interogărilor

Atunci când combinați două cereri, numărul de câmpuri ar trebui să fie același pentru ele, dacă nu există destule câmpuri în niciuna dintre interogări, ele ar trebui adăugate ca constante. Să aruncăm o privire la exemplul de mai sus, să lăsăm pe cheltuială și un câmp de reducere în document, ceea ce reduce suma datoriei contrapărții, dar nu există reduceri în document. Cum să fii în acest caz? asa:

Rămâne să se deducă discountul și grupul.

Ordinul este, de asemenea, important. Câmpurile vor fi combinate exact în ordinea în care sunt listate în secțiunile SELECT ale ambelor interogări. Referindu-ne la exemplul precedent, vom face schimb de câmpuri ale reducerii și suma din eșantionul parohiilor:

Articole similare