Příklady SQL dotazů
Všechny počítače v aktivní evidenci
Následující dotaz zjistí podrobnosti o všech počítačích.
 
	 
SELECT [Název objektu], [Velikost paměti RAM (GB)], [Celková kapacita pevných disků (GB)], [Procesor], [Operační systém], [Grafická karta], [IP adresy], [MAC adresy]
FROM Query.ObjectCsy
WHERE [Objekt typu počítač] = 'Ano'
 
Všechny počítače v aktivní evidenci s nainstalovaným AcrobatReader
Zde spojíme hodnoty z více pohledů do jednoho pomocí operátoru LEFT JOIN.
	 
SELECT ObjectCsy.[Název objektu], Software.Product FROM Query.ObjectCsy
LEFT JOIN Query.Software ON [Software].ComputerNodeId = ObjectCsy.[Id objektu]
WHERE Software.Product = 'Adobe Acrobat Reader'
 
Všechny počítače a jejich historie přesunů
Dotaz na objekty počítačů a některé vybrané položky jejich historie.
	 
SELECT ObjectCsy.[Název objektu], ObjectLogCsy.[Datum záznamu (UTC)], ObjectLogCsy.[Nadpis], ObjectLogCsy.[Zpráva]
FROM Query.ObjectCsy
LEFT JOIN Query.ObjectLogCsy ON ObjectLogCsy.[Id objektu] = ObjectCsy.[Id objektu]
WHERE [Objekt typu počítač] = 'Ano' AND ObjectLogCsy.[Nadpis] = N'Přesun' AND ObjectLogCsy.[Druh záznamu] = 'Historie objektů'
 
Diskové jednotky a volné místo na nich
Dotaz na diskové jednotky počítačů a stav volného místa na nich.
SELECT o.[Název objektu], d.[Logický disk], d.[Kapacita (GB)], d.[Volné místo (GB)], d.[Volné místo (%)]
FROM Query.DiskDriveCsy d
LEFT JOIN [Query].[ObjectCsy] o ON d.[Id objektu]=o.[Id objektu]
 
Uživatelé s přesunutým majetkem bez předávacího protokolu
    
        Dotaz zobrazí uživatele, kterým byl přesunut majetek s vyplněným inventárním číslem, ale následně nebyl vystaven předávací protokol.
    
    SELECT
  usr.[Název objektu] [Uživatel],
  usr.[Cesta ve stromu],
  dbo.fnLocalTime(presuny.[Datum posledního přesunu (UTC)],'Central Europe Standard Time') [Datum posledního přesunu],
  dbo.fnLocalTime(pp.[Datum posledního PP (UTC)],'Central Europe Standard Time') [Datum posledního PP]
FROM (
    SELECT
      usr.[Id objektu] [ID uživatele],
      max(l.[Datum záznamu (UTC)]) [Datum posledního přesunu (UTC)]
    FROM Query.ObjectLogCsy l
      INNER JOIN Query.ObjectCsy o ON o.[Id objektu]=l.[Id objektu] AND ISNULL(o.[Inventární číslo],'')!=''
      INNER JOIN Query.NodeParent np ON np.ChildNodeId=l.[Id objektu]
      INNER JOIN Query.ObjectCsy usr ON usr.[Id objektu]=np.ParentNodeId AND usr.[Druh objektu]=N'Uživatel'
    WHERE l.Nadpis=N'Přesun'
    GROUP BY usr.[Id objektu]
  ) presuny
  INNER JOIN Query.ObjectCsy usr ON usr.[Id objektu]=presuny.[ID uživatele]
  LEFT JOIN (
    SELECT
      l.[Id objektu],
      ISNULL(max(l.[Datum záznamu (UTC)]),{d'1900-01-01'}) [Datum posledního PP (UTC)]
    FROM Query.ObjectLogCsy l
    WHERE l.[Druh záznamu]=N'Dokument' AND l.Nadpis=N'Předávací protokol'
    GROUP BY l.[Id objektu]
  ) pp ON pp.[Id objektu]=presuny.[ID uživatele]
WHERE presuny.[Datum posledního přesunu (UTC)]>DATEADD(DAY,1,pp.[Datum posledního PP (UTC)])
     
    Pozn.: Předávací protokol má v deníku pouze datum (a čas je vždy 00:00:00), proto u něj musíme přidat jeden den.
Audit změn oprávnění uživatelů
Protokol změn v nastavení oprávnění ve stromu objektů za minulý 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 minulý 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řihlašování uživatelů za minulý 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 detekované TPM čipy
Dotaz zobrazí seznam počítačů a jejich detekované TPM čipy.
SELECT
	o.[Id objektu] NodeId,
	o.[Druh objektu],
	o.[Název objektu] [Počítač],
	o.[Cesta ve stromu],
	wo.IsActivated,
	wo.IsEnabled,
	wo.IsOwned,
	wo.Manufacturer,
	wo.ManufacturerVersion,
	wo.ManufacturerVersionFull20,
	wo.ManufacturerVersionInfo,
	wo.PhysicalPresenceVersionInfo,
	wo.SpecVersion
FROM Query.ObjectCsy o
	LEFT JOIN vComputerDetectLast cdl ON cdl.lintComputerNodeId=o.[Id objektu] AND cdl.lintDetectKindId=1
	LEFT JOIN tblWbemObject wo ON wo.lintDetectId=cdl.lintDetectId AND wo.__CLASS='Win32_Tpm'
WHERE o.[Objekt typu počítač]='Ano'
 
Převod dotazu do SQL
Zde si ukážeme, jak můžete 
dotaz napsaný v interním dotazovacím jazyce převést do SQL.
								Původní dotaz:
SELECT AS "Uživatel"=[Uživatel] [Uživatel].@Node,[Počítač].[Druh počítače],[Počítač].@Node,[Monitor].@Node COUNT 
WHERE @Class='Uživatel' 
WITH 
   SELECT AS [Počítač]  WHERE @Class='Počítač'  AND ([Druh počítače] = "desktop"),
   SELECT AS [Monitor]  WHERE @Class='Monitor' 
ENDWITH
Tento dotaz nám zobrazí objekty uživatelů, jejich počítače typu desktop a 
monitory. Také nám zobrazí celkový počet monitorů pod všemi uživateli (bez 
ohledu na typ počítače). Při převod do SQL budeme postupovat tak, že si napřed 
najdeme všechny nesmazané objekty typu Uživatel a jejich podobjekty typu 
Počítač.
SELECT [User].[Název objektu] AS [User NodeName], Node.[Název objektu] AS [Computer Name] FROM [Query].[ObjectCsy] [User]
LEFT JOIN [Query].NodeParent ON [User].[Id objektu] = NodeParent.ParentNodeId
LEFT JOIN [Query].[ObjectCsy] [Node] ON NodeParent.ChildNodeId = Node.[Id objektu]
WHERE [User].[Druh objektu] = N'Uživatel' AND (Node.[Druh objektu] = N'Počítač/desktop' OR Node.[Druh objektu] = N'Monitor')
 
		
		Poznámka:
		 Na rozdíl od původního dotazu v dotazovacím jazyce neobsahuje výsledný 
		SQL dotaz celkový počet monitorů. Tuto hodnotu je potřeba zjistit v 
		samostatném dotazu.
 
Převod standardních EPQ dotazů
Následující SQL dotazy zobrazují stejná data, jako standardní EPQ soubory.
Inventář podle místností
Objekty s vlastností inventárním číslem, seskupené dle vlastnosti Místnost a 
řazené dle názvu v síti a třídy.
SELECT
  [Název objektu] ,
  [Druh objektu],
  [Inventární číslo],
  [Místnost],
  [Uživatel],
  [Název v síti] 
FROM Query.ObjectCsy 
WHERE [Inventární číslo] IS NOT NULL
 
Pozn.: Výsledek dotazu si pak v tabulce seřaďte dle sloupce "Místnost".
Inventář podle uživatelů
Objekty s vlastností inventárním číslem, seskupené dle vlastnosti Uživatel.
SELECT
  [Název objektu] ,
  [Druh objektu],
  [Inventární číslo],
  [Místnost],
  [Uživatel],
  [Název v síti] 
FROM Query.ObjectCsy 
WHERE [Inventární číslo] IS NOT NULL
 
Pozn.: Výsledek dotazu si pak v tabulce seřaďte dle sloupce "Uživatel".
Nainstalovaný software podle software
Nainstalovaný software, seskupený dle počítačů.
SELECT c.[Název objektu] AS [Počítač], Product AS [Aplikace], 
Installed, LicenseInventoryNumber AS [Inventární číslo počítače], 
u.[Název objektu] AS [Uživatel], LicenseInvoiceNumber AS [Číslo dokumentu licence],
LicenceName AS [Název licence] FROM Query.Software
LEFT JOIN Query.ObjectCsy c ON c.[Id objektu] = Software.ComputerNodeId 
LEFT JOIN Query.ObjectCsy u ON u.[Id objektu] = Software.[User] 
WHERE Product like N'ALVAO%'
 
Operační systémy
Nainstalované OS, seskupené dle počítačů.
SELECT Computer.NodeName AS [Počítač], Product AS [OS], Installed AS [Datum instalace],
Computer.[Inventární číslo] AS [Inventární číslo], [Computer].UserNodeId AS [Uživatel], LicenseInvoiceNumber AS [Dokument],
LicenceName AS [Přidělená licence], LicenseActivationKey AS [OS - sériové číslo] 
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 [Název objektu], [Název v síti], [Uživatel], [Datum nákupu], [Inventární číslo], [Sériové číslo],
[Záruka do], [Celková kapacita pevných disků (GB)] AS [HDD], [Procesor], [Operační systém] 
FROM Query.ObjectCsy
WHERE [Objekt typu počítač] = 'Ano'
 
Přehled zásahů podle data
Seznam událostí v deníku od zadaných parametrů. Seskupení dle objektů.
SELECT [Název objektu], [Druh objektu], [Datum záznamu (UTC)], [Nadpis], [Zpráva]
FROM [Query].[ObjectLogCsy]
LEFT JOIN [Query].[ObjectCsy] ON [ObjectCsy].[Id objektu] = [ObjectLogCsy].[Id objektu]
 
Přesuny objektů podle data
Seznam událostí přesunů v deníku. Seskupení dle data.
SELECT [Název objektu], [Druh objektu], [Datum záznamu (UTC)], [Nadpis], [Zpráva]
FROM [Query].[ObjectLogCsy]
LEFT JOIN [Query].[ObjectCsy] ON [ObjectCsy].[Id objektu] = [ObjectLogCsy].[Id objektu]
WHERE ObjectLogCsy.[Nadpis] = N'Přesun' AND ObjectLogCsy.[Druh záznamu] = 'Historie objektů'
 
Zařízení podle data nákupu 
Seznam objektů dle data nákupu.
SELECT [Název objektu],
CONVERT(datetime,[Datum nákupu]) AS [Datum], [Místnost], [Uživatel] FROM 
Query.ObjectCsy
 
Zařízení podle záruky 
Seznam objektů dle jejich záruky (vlastnost).
SELECT [Název objektu], CONVERT(datetime,[Datum nákupu]) AS [Datum],
[Místnost], [Uživatel],[Záruka do]
FROM Query.ObjectCsy
 
                 
                
                
                    Nenašli jste co jste hledali? Zeptejte se našeho týmu technické podpory.