SQL dotazy
Obecné rady
- 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".
- SQL dotazy umožňují spouštět pouze SELECT dotazy.
- 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].
- Nepoužívejte v dotazech SELECT * FROM, ale vždy
vyjmenujte konkrétní sloupce, jinak může být zobrazení výsledku
zpomaleno.
- 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
- 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.
|