Skip Navigation LinksALVAO 11.1ALVAO Asset ManagementVyhledávání, reporting a analýza datSQL dotaz a databázový skriptPříklady SQL dotazů Skip Navigation Links.


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.