Operator de referință SQL interogări

SELECT Nume, Comentariu, CollectionID

UNDE nume de genul „Toate pentru Windows%“

funcţii statistice

Funcții statistice (cum ar fi SUM, AVG, COUNT, COUNT (*), MAX și MIN) pentru a genera valorile finale ale seturilor de cerere de ieșire. Funcții statistice (cu excepția COUNT (*)) procesează toate valorile selectate într-o singură coloană pentru a produce o singură valoare rezultat. Funcții de analiză statistice pot fi aplicate la toate liniile în reprezentările vedere la un subset de proprietate definite în care, sau una sau mai multe grupe de linii în reprezentare. În aplicarea funcției statistice a fiecărui set de șiruri generează o singură valoare.

Rețineți că valorile NULL sunt eliminate înainte de a calcula rezultatul unei funcții agregate. De exemplu, în cazul în care există 100 de înregistrări, și 8 dintre ele au o valoare NULL în coloana de proprietăți cu care se face calculul, rezultatele de calcul sunt returnate doar 92 de intrări.

Un exemplu de utilizare a unui COUNT funcție agregată (*) este afișată în următoarea interogare (de la built-in raportul Calcul clienti pentru fiecare site) și a stabilit un exemplu al rezultatelor.

SELECT v_Site.SiteCode, v_Site.SiteName, v_Site.ReportingSiteCode,

Count (SMS_Installed_Sites0) AS 'Count'

DE LA v_Site, v_RA_System_SMSInstalledSites InsSite

UNDE v_Site.SiteCode = InsSite.SMS_Installed_Sites0

GROUP BY SiteCode, NumeSite, ReportingSiteCode

COMANDA PRIN SiteCode

CONEXIUNI

Pentru a crea rapoarte eficiente în Configuration Manager, trebuie să știe cum să combine diferite puncte de vedere pentru a obține datele așteptate. Există trei tipuri de conexiuni: interne, externe și cruce. În plus, există trei tipuri de exterior join: stânga, dreapta, și complete. O auto utilizează oricare dintre compușii menționați mai sus, dar se alătură înregistrările de la una și aceeași reprezentare.

conexiuni interne

La înregistrarea de conectare internă a celor două concepte sunt combinate și adăugate la rezultatele unei interogări numai în cazul în care valoarea câmpurilor conectate îndeplinesc anumite criterii specificate. Când conexiunea internă folosind RESOURCEID pentru a conecta idei și rezultatul v_R_System v_GS_WORKSTATION_STATUS ar trebui să fie o listă cu toate sistemele cu datele lor ultimul echipament de scanare.

SELECT v_R_System.Netbios_Name0 AS machineName,

v_GS_WORKSTATION_STATUS.LastHWScan AS [Ultima HW Scan]

DE LA v_R_System INTERIOARĂ TE v_GS_WORKSTATION_STATUS

ON v_R_System.ResourceID = v_GS_WORKSTATION_STATUS.ResourceID

link-uri externe

Conexiune externă returnează toate rândurile de la reprezentările îmbinate între ele exclude linii de potrivire. ON clauză completează datele mai degrabă decât filtrarea acestora. Trei tipuri de conexiuni externe (stânga, dreapta și total) indică sursa de date primare. Link-uri externe pot fi deosebit de utilă atunci când reprezentarea este valori NULL.

Din stânga conexiuni externe

Când se utilizează un exterior stânga se alăture pentru a combina două puncte de vedere, toate rândurile din reprezentarea din stânga incluse în rezultatele. Următoarea prezentare de interogare v_R_System v_GS_WORKSTATION_STATUS și conectat cu conexiunea externă din stânga. Reprezentarea V_R_System specificate în cerere în timpul transferului de primul, ceea ce face vizualizarea din stânga. Rezultatul va conține o listă a tuturor sistemelor cu datele lor ultimul echipament de scanare. Spre deosebire de conexiunea internă, sistemele care nu au fost date echipament de scanare în continuare se va listate cu valoarea NULL (așa cum se vede din setul de rezultate).

SELECT v_R_System.Netbios_Name0 AS machineName,

v_GS_WORKSTATION_STATUS.LastHWScan AS [Ultima HW Scan]

DIN v_R_System LEFT OUTER JOIN v_GS_WORKSTATION_STATUS

ON v_R_System.ResourceID = v_GS_WORKSTATION_STATUS.ResourceID

Principiul de conectare extern pe dreapta este același ca și compusul exterior din stânga, cu excepția faptului că toate rândurile de reprezentare dreapta incluse în rezultatele.

Conexiune completa extern

recuperare preia completa toate liniile externe de conexiune de la ambele alăturat reprezentări. Se returnează toate rândurile asociate în cazul în care este îndeplinită condiția JOIN (adevărat) plus rând neasociat fiecare reprezentare, cuplat cu șir NULL dintr-un alt punct de vedere. De obicei nu este nevoie de a utiliza acest tip de conexiune externă.

conexiune Crossover

Crucea se alăture întoarce produsul a două reprezentări, și nu cantitatea. Fiecare prezentare linia din stânga este asociată cu fiecare rând de prezentarea corectă. Este un set de toate combinațiile posibile de rânduri, fără nici un fel de filtrare. Cu toate acestea, dacă adăugați o clauza WHERE, conexiunea transversală va funcționa ca o conexiune internă, folosind condiția de filtrare și selectarea din toate combinațiile posibile de rânduri după cum este necesar.

O auto-

O auto utilizează oricare dintre tipurile menționate mai sus de compuși, dar este o reprezentare, care este conectat cu ea însăși. Schema bazei de date se numește o comunicare auto-reflexiv.

Expresie cheie NU ÎN

interogări imbricate expresie cheie NU IN sunt foarte utile atunci când caută informații despre un set de date care nu îndeplinesc anumite criterii. În exemplul următor, interogarea returnează numele NetBIOS toate computerele care nu au Notepad.exe. În primul rând a crea o interogare care poate detecta toate mașinile cu fișierul selectat, după cum se arată mai jos:

SELECT v_R_System.Netbios_Name0 DISTINCT

DE LA v_R_System INTERIOARĂ TE v_GS_SoftwareFile

ON (v_GS_SoftwareFile.ResourceID = v_R_System.ResourceId)

UNDE v_GS_SoftwareFile.FileName = 'Notepad.exe'

După confirmarea că prima interogare afișează toate computerele care se execută Notepad.exe, instrucțiunea următoare este o interogare imbricate va folosi fraza de cuvinte cheie NOT IN, pentru a găsi toate numele de computerele care nu au fișier Notepad.exe:

SELECT DISTINCT Netbios_Name0

UNDE NU Netbios_Name0 ÎN

(SELECT v_R_System.Netbios_Name0 DISTINCT

DE LA v_R_System INTERIOARĂ TE v_GS_SoftwareFile

ON (v_GS_SoftwareFile.ResourceID = v_R_System.ResourceId)

UNDE v_GS_SoftwareFile.FileName = 'Notepad.exe')

COMANDA prin Netbios_Name0