Skip Navigation LinksALVAO 8.2ALVAO Asset ManagementImplementace systému v organizaciVlastní úpravy a rozšířeníSQL dotazy Skip Navigation Links. Skip Navigation Links Skip Navigation Links.


SQL dotazy

Obecné rady

  1. Při vytváření SQL dotazů doporučujeme používat pohledy vytvořené pro snadnější přístup k datům v Asset Managementu. Všechny pohledy určené pro přístup k informacím z AM jsou v databázovém schématu "Query".
  2. SQL dotazy umožňují spouštět pouze SELECT dotazy.
  3. Názvy vlastních sloupců zadávejte vždy ve tvaru Pohled.[Sloupec], například Node.[Sériové číslo]. Sloupce můžete přejmenovat pomocí příkazu AS, například SELECT Pohled.[Sloupec] AS [Pohled Sloupec].
  4. Nepoužívejte v dotazech SELECT * FROM, ale vždy vyjmenujte konkrétní sloupce, jinak může být zobrazení výsledku zpomaleno.
  5. Pohledy, které obsahují vlastnosti objektů, obsahují vždy 100 nejpoužívanějších vlastností objektů. Aktualizaci těchto pohledů (novou definici pro 100 nejpoužívanějších vlastností) lze provést v ALVAO Admin - Údržba databáze - Aktualizovat data pro reporty
  6. Před vytvořením vlastních dotazů nad pohledy doporučujeme podívat se na níže popsané ukázky použití pohledů.

Ukázky SQL dotazů

Níže uvádíme některé základní SQL dotazy na zjištění dat o objektech.

Zobrazení všech počítačů v aktivní evidenci a jejich volného místa na disku

V následujícím dotazu se zjistí stav volného místa na disku u všech objektů počítačů.
SELECT Computer.NodeName, Computer.[TotalHDDFreeSpaceGB] AS [Volné místo na disku] 
FROM Query.Computer 

Zobrazení všech počítačů v aktivní evidenci s nainstalovaným AcrobatReader

Zde spojíme hodnoty z více pohledů do jednoho pomocí operátoru LEFT JOIN.
SELECT Computer.[NodeName],Software.Product FROM Query.Computer
LEFT JOIN Query.Software ON [Software].ComputerNodeId = Computer.NodeId
WHERE Software.Product = 'Adobe Acrobat Reader'

Zobrazení všech objektů počítačů a jejich historie přesunu

Dotaz na objekty počítačů a některé vybrané položky jejich historie.
SELECT Computer.[NodeName], [NodeDiary].[Date], [NodeDiary].[Subject], [NodeDiary].[Text] FROM Query.Computer
LEFT JOIN Query.NodeDiary ON NodeDiary.NodeId = Computer.NodeId
WHERE NodeDiary.Type=0 AND Subject = N'Přesun'

Převod dotazovacího jazyka do SQL – Zobrazení všech objektů uživatelů, jejich počítačů typu desktop a celkový počet monitorů u nich

Ukážeme si zde, jak lze přepsat dotaz v dotazovacím jazyce 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].NodeName AS [User NodeName], Node.NodeName AS [Computer Name] FROM [Query].[User]
LEFT JOIN [Query].NodeParent ON [User].[NodeId] = NodeParent.ParentNodeId
LEFT JOIN [Query].Node ON NodeParent.ChildNodeId = Node.NodeId
WHERE Node.Class = N'Počítač/desktop' OR Node.Class = 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 MAX(NodeName) AS [Objekt], MAX(Class) AS [Druh],
MAX([Inventární číslo]) AS [Inventární číslo], MAX([Místnost]) AS [Místnost],
MAX([Uživatel]) AS [Uživatel], MAX([Název v síti]) AS [Název v síti] 
FROM Query.Node WHERE [Inventární číslo] IS NOT NULL GROUP BY [Místnost]

Inventář podle uživatelů

Objekty s vlastností inventárním číslem, seskupené dle vlastnosti Uživatel.
SELECT MAX(NodeName) AS [Objekt], MAX(Class) AS [Druh],
MAX([Inventární číslo]) AS [Inventární číslo], MAX([Místnost]) AS [Místnost],
MAX([Uživatel]) AS [Uživatel], MAX([Název v síti]) AS [Název v síti] 
FROM Query.Node WHERE [Inventární číslo] IS NOT NULL  GROUP BY [Uživatel]

Nainstalovaný software podle software

Nainstalovaný software, seskupený dle počítačů.
SELECT Computer.NodeName AS [Počítač], Product AS [Aplikace], 
Installed, LicenseInventoryNumber AS [Inventární číslo počítače], 
[User].NodeName AS [Uživatel], LicenseInvoiceNumber AS [Číslo dokumentu licence],
LicenceName AS [Název licence] FROM Query.Software
LEFT JOIN Query.Computer ON Computer.NodeId = Software.ComputerNodeId 
LEFT JOIN Query.[User] ON [User].NodeId = Software.[User] 
WHERE Product = N'ALVAO Service Desk 8.1'

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 NodeName, [Název v síti], [Uživatel], [Datum nákupu], [Inventární číslo], [Sériové číslo],
 [Záruka do], TotalHDDSizeGB AS [HDD] , CPUName AS [Procesor], OS 
 FROM Query.Computer

Přehled zásahů podle data

Seznam událostí v deníku od zadaných parametrů. Seskupení dle objektů.
SELECT NodeName AS [Objekt], Class AS [Druh], Date AS [Datum], Subject AS [Předmět], Text AS [Text]
FROM [Query].[NodeDiary]
LEFT JOIN [Query].[Node] ON Node.NodeId = NodeDiary.NodeId

Přesuny objektů podle data

Seznam událostí přesunů v deníku. Seskupení dle data.
SELECT NodeName AS [Objekt], Class AS [Druh], Date AS [Datum],
Subject AS [Předmět], Text AS [Text] 
FROM Query.NodeDiary 
LEFT JOIN Query.Node ON Node.NodeId = NodeDiary.NodeId 
WHERE NodeDiary.Subject = N'Přesun'

Zařízení podle data nákupu

Seznam objektů dle data nákupu.
SELECT NodeName AS [Zařízení],
CONVERT(datetime,[Datum nákupu]) AS [Datum], [Místnost], [Uživatel] FROM 
Query.Node

Zařízení podle záruky

Seznam objektů dle jejich záruky (vlastnost).
SELECT NodeName AS [Zařízení],CONVERT(datetime,[Datum nákupu]) AS [Datum],
[Místnost], [Uživatel],[Záruka do]
FROM Query.Node

SQL dotazy pro Audit změn oprávnění uživatelů

Protokol 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 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()))

 

Nenašli jste co jste hledali? Zeptejte se našeho týmu technické podpory.