Příklady dotazů SQL
Všechny počítače v aktivních záznamech
Následující dotaz zjistí podrobnosti o všech počítačích.
SELECT [Object name], [RAM size (GB)], [Total hard disk capacity (GB)], [CPU], [Operating system], [Graphic card], [IP addresses], [MAC addresses]
FROM Query.ObjectEnu
WHERE [Object of Computer type] = 'Yes'
Všechny počítače v aktivních záznamech s nainstalovaným programem AcrobatReader
Zde spojíme hodnoty z více pohledů do jednoho pomocí operátoru LEFT JOIN
SELECT ObjectEnu.[Object name], Software.Product FROM Query.ObjectEnu
LEFT JOIN Query.Software ON [Software].ComputerNodeId = ObjectEnu.[Object id]
WHERE Software.Product = 'Adobe Acrobat Reader'
Všechny počítače a historie jejich přesunů
Dotaz na objekty počítačů a některé vybrané položky jejich historie
SELECT ObjectEnu.[Object name], ObjectLogEnu.[Record date (UTC)], ObjectLogEnu.[Title], ObjectLogEnu.[Message], ObjectLogEnu.[Record kind]
FROM Query.ObjectEnu
LEFT JOIN Query.ObjectLogEnu ON ObjectLogEnu.[Object id] = ObjectEnu.[Object id]
WHERE ObjectEnu.[Object of Computer type] = 'Yes' AND ObjectLogEnu.[Title] = N'Move' AND ObjectLogEnu.[Record kind] = 'Object history'
Diskové jednotky a volné místo
Dotaz na diskové jednotky počítače a stav volného místa.
SELECT o.[Object name], d.[Logical drive], d.[Capacity (GB)], d.[Total free space (GB)], d.[Free space (%)]
FROM Query.DiskDriveEnu d
LEFT JOIN [Query].[ObjectEnu] o ON d.[Object id]=o.[Object id]
Uživatelé s přenesenými prostředky bez přenosového protokolu
Tento dotaz zobrazuje uživatele, kterým byl předán majetek s vyplněným inventárním číslem, ale následně nebyl vystaven předávací protokol.
SELECT
usr.[Name] [User],
usr.[Path in tree],
dbo.fnLocalTime(moves.[Date of last move (UTC)], 'Central Europe Standard Time') [Date last moved],
dbo.fnLocalTime(pp.[Last PP Date (UTC)], 'Central Europe Standard Time') [Date of last PP]
FROM (
SELECT
usr.[Object id] [User Id],
max(l.[Record date (UTC)]) [Date of last move (UTC)]
FROM Query.ObjectLogEnu l
INNER JOIN Query.ObjectEnu o ON o.[Object id]=l.[Object id] AND ISNULL(o.[Inventory number],'')!=''
INNER JOIN Query.NodeParent np ON np.ChildNodeId=l.[Object id]
INNER JOIN Query.ObjectEnu usr ON usr.[Object id]=np.ParentNodeId AND usr.[Type]=N'User'
WHERE l.Title=N'Move'
GROUP BY usr.[Object id]
) moves
INNER JOIN Query.ObjectEnu usr ON usr.[Object id]=moves.[User Id]
LEFT JOIN (
SELECT
l.[Object id],
ISNULL(max(l.[Record date (UTC)]),{d'1900-01-01'}) [Last PP Date (UTC)]
FROM Query.ObjectLogEnu l
WHERE l.[Record kind]=N'Document' AND l.Title=N'Transmission Log'
GROUP BY l.[Object id]
) pp ON pp.[Object id] = moves.[User Id]
WHERE moves.[Date of last move (UTC)]>DATEADD(DAY,1,pp.[Last PP Date (UTC)])
Poznámka: V předávacím protokolu je uvedeno pouze datum (a čas je vždy 00:00:00), takže k němu musíme přidat den
Audit změn oprávnění uživatelů
Protokol změn nastavení oprávnění ve stromu objektů za poslední měsíc.
SELECT * FROM Query.NodeRightLog
WHERE DatePart(m, [TimeStamp]) = DatePart(m, DateAdd(m, -1, GETUTCDATE()))
AND DatePart(yy, [TimeStamp]) = DatePart(yy, DateAdd(m, -1, GETUTCDATE()))
Protokol změn v nastavení členství ve skupinách za poslední měsíc.
SELECT * FROM Query.RoleMembershipLog
WHERE DatePart(m, [TimeStamp]) = DatePart(m, DateAdd(m, -1, GETUTCDATE()))
AND DatePart(yy, [TimeStamp]) = DatePart(yy, DateAdd(m, -1, GETUTCDATE()))
Protokol přihlášení uživatelů za poslední měsíc.
SELECT * FROM Query.UserLogonLog
WHERE DatePart(m, [TimeStamp]) = DatePart(m, DateAdd(m, -1, GETUTCDATE()))
AND DatePart(yy, [TimeStamp]) = DatePart(yy, DateAdd(m, -1, GETUTCDATE()))
Počítače a jejich zjištěné čipy TPM
Dotaz zobrazí seznam počítačů a jejich zjištěných čipů TPM.
SELECT
o.[Object id] NodeId, o.[Type],
o.[Object name] [Computer],
o.[Path in tree],
wo.IsActivated,
wo.IsEnabled,
wo.IsOwned,
wo.Manufacturer,
wo.ManufacturerVersion,
wo.ManufacturerVersionFull20,
wo.ManufacturerVersionInfo,
wo.PhysicalPresenceVersionInfo,
wo.SpecVersion
FROM Query.ObjectEnu o
LEFT JOIN vComputerDetectLast cdl ON cdl.lintComputerNodeId=o.[Object id] AND cdl.lintDetectKindId=1
LEFT JOIN tblWbemObject wo ON wo.lintDetectId=cdl.lintDetectId AND wo.__CLASS='Win32_Tpm'
WHERE o.[Object of Computer type]='Yes'
Dotaz do SQL
Zde si ukážeme, jak lze převést
dotaz na psaný v interním dotazovacím jazyce do jazyka SQL.
Původní dotaz:
SELECT AS "User"=[User].@Node,[Computer].[Computer Type],[Computer].@Node,[Monitor].@Node COUNT
WHERE @Class='User'
WITH
SELECT AS [Computer] WHERE @Class='Computer' AND ([Computer Type] = "desktop"),
SELECT AS [Monitor] WHERE @Class='Monitor'
ENDWITH
Tento dotaz nám zobrazí objekty uživatelů, jejich počítače typu desktop a monitory. Zobrazí nám také celkový počet monitorů pod všemi uživateli (bez ohledu na typ počítače). Při převodu do jazyka SQL budeme postupovat tak, že nejprve vyhledáme všechny nesmazané objekty typu User a jejich podobjekty typu Computer
SELECT [User].[Object name] AS [User NodeName], Node.[Object name] AS [Computer Name] FROM [Query].[ObjectEnu] [User]
LEFT JOIN [Query].NodeParent ON [User].[Object id] = NodeParent.ParentNodeId
LEFT JOIN [Query].[ObjectEnu] [Node] ON NodeParent.ChildNodeId = Node.[Object id]
WHERE [User].[Object kind] = N'User' AND (Node.[Object kind] = N'Computer/Desktop' OR Node.[Object kind] = N'Monitor')
Poznámka:
Na rozdíl od původního dotazu v dotazovacím jazyce výsledný dotaz SQL neobsahuje celkový počet monitorů. Tuto hodnotu je třeba zjistit v samostatném dotazu
Převod standardních dotazů EPQ
Následující SQL dotazy zobrazují stejné údaje jako standardní soubory EPQ
Inventura podle místnosti
Objekty s vlastností inventární číslo, seskupené podle vlastnosti Místnost a seřazené podle názvu sítě a třídy
SELECT
[Object name],
[Object kind],
[Inventory number],
[Room],
[User],
[Network branch name]
FROM Query.ObjectEnu
WHERE [Inventory number] IS NOT NULL
Poznámka: Výsledek dotazu pak v tabulce seřaďte podle sloupce "Room".
Inventář podle uživatele
Objekty s vlastností inventární číslo seskupené podle vlastnosti User
SELECT
[Object name],
[Object kind],
[Inventory number],
[Room],
[User],
[Network branch name]
FROM Query.ObjectEnu
WHERE [Inventory number] IS NOT NULL
Poznámka: Pak výsledek dotazu v tabulce seřaďte podle sloupce "Uživatel".
Odinstalovaný software
Nainstalovaný software seskupený podle počítače
SELECT c.[Object name] AS [Computer], Product AS [Application],
Installed, LicenseInventoryNumber AS [Computer inventory number],
u.[Object name] AS [User], LicenseInvoiceNumber AS [License document number],
LicenceName AS [LicenseName] FROM Query.Software
LEFT JOIN Query.ObjectEnu c ON c.[Object id] = Software.ComputerNodeId
LEFT JOIN Query.ObjectEnu u ON u.[Object id] = Software.[User]
WHERE Product like N'ALVAO%'
Operační systémy
Nainstalované operační systémy, seskupené podle počítačů
SELECT Computer.NodeName AS [Computer], Product AS [OS], Installed AS [Installation Date],
Computer.[Inventory Number] AS [Inventory Number], [Computer].UserNodeId AS [User], LicenseInvoiceNumber AS [Document], [LicenceName] AS [Assigned license], LicenseActivationKey AS [OS - serial number]
FROM Query.Software
LEFT JOIN Query.Computer ON Computer.NodeId = Software.ComputerNodeId WHERE Category = 1
Počítače
Počítače, jejich podobjekty a vlastnosti
SELECT [Object name], [Network branch name], [User], [Purchase date], [Inventory number], [Serial number],
[Warranty expiration], [Total hard disk capacity (GB)] AS [HDD], CPU, [Operating system]
FROM Query.ObjectEnu
WHERE [Object of Computer type] = 'Yes'
Změny podle data
Seznam událostí v protokolu ze zadaných parametrů. Seskupení podle objektů
SELECT [Object name], [Object kind], [Record date (UTC)], [Title], [Message]
FROM [Query].[ObjectLogEnu]
LEFT JOIN [Query].[ObjectEnu] ON [ObjectEnu].[Object id] = [ObjectLogEnu].[Object id]
Pohyby objektů podle data
Seznam událostí pohybů v protokolu. Seskupení podle data
SELECT [Object name], [Object kind], [Record date (UTC)], [Title], [Message]
FROM [Query].[ObjectLogEnu]
LEFT JOIN [Query].[ObjectEnu] ON [ObjectEnu].[Object id] = [ObjectLogEnu].[Object id]
WHERE ObjectLogEnu.[Title] = N'Move' AND ObjectLogEnu.[Record kind] = 'Object history'
Zařízení podle data pořízení
Seznam objektů podle data pořízení
SELECT [Object name], CONVERT(datetime, [Purchase date]) AS [Date], [Room], [User]
FROM Query.ObjectEnu
Zařízení v záruce
Seznam předmětů podle jejich záruky (vlastnictví)
SELECT [Object name], CONVERT(datetime, [Purchase date]) AS [Date], [Room], [User], [Warranty expiration]
FROM Query.ObjectEnu
Nenašli jste co jste hledali? Zeptejte se našeho týmu technické podpory.