Contacte

Sintaxa este similară cu cererea 1c. Similar cu condițiile de interogare. Parametri nevalidi, cum ar fi

În ciuda tuturor neajunsurilor, căutarea în câmpuri de text este încă una dintre cele mai populare. Putem găsi tipuri de date șir peste tot - nume, numere de cont, adrese, precum și alte informații pot fi stocate în acest format. În interogările în limbajul 1C încorporat, pentru comoditatea dezvoltatorilor, este utilizat un operator special „LIKE”. Aceasta este una dintre cele mai utilizate comenzi, așa că fără o cunoaștere aprofundată a sintaxei și a capacităților sale, va fi dificil pentru un programator să lucreze.

Folosind operatorul LIKE

Înainte de a utiliza orice operator în practică, trebuie să înțelegeți clar scopul, locurile de aplicare și sintaxa acestuia. Scopul utilizării „LIKE” într-o solicitare 1C este de a verifica îndeplinirea condiției prezentate ca șablon. Valoarea returnată este de tip boolean - adevărat sau fals - indicând dacă condiția specificată este adevărată. Operatorul LIKE poate fi folosit în mai multe locuri într-o interogare:

  • În blocul de condiții, indicat prin cuvântul cheie „UNDE”;
  • În proiectarea alegerii când apoi în caz contrar se termină;
  • Direct în câmpurile de selecție, ca rezultat al comparației câmpurilor.

Sintaxa de verificare este întotdeauna aceeași și constă din 3 legături. În stânga este valoarea textului care este verificată, apoi operatorul „LIKE” însuși, iar în dreapta este șablonul care este verificat. Pentru a crea rapid și ușor șabloane, există simboluri speciale care facilitează dezvoltarea:

  1. „%” este o secvență de orice caractere de lungime arbitrară. Folosit pentru a căuta cuvinte sau numere individuale dintr-un șir;
  2. „_” – orice caracter unic. Destinat să indice prezența unui singur caracter;
  3. „[...]” este o secvență de caractere de comparat cu un caracter dintr-un șir. Folosind un astfel de model, o potrivire este verificată cu oricare dintre caracterele enumerate între paranteze. De asemenea, puteți specifica un interval de numere sau litere ([a-g], );
  4. „[^...]” este modelul opus celui precedent. Se verifică diferența dintre caracterul specificat în rând și cele enumerate între paranteze.

Pentru a înțelege și înțelege mai bine principiile creării de șabloane corecte, să ne uităm la câteva exemple care sunt adesea întâlnite în viața dezvoltatorilor. Primul este atunci când trebuie să selectăm din directorul de nomenclatură toate articolele în numele cărora apare cuvântul „CUTTER”. În acest caz, trebuie să folosim LIKE în condițiile de interogare:

SELECT Nomenclature.Name AS Nume FROM Directory.Nomenclature AS Nomenclature WHERE Nomenclature.Name SIMILAR cu „% CUTTER%”

Dacă eliminăm ambele simboluri „%”, interogarea va afișa un produs al cărui nume se potrivește complet cu cel specificat între ghilimele. Dacă părăsim șablonul „CUTTER%” sau „% CUTTER”, atunci rezultatul va fi o listă de articole care se termină sau, respectiv, încep cu o anumită combinație de caractere.


Să ne uităm la o problemă care poate deruta programatorii începători care nu cunosc sintaxa interogării. Să presupunem că trebuie să găsiți toate articolele care au simbolul „%” în numele lor. În special pentru cazurile în care trebuie să căutați caractere rezervate, există un operator „caracter special”. #,\,/,~ și alte caractere pot fi folosite ca caracter special, după care orice caractere rezervate vor denota pur și simplu un semn.

SELECTAȚI Nomenclatură.Nume AS Nume FROM Director.Nomenclatură AS Nomenclatură WHERE Nomenclatură.Nume SIMILAR cu „%#%” CARACTER SPECIAL „#”

Dacă trebuie să utilizați un parametru într-o căutare, atunci variabila din interogare cu parametrul SIMILAR este utilizată folosind adăugare. Rețineți că parametrul trebuie să fie de tip șir sau va trebui să îl convertiți într-un șir în cerere. Aceasta este o operație destul de complicată și este mai bine să o excludeți în avans.

SELECT Nomenclature.Name AS Nume FROM Directory.Nomenclature AS Nomenclature WHERE Nomenclature.Name SIMILAR cu „%” + &name + „%”

Funcția SIMILAR este aplicabilă în toate versiunile platformei, începând de la 8, iar datorită aplicabilității sale, dezvoltatorii 1C nu vor dori să o schimbe. Desigur, căutarea textului depinde întotdeauna de acuratețea numelui introdus, dar rămâne totuși una dintre cele mai comune. În acest sens, dezvoltatorii profesioniști 1C trebuie să studieze utilizarea SIMILAR cu toate nuanțele sale.

CA- Operator pentru verificarea asemănării unui șir cu un model. Analog de LIKE în SQL.
Operator CA vă permite să comparați valoarea expresiei specificate în stânga acesteia cu șirul de model specificat în dreapta. Valoarea expresiei trebuie să fie de tip șir. Dacă valoarea expresiei se potrivește cu modelul, rezultatul operatorului va fi TRUE, în caz contrar va fi FALS.
Următoarele caractere din șirul șablon sunt caractere de serviciu și au o semnificație diferită de caracterul șir:
. % (procent): o secvență care conține orice număr de caractere arbitrare
. _ (subliniere): un caracter arbitrar
. […] (unul sau mai multe caractere între paranteze drepte): orice caracter unic enumerat între paranteze drepte
O enumerare poate conține intervale, de exemplu a-z, adică un caracter arbitrar inclus în interval, inclusiv capetele intervalului.
. [^...] (în paranteze drepte un semn de negație urmat de unul sau mai multe caractere): orice caracter, altul decât cele enumerate după semnul de negație
Orice alt simbol înseamnă el însuși și nu poartă nicio sarcină suplimentară.
Dacă unul dintre caracterele enumerate trebuie să fie scris ca el însuși, atunci trebuie să fie precedat de<Спецсимвол>. Eu insumi<Спецсимвол>(orice caracter adecvat) este definit în aceeași instrucțiune după cuvântul cheie SPECIAL CHARACTER.
De exemplu, model „%ABV[abvg]\_abv%” CARACTER SPECIAL „\” înseamnă un subșir format dintr-o succesiune de caractere:
literele A; literele B; literele B; o cifră; una dintre literele a, b, c sau d; sublinia; literele a; literele b; literele v.
Mai mult, această secvență poate fi precedată de un set arbitrar de caractere.

Exemple de utilizare:
Cod 1C v 8.x Procedura BankEndTextInput(Element, Text, Valoare, StandardProcessing)
StandardProcessing = Fals;
//Efectuați o interogare cu o căutare folosind un model precum „%” +<Текст введенный пользователм в поле ввода> + "%"
Solicitare = Solicitare nouă;
Query.SetParameter("Nume", "%" + Text + "%");
Query.Text = „SELECT
| Bănci.Link
|DIN
| Director.Bănci CUM Bănci
|UNDE
| Bănci.Nume SIMILAR &Nume";

Rezultat = Query.Run();
Selectie = Result.Select();
Dacă Rezultat.Gol() Atunci
//Nimic gasit. Aici puteți afișa un mesaj sau puteți face altceva :)
In caz contrar
//Obțineți rezultatele
tzResults = Result.Unload();
//Pregătește o listă de valori care va conține elementele găsite.
Valoare = New ValueList();
Value.LoadValues(tzResults.UnloadColumn("Link"));
endIf;
EndProcedure

Este necesar ca „Acordurile implicite” să includă numai numele acordului principal etc.:
Cod 1C v 8.x Alegere
Când numele este ASEMĂNĂR cu „Nr. acord %”, atunci „Concord cu număr” // Orice linie care începe cu „Nr. acord este potrivită
Când numele este ASEMĂNĂR cu „Main Agreement%[^А-яЁе”+Symbol(33)+"-"+Symbol(126)+"№"""+Symbols.PS+Symbols.Tab+Symbols.PF+Symbols .NPP+ Symbols.VTab+"]%" apoi "Default Contracts" // Orice linie care începe cu "Main Contract" este potrivită
Altfel "Altul"
Încheiați ca un fel de contract

Informatii preluate de pe site

Operatorul SIMILAR dintr-o interogare verifică valorile șirurilor din tabele pentru similitudine cu un model.
Se folosește astfel: șirul de verificat este plasat în stânga acestui operator, iar modelul este plasat în dreapta.

După verificare, returnează True sau False în consecință, este utilizat în mod activ în condiții.
Următoarele caractere de serviciu sunt folosite pentru a crea un șablon:

  • % (procent) - o secvență care conține orice număr de caractere arbitrare
  • _ (subliniere) - un caracter arbitrar
  • […] (unul sau mai multe caractere între paranteze drepte) - orice caracter unic enumerat în paranteze pătrate
    De asemenea, pe lângă diferite simboluri, puteți utiliza intervale, de exemplu a-z(A-z), ceea ce înseamnă prezența unui simbol arbitrar inclus în interval, inclusiv capetele intervalului.
  • [^...] (în paranteze pătrate un semn de negație urmat de unul sau mai multe caractere) - orice caracter, altul decât cele enumerate după semnul de negație

Simbolurile rămase sunt utilizate în scopul propus.
Dacă este necesar să se transmită unul dintre caracterele de serviciu de mai sus ca simbol, atunci acesta trebuie să fie precedat de<Спецсимвол>. Eu insumi<Спецсимвол>(orice caracter adecvat) este definit în aceeași instrucțiune după cuvântul cheie SPECIAL CHARACTER.
De exemplu, modelul „%ABV[abvg]\_abv%” CARACTER SPECIAL „\” înseamnă un subșir format dintr-o secvență de caractere:
literele A; literele B; literele B; o cifră; una dintre literele a, b, c sau d; sublinia; literele a; literele b; literele v.
Mai mult, această secvență poate fi precedată de un set arbitrar de caractere.

Procedură Select AgreementContainingInNameText(mText)
//În cerere vom folosi un șablon precum "%" + mText + "%" Request = New Request; Query.SetParameter("Nume", "%" + Text + "%"); Request.Text = "SELECT | Acorduri. Link, | Acorduri. Proprietar | FROM | Director. Contracte ale contrapartidelor AS Acorduri | | WHERE | Acorduri. Nume SIMILAR & Nume"; Rezultat = Query.Run(); Selectie = Result.Select(); Raport ("Acordurile care conțin în nume: " + mText + " au următoarele contrapărți"); While Selection.Next() Cycle Report("Contraparte: " + Selection.Owner + "; Acord: " + Selection. Link EndIf; EndProcedure

Operator CA vă permite să comparați datele de tip șir dintr-o cerere care este situată în stânga operatorului cu datele de tip șir care se află în dreapta operatorului. Rezultatul comparației este evaluat la Adevărat sau Fals, astfel încât comparația poate fi aplicată ca o condiție.

Pentru operator CA Există caractere de serviciu speciale care nu sunt percepute ca șir:

  • Simbolul procentual „%”: indică prezența oricărui număr de caractere arbitrare într-un șir
  • „[...]” unul sau mai multe caractere între paranteze pătrate: indică prezența oricărui (unică) dintre caracterele enumerate. De asemenea, se poate specifica o serie de caractere (de exemplu)
  • „_” liniuță de subliniere: indică prezența oricărui caracter arbitrar
  • Caracter de negație „[^...]”: indică prezența oricărui caracter unic, altul decât cele specificate între paranteze drepte
Dacă trebuie să specificați unul dintre caracterele speciale de mai sus pentru comparație, trebuie să utilizați cuvântul cheie „SIMBOL SPECIAL”

Caracteristici de utilizare cu diferite SGBD

IBM DB2„Doar un parametru poate fi plasat în dreapta operatorului SIMILAR. Singurele caractere joker sunt „_” (subliniere care înseamnă orice caracter) și „%” (procent care înseamnă o secvență de orice caractere).
În cazul utilizării unui SGBD " PostgreSQL" sau " Baza de date Oracle„caracterele speciale „paranteze pătrate [...]” sunt acceptate numai dacă sunt specificate în text în cerere și NU sunt trecute ca parametru în cerere.

Astfel, în baza de date de fișiere, caracterele speciale vor fi întotdeauna percepute la fel, și diferit în funcție de SGBD utilizat în versiunea client-server.

Exemplu: selectați produse care conțin simbolul „%” în nume

SELECTAȚI | Ref.Link |DIN | Nomenclator CUM Ref | Nume ref. LIKE „%\%” CARACTER SPECIAL „\”

Exemplu: selectați produse ale căror nume încep cu cuvântul „Tank”

SELECTAȚI | Ref.Link |DIN | Nomenclator CUM Ref | Nume ref. SIMILAR cu „Bak%”

Exemplu: selectați produse ale căror nume se termină cu un număr

SELECTAȚI | Ref.Link |DIN | Nomenclator CUM Ref | Nume ref. SIMILAR cu „%”

În acest articol dorim să discutăm totul cu tine Funcții de limbaj de interogare 1C, și constructele limbajului de interogare. Care este diferența dintre funcție și design? Funcția este apelată cu paranteze și posibili parametri în ele, iar constructul este scris fără paranteze. Fara indoiala toate structurile și funcțiile limbajului de interogare 1C face procesul de achiziție a datelor flexibil și multifuncțional. Aceste funcții și constructe se aplică câmpurilor de interogare, iar unele se aplică și condițiilor.

1C Funcții limbaj de interogare

Pentru că o descriere clară 1c funcții de limbaj de interogare este mult mai puțin obișnuită decât descrierile structurilor, am decis să începem să ne uităm la funcții. Acum să ne uităm la fiecare separat, descriindu-i scopul, sintaxa și exemplul de utilizare, deci:

1. Funcţie DATA ORA- această funcție creează un câmp constant cu tipul „Dată”.

Sintaxă: DATA ORA(<Год>,<Месяц>,<День>,<Час>,<Минута>,<Секунда>)

Exemplu de utilizare:

2. Funcția DATE DIFERENT- returnează diferența dintre două date într-unul dintre dimensiuni (an, lună, zi, oră, minut, secundă). Măsurarea este trecută ca parametru.

Sintaxă: DIFERENCEDATE(<Дата1>, <Дата2>, <Тип>)

Exemplu de utilizare:

Query.Text = „SELECT | DIFFERENCEDATE(DATETIME(2015, 4, 17), DATETIME(2015, 2, 1), DAY) | AS Qty.Days”;

3. Funcția VALUE- setează un câmp constant cu o înregistrare predefinită din baza de date, puteți obține și un link gol de orice tip;

Sintaxă: VALUE(<Имя>)

Exemplu de utilizare:

Request.Text = „SELECT //element predefinit | VALUE(Directory.Currencies.Dollar) AS Dollar, //link gol | VALUE(Document.Receipt of Goods and Services.EmptyLink) AS Receipt, //transfer value | VALUE(Transfer . Persoană fizică) AS Persoană fizică, //cont predefinit VALUE(Planul de conturi. Contabilitate.Materiale) AS Account_10" ;

4. Funcția SELECT- avem în fața noastră un analog al construcției IF, care este folosit în cod, doar acesta este folosit în interogările 1C.

Sintaxă: ALEGERE CÂND<Выражение>APOI<Выражение>IN CAZ CONTRAR<Выражение>Sfârşit

Exemplu de utilizare:

Solicitare.Text = //dacă suma este mai mare de 7500, atunci ar trebui să existe o reducere de 300 de ruble, //deci dacă condiția este declanșată, funcția //returnează Suma - 300 //altfel solicitarea va returna pur și simplu Sumă „SELECT | SELECT | WHEN TTCReceipts.Amount > 7500 | THEN TTCReceipts.Amount - 300 | ELSE TTCReceipts.Amount | END AS AmountWithDiscount | FROM |

5. Funcția EXPRESS- vă permite să exprimați un câmp constant cu un anumit tip.

Sintaxă: EXPRESS(Nume Câmp AS Nume Tip)

Exemplu de utilizare:

Query.Text = "SELECT VARIOUS | Sales.Registrar.Number, | SELECT | WHEN Sales.Registrar LINK Document.Consumable | THEN EXPRESS(Sales.Registrar AS Document.Consumable) | ELSE SELECT | WHEN Sales.Registrar LINK Document.Implementation | THEN EXPRESS(Sales.Registrar AS Document.Implementation) |. END AS Număr |.

Există o altă opțiune pentru utilizarea funcției EXPRESS în câmpuri de tipuri mixte, unde apar acestea? Cel mai simplu exemplu este „Registrul” pentru orice registru. Deci, de ce ar trebui să calificăm tipul în registrator? Să luăm în considerare situația când selectăm câmpul „Număr” de la registrator, din ce tabel va fi selectat numărul? Răspunsul corect al tuturor! Prin urmare, pentru ca interogarea noastră să funcționeze rapid, ar trebui să specificăm un tip explicit folosind funcția EXPRESS

Exemplu de utilizare:

Query.Text = "SELECT | EXPRESS(Nomenclature.Comment AS Line(300)) AS Comment, | EXPRESS(Nomenclature.Sum AS Number(15,2)) AS Sum |FROM | Directory.Nomenclature AS Nomenclature";

6. Funcția ISNULL(ortografie alternativă ISNULL) - dacă câmpul este de tip NULL, atunci se înlocuiește cu al doilea parametru al funcției.

Sintaxă: ISNULL(<Поле>, <ПодставляемоеЗначение>)

Exemplu de utilizare:

De asemenea, rețineți că este recomandabil să înlocuiți ÎNTOTDEAUNA tipul NULL cu o anumită valoare, deoarece comparația cu tipul NULL returnează întotdeauna FALSE chiar dacă comparați NULL cu NULL. Cel mai adesea, valorile NULL sunt formate ca urmare a îmbinării tabelelor (toate tipurile de îmbinări, cu excepția celor interne).

Query.Text = //Selectați întregul articol și soldurile acestuia //dacă nu există sold într-un articol, atunci va exista un câmp //NULL care va fi înlocuit cu valoarea 0 "SELECT | No. Link, | ISNULL (ProductsInStockRemains.InStockRemaining, 0) AS Remaining |. Nomenclatură AS Nr. |.

7. Funcția REPREZENTARE- vă permite să obțineți o reprezentare a câmpului de solicitare.

Sintaxă: PERFORMANŢĂ(<НаименованиеПоля>)

Exemplu de utilizare:

Query.Text = "SELECT | REPRESENTATION(FreeRemainingRemains.Nomenclature) AS Nomenclature, | REPRESENTATION(FreeRemainingRemaining.Warehouse) AS Warehouse, | FreeRemainingRemaining.InStockRemaining |FROM |Acumulare Register.FreeRemaining AS FreeRemaining;Remaining"

Construcții în limbajul de interogare 1C

Am discutat cu tine mai sus Funcții de limbaj de interogare 1C, acum este timpul să luați în considerare constructe în limbajul de interogare 1C, nu sunt mai puțin importante și utile, să începem.

1. Constructii LINK- este un operator logic pentru verificarea unui tip de referință. Cel mai des întâlnit la verificarea unui câmp de tip complex cu un anumit tip. Sintaxă: LEGĂTURĂ<Имя таблицы>

Exemplu de utilizare:

Solicitare.Text = //dacă tipul de valoare înregistrator este document Recepție, //atunci interogarea va returna „Recepție de mărfuri”, în caz contrar, „Vânzări de mărfuri” „SELECT | SELECT | WHEN Remainings.Registrar LINK Document.Receipt of Goods and Servicii |. ATUNCI ""Consum"" |. END AS |

2. Design INTRE- acest operator verifică dacă valoarea se află în intervalul specificat.

Sintaxă: ÎNTRE<Выражение>ȘI<Выражение>

Exemplu de utilizare:

Request.Text = //obține întreaga nomenclatură al cărei cod este în intervalul de la 1 la 100 "SELECT | Nomenclature.Link |FROM | Directory.Nomenclature AS Nomenclature |WHERE | Nomenclature.Code BETWEEN 1 AND 100" ;

3. Construcția B și B IERARHIE- verificați dacă valoarea se află în lista transferată (matricele, tabelele de valori etc. pot fi transferate ca listă). Operatorul ÎN IERARHIE vă permite să vizualizați ierarhia (un exemplu de utilizare a Planului de conturi).

Sintaxă: ÎN(<СписокЗначений>), ÎN IERARHIE(<СписокЗначений>)

Exemplu de utilizare:

Solicitare.Text = //selectați toate subconturile contului „SELECT | Auto-susținut. Link AS Account | FROM | Plan de conturi. Auto-susținut AS Auto-susținere | WHERE | Auto-susținut. Link ÎN VALOAREA IERARHIEI (Graficul de Conturi. Bunuri.

4. Design similar- Această funcție ne permite să comparăm un șir cu un model de șir.

Sintaxă: LIKE "<ТекстШаблона>"

Opțiuni de model de rând:

% - o secvență care conține orice număr de caractere arbitrare.

Un personaj arbitrar.

[...] - orice caracter unic sau secvență de caractere enumerate între paranteze drepte. Enumerarea poate specifica intervale, de exemplu a-z, adică un caracter arbitrar inclus în interval, inclusiv capetele intervalului.

[^...] - orice caracter unic sau secvență de caractere enumerate între paranteze drepte, cu excepția celor enumerate după semnul de negație.

Exemplu de utilizare:

Interogare.Text = //găsiți întreaga nomenclatură care conține rădăcina TABUR și începe //fie cu o literă mică sau majusculă t „SELECT | Nomenclatură. Link | FROM | Director. Nomenclatura AS Nomenclatură | WHERE | Produse. Nume LIKE "" [Tt ]abur%""" ;

5. Design PERMIS- acest operator vă permite să selectați doar acele înregistrări din baza de date pentru care apelantul are permisiunea de citire. Aceste drepturi sunt configurate la nivel de înregistrare (RLS).

Sintaxă: ALLOWED este scris după cuvântul cheie SELECT

Exemplu de utilizare:

Request.Text = "SELECTARE PERMIS | Contrapartide. Link | DIN | Director. Contrapartide AS Counterparties";

6. Design DIVERSE- vă permite să selectați înregistrări în care nu există înregistrări duplicat.

Sintaxă: VARIOUS este scris după cuvântul cheie SELECT

Exemplu de utilizare:

Request.Text = //selectează înregistrările la care cititorul are drepturi „SELECT VARIOUS | Counterparties.Name |FROM | Directory. Counterparties AS Counterparties” ;

De asemenea, construcția VARIOUS poate fi utilizată cu operatorul PERMIS și alți operatori.

Exemplu de utilizare:

Request.Text = //selectează diverse înregistrări la care cititorul are drepturi „SELECT ALLOWED VARIOUS | Counterparties.Name |FROM | Directory. Counterparties AS Counterparties”;

7. Design FIRST- selectează numărul de înregistrări specificat în parametru din rezultatul interogării.

Sintaxă: FIRST<число>

Exemplu de utilizare:

Solicitare.Text = //selectați primele 4 numere CCD din directorul "SELECT FIRST 4 | Numere CCD. Link | FROM | Director. Numere CCD AS Numere CCD";

8. Design PENTRU SCHIMBARE- vă permite să blocați un tabel, funcționează numai în tranzacții (relevant doar pentru blocările automate).

Sintaxă: PENTRU SCHIMBARE<НаименованиеТаблицы>

Exemplu de utilizare:

Query.Text = "SELECT | Resturi libere. Nomenclatură, | Resturi libere. Depozit, | Resturi libere. În stoc rămase | DIN | Registrul de acumulări. Resturi libere. Rămășii ca resturi libere | PENTRU SCHIMBARE | Registrul de acumulări . Resturi libere”;

9. Design COMANDA DE- organizează datele după un anumit câmp. Dacă câmpul este o legătură, atunci când setați steag COMANDA AUTOMATA Sortarea va avea loc în funcție de reprezentarea link-ului dacă indicatorul este dezactivat, atunci linkurile sunt sortate după vechimea adresei link-ului în memorie.

Sintaxă: FILTREAZĂ DUPĂ<НаименованиеПоля>COMANDA AUTOMATA

Exemplu de utilizare:

Query.Text = "SELECT | Resturi libere. Nomenclator AS Nomenclator, | Resturi libere. Depozit AS Depozit, | Resturi libere. În stoc rămas | DIN | Înregistrați acumulări. Resturi libere. Rămase AS Resturi libere rămase BY | |. Nomenclatura |.

10. Design GROUP BY- folosit pentru gruparea șirurilor de interogări după anumite câmpuri. Câmpurile numerice trebuie utilizate cu orice funcție de agregare.

Sintaxă: A SE GRUPA CU<НаименованиеПоля1>, .... , <НаименованиеПоляN>

Exemplu de utilizare:

Query.Text = "SELECT | ProductsInWarehouses.Nomenclature AS Nomenclature, | ProductsInWarehouses.Warehouse, | SUM(GoodsInWarehouses.InStock) AS INSTOCK |FROM | RegisterAccumulations.ProductsInWarehouses AS ProductsInWarehouses |

11. Design AVÂND- vă permite să aplicați o funcție agregată unei condiții de selecție a datelor, similară construcției WHERE.

Sintaxă: AVÂND<агрегатная функция с условием>

Exemplu de utilizare:

Query.Text = //selectează înregistrările grupate în care câmpul InStock este mai mare de 3 "SELECT | ItemsInStocks.Nomenclature AS Nomenclature, | ItemsInWarehouses.Warehouse, | SUM(ItemsInStocks.InStock) AS INSTOCK |FROM | RegisterAccumulations.Stocks AS | ItemsInStocks AS | GROUP BY |. ProductsInWarehouses.Nomenclatură, |.

12. Constructii INDEX BY- folosit pentru indexarea câmpului de interogare. O interogare cu indexare durează mai mult, dar accelerează căutarea prin câmpurile indexate. Poate fi folosit numai în mesele virtuale.

Sintaxă: INDEX PRIN<Поле1, ... , ПолеN>

Exemplu de utilizare:

Query.Text = „SELECT | Ts.NameOS, | Ts.FolderNumber, | Ts.CodeOS, | Ts.Term, | Ts.Type | PLACE DataTs | FROM | &Ts AS Ts | | INDEX BY | Ts.NameOS, | Ts .CodeOS";

13. Design UNDE- vă permite să impuneți o condiție oricăror câmpuri de selecție. Rezultatul va include numai înregistrările care îndeplinesc condiția.

Sintaxă: UNDE<Условие1 ОператорЛогСоединения УсловиеN>

Exemplu de utilizare:

Query.Text = //toate înregistrările cu CompensationRemaining sunt selectate<>0 și //AmountForCalcCompRemaining > 100 "SELECT | CompensationRPORemains.Counterparty, |CompensationRPORemains.Child, | CompensationRPORemains.CompensationRemaining, | CompensationRPORemains.AmountForCalcCompRemains |Place Data Compensation.RPORemains.RPORemains.RPA | UNDE |CompensationRPORemaining.CompensationRemaining<>0 | Și CompensationRPORemains.AmountForCalcCompRemaining> 100" ;

14. Design REZULTATE... GENERAL- utilizat pentru calcularea totalurilor, proiectul specifică câmpurile prin care vor fi calculate totalurile și funcțiile de agregare aplicate câmpurilor totale. Când se folosesc totaluri pentru fiecare câmp după construcția TOTAL, datele sunt grupate. Există o construcție GENERAL opțională. Veți vedea un exemplu de rezultat al cererii mai jos.

Sintaxă: REZULTATE<АгрегатнаяФункция1, ... , АгрегатнаяФункцияN>DE<ОБЩИЕ> <Поле1, ... , ПолеN>

Exemplu de utilizare:

Solicitare.Text = "SELECT | Calcule. Contract de contrapartidă. Tip de acord AS Tip de contract, | Calcule. Contract de contraparte AS Contract, | Calcule. Contraparte, | Calcule. Valoarea soldului decontării reciproce AS Sold | FROM | Registrul de acumulări. Mutual Decontare CU Contrapartide Calcule AS |. TOTAL |. | GENERAL |

Figura conturează grupările care s-au format în timpul executării cererii, cea de sus se referă la secțiunea GENERAL, iar cea de-a doua la câmpul Counterparty Agreement Agreement Type.



Ți-a plăcut articolul? Împărtășește-l