Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A Configuration Manager-jelentések létrehozásakor számos hasznos Microsoft SQL Server-utasítás használható, amelyeket ebben a szakaszban röviden ismertetünk. A vitafórum követéséhez rendelkeznie kell az SQL-lekérdezésutasítások alapszintű ismeretével és a lekérdezések írásának képességével, például a következővel:
SELECT Name, Comment, CollectionID
FROM v_Collection
WHERE Name LIKE 'All Windows%'
ORDER BY Name
Az alapszintű lekérdezések írásáról a SQL Server dokumentációjában talál további információt.
Összesítő függvények
Az aggregátumfüggvények (például SZUM, AVG, DARAB, DARAB(*), MAX és MIN) összegző értékeket hoznak létre a lekérdezési eredményhalmazokban. Az aggregátumfüggvény (a DARAB(*) kivételével) egyetlen oszlopban dolgozza fel az összes kijelölt értéket egyetlen eredményérték előállításához. Az összesítő függvények a nézetben lévő összes sorra, a WHERE záradék által meghatározott nézet egy részhalmazára vagy a nézet egy vagy több sorcsoportjára alkalmazhatók. Aggregátumfüggvény alkalmazásakor minden sorkészletből egyetlen érték jön létre.
Fontos
Vegye figyelembe, hogy a NULL értékek nem szerepelnek az összesített eredmények között. Ha például 100 rekordja van, és közülük 8 null oszlopértéket tartalmaz a megszámlálható tulajdonsághoz, a darabszám csak 92 eredményt ad vissza.
A COUNT(*) aggregátumfüggvény használatára egy példa jelenik meg a következő lekérdezésben (az ügyfelek számlálása az egyes helyek előre definiált jelentéseiben) és a példaeredmény-készletben.
SELECT v_Site.SiteCode, v_Site.SiteName, v_Site.ReportingSiteCode,
Count(SMS_Installed_Sites0) AS 'Count'
FROM v_Site, v_RA_System_SMSInstalledSites InsSite
WHERE v_Site.SiteCode = InsSite.SMS_Installed_Sites0
GROUP BY SiteCode, SiteName, ReportingSiteCode
ORDER BY SiteCode
| SiteCode | Webhelynév | ReportingSiteCode | Számít |
|---|---|---|---|
| ABC | ABC-webhely | 928 | |
| 123 | 123 Webhely | ABC | 1010 |
Dátum- és időfüggvények
Számos beépített jelentés használja a Dátum és idő függvényt. A leggyakrabban használt függvények a GETDATE, a DATEADD, a DATEDIFF és a DATEPART.
GETDATE ()
A GETDATE függvény SQL Server dátum/idő értékek belső formátumában állítja elő az aktuális dátumot és időt. A GETDATE a NULL paramétert () veszi fel.
Az alábbi példa az aktuális rendszerdátumot és -időt eredményezi:
SELECT GETDATE()
| (nincs oszlopnév) |
|---|
| 2005-05-29 10:10:03.001 |
DATEADD (datepart, number, date)
A DATEADD függvény egy új dátum/idő értéket ad vissza a megadott dátumhoz adott intervallum hozzáadása alapján.
A Datepart az a paraméter, amely megadja, hogy a dátum mely részén adjon vissza új értéket (például év, hónap, nap, óra, perc stb.), a szám a datepart növeléséhez használt érték, a dátum pedig a kezdő dátum.
Az alábbi példa egy 2005. május 29-i kétnapos dátumot eredményez:
SELECT DATEADD([day], 2, '2005-05-29 10:10:03.001')
| (nincs oszlopnév) |
|---|
| 2005-05-31 10:10:03.001 |
DATEDIFF (datepart , startdate , enddate)
A DATEDIFF függvény a két megadott dátum közötti dátum- és időhatárok számát adja vissza.
A Datepart paraméter azt határozza meg, hogy a dátum mely részén adjon vissza új értéket (például év, hónap, nap, óra, perc stb.), a kezdő dátum a kezdő dátum, az enddate pedig a befejezési dátum.
Az alábbi példa az első és a második dátum közötti percek számát eredményezi:
SELECT DATEDIFF (minute, '2005-05-29 10:10:03.001',
'2005-06-12 09:28:11.111')
| (nincs oszlopnév) |
|---|
| 20118 |
DATEPART (datepart , date)
A DATEPART függvény egy egész számot ad vissza, amely a megadott dátum megadott dátumrészét jelöli.
A Datepart az a paraméter, amely meghatározza, hogy a dátum mely részét adja vissza, a dátum pedig a megadott dátum.
Az alábbi példában a hónap a megadott dátumot adja meg:
SELECT DATEPART (month, '2005-05-29 10:10:03.001')
| (nincs oszlopnév) |
|---|
| 5 |
Dátum- és időfüggvények kombinálása
Általában a Dátum és az Idő függvény kombinációját használják Configuration Manager jelentésekben.
Az alábbi példában az aktuális dátum és idő (2005-05-29 10:10:03.001) mínusz 100 nap látható:
SELECT DATEADD([day], - 100, GETDATE())
| (nincs oszlopnév) |
|---|
| 2005-02-18 10:10:03.001 |
Példa lekérdezés dátum- és időfüggvényekkel
A következő lekérdezés az állapotüzenetek teljes számát eredményezi egy egynapos időszakra vonatkozóan. Ebben a lekérdezésben a COUNT, a GETDATE és a DATEADD függvényt, valamint a BETWEEN logikai operátort, valamint a GROUP BY és AZ ORDER BY záradékot használja.
SELECT SiteCode, MessageID, COUNT(MessageID) AS [count],
GETDATE() AS [End Date]
FROM vStatusMessages
WHERE ([Time] BETWEEN DATEADD([day], -1, GETDATE()) AND GETDATE())
AND (MessageID BETWEEN '0' AND '10000')
GROUP BY SiteCode, MessageID
ORDER BY SiteCode, MessageID
| Webhelykód | Üzenetazonosító | Számít | Záró dátum |
|---|---|---|---|
| ABC | 500 | 190 | 2005-05-29 10:10:03.001 |
| ABC | 501 | 130 | 2005-05-29 10:10:03.001 |
| ABC | 502 | 190 | 2005-05-29 10:10:03.001 |
| ABC | 1105 | 85 | 2005-05-29 10:10:03.001 |
| ABC | 1106 | 5 | 2005-05-29 10:10:03.001 |
CSATLAKOZIK
Ahhoz, hogy hatékony jelentéseket hozhasson létre Configuration Manager, meg kell értenie, hogyan csatlakozhat különböző nézetekhez a várt adatok lekéréséhez. Az illesztéseknek három típusa van: belső, külső és kereszt. Emellett háromféle külső illesztés létezik: bal, jobb és teljes. Az önillesztés a fenti illesztések bármelyikét használja, de ugyanabból a nézetből illeszti össze a rekordokat.
Belső illesztések
Belső illesztés esetén a rendszer két nézet rekordjait kombinálja, és csak akkor adja hozzá a lekérdezés eredményeihez, ha az illesztett mezők értékei megfelelnek bizonyos feltételeknek. Ha belső illesztést használ a ResourceID használatával a v_R_System és a v_GS_WORKSTATION_STATUS nézetek összekapcsolásához, az eredmény az összes rendszer és az utolsó hardvervizsgálati dátum listája lesz.
SELECT v_R_System.Netbios_Name0 AS MachineName,
v_GS_WORKSTATION_STATUS.LastHWScan AS [Last HW Scan]
FROM v_R_System INNER JOIN v_GS_WORKSTATION_STATUS
ON v_R_System.ResourceID = v_GS_WORKSTATION_STATUS.ResourceID
| Gép neve | Legutóbbi HW-vizsgálat |
|---|---|
| 1. ügyfél | 2005-05-29 10:10:03.001 |
| 3. ügyfél | 2005-06-12 09:28:11.110 |
Külső illesztések
A külső illesztés az illesztett nézetek összes sorát visszaadja, függetlenül attól, hogy van-e egyező sor közöttük. Az ON záradék a szűrés helyett kiegészíti az adatokat. A külső illesztések három típusa (bal, jobb és teljes) a fő adatok forrását jelzi. A külső illesztések különösen hasznosak lehetnek, ha NULL értékekkel rendelkezik egy nézetben.
Bal oldali külső illesztések
Ha bal oldali külső illesztést használ két nézet egyesítéséhez, a bal oldali nézet összes sora megjelenik az eredmények között. A következő lekérdezésben a v_R_System és a v_GS_WORKSTATION_STATUS nézetek a bal oldali külső illesztés használatával lesznek összekapcsolva. A v_R_System nézet a lekérdezés első nézete, amely bal oldali nézetként jelenik meg. Az eredmény tartalmazza az összes rendszer listáját és az utolsó hardvervizsgálat dátumát. A belső illesztéstől eltérően a hardveres vizsgálat alá nem vont rendszerek továbbra is NULL értékkel lesznek felsorolva (ahogy az eredményhalmazban látható).
SELECT v_R_System.Netbios_Name0 AS MachineName,
v_GS_WORKSTATION_STATUS.LastHWScan AS [Last HW Scan]
FROM v_R_System LEFT OUTER JOIN v_GS_WORKSTATION_STATUS
ON v_R_System.ResourceID = v_GS_WORKSTATION_STATUS.ResourceID
| Gép neve | Legutóbbi HW-vizsgálat |
|---|---|
| 1. ügyfél | 2005-05-29 10:10:03.001 |
| 2. ügyfél | NULL |
| 3. ügyfél | 2005-06-12 09:28:11.110 |
Jobb oldali külső illesztések
A jobb oldali külső illesztés elméletileg megegyezik a bal oldali külső illesztésekkel, azzal a különbségvel, hogy a jobb oldali nézet összes sora megjelenik az eredmények között.
Teljes külső illesztés
A teljes külső illesztés mindkét illesztett nézet összes sorát lekéri. Visszaadja az összes olyan párosított sort, ahol az illesztés feltétele igaz, valamint az egyes nézetek ki nem egyenlített sorait a másik nézet null soraival összefűzve. Általában nem érdemes ilyen típusú külső illesztést használni.
Keresztillesztés
A keresztillesztés két nézet szorzatát adja vissza, nem az összeget. A bal oldali nézetben minden sor egyezik a jobb oldali nézetben lévő sorokkal. Ez az összes lehetséges sorkombináció halmaza, szűrés nélkül. Ha azonban where záradékot ad hozzá, a keresztillesztés belső illesztésként működik, a feltétel alapján szűri az összes lehetséges sorkombinációt a kívántakra.
Önillesztés
Az önillesztés a fenti illesztéstípusok bármelyikét használja, de olyan nézet, amely önmagához van csatlakoztatva. Az adatbázis-diagramokban az önillesztést reflexív kapcsolatnak nevezzük.
NOT IN kulcsszókifejezés
A NOT IN kulcsszóval ellátott segéd lekérdezések nagyon hasznosak olyan adatkészlettel kapcsolatos információk kereséséhez, amelyek nem felelnek meg bizonyos feltételeknek. A következő példában a lekérdezés az összes olyan számítógép NetBIOS-nevét adja vissza, amely nincs telepítve Notepad.exe. Először létre kell hoznia egy lekérdezést, amely képes észlelni az összes olyan számítógépet, amely a kijelölt fájlt telepítette az alábbiak szerint:
SELECT DISTINCT v_R_System.Netbios_Name0
FROM v_R_System INNER JOIN v_GS_SoftwareFile
ON (v_GS_SoftwareFile.ResourceID = v_R_System.ResourceId)
WHERE v_GS_SoftwareFile.FileName = 'Notepad.exe'
Miután meggyőződik arról, hogy az első lekérdezés megjeleníti az összes olyan számítógépet, amelyen telepítve Notepad.exe, a következő al lekérdezési utasítás a NOT IN kulcsszókifejezést fogja használni az összes olyan számítógépnév megkereséséhez, amelyen nincs telepítve a Notepad.exe fájl:
SELECT DISTINCT Netbios_Name0
FROM v_R_System
WHERE Netbios_Name0 NOT IN
(SELECT DISTINCT v_R_System.Netbios_Name0
FROM v_R_System INNER JOIN v_GS_SoftwareFile
ON (v_GS_SoftwareFile.ResourceID = v_R_System.ResourceId)
WHERE v_GS_SoftwareFile.FileName = 'Notepad.exe')
ORDER by Netbios_Name0
Lásd még
Jelentés SQL-utasításainak írása Configuration Manager jelentésekhez lekérdezéstervezővel