PDQ.com mobilePDQ.com desktop
Support

Helpful SQL Reports in PDQ Inventory

Stephanie WarnerStephanie Warner
·

The SQL reports feature in PDQ Inventory is a great tool to utilize if you need specific data and understand how to retrieve it using SQLite Code.

1. Show all computer names, operating system names, IP addresses, and if they’re online or not. Show how to filter the data for just the computers in a specific collection source.

SELECT
Name AS ‘Computer Name’,
OSName,
IPAddress,
IsOnline
FROM Computers
WHERE <ComputerFilter>

Note: The <ComputerFilter> in the WHERE clause works with the ‘Select Collection Source’ button above and is automatically placed in the query. The button looks like:

Choose a collection and keep the ‘WHERE <ComputerFilter>’ to run against a specific Collection Source. If you delete the <ComputerFilter> from the WHERE clause or do not select a collection source, the query will run against ALL computers.

2. Show computers with more than one monitor; the count and descriptions of those monitors.

SELECT
C.Name AS ‘Name’,
COUNT(C.Name) AS ‘Count’,
GROUP_CONCAT(D.Description, ', ') AS 'Displays'
FROM COMPUTERS C JOIN DISPLAYS D USING (ComputerId)
GROUP BY C.Name
HAVING COUNT(C.Name) > 1
ORDER BY COUNT(C.Name) DESC

3. Show computers that have more than 1 version of an Application installed on them

SELECT
C.Name  AS ‘Computer Name’,
A.Name AS ‘Application Name’,
A.Version,
COUNT(A.Name) AS ‘Count’,
GROUP_CONCAT(A.Name,,) AS ‘App Names’
FROM Computers C
JOIN Applications A USING (ComputerId)
WHERE A.Name LIKE ‘PDQ%GROUP BY C.Name
HAVING COUNT(A.Name) > 1
ORDER BY COUNT(A.Name) DESC

Note: You can change the application name in the WHERE clause from ‘PDQ%’ to whatever you desire. The ‘%’ sign in the WHERE clause is used as a wildcard. For this example, the results will include ALL applications whose name begins with ‘PDQ’. The wildcard, ‘%’, will include all results with anything listed in the application name after ‘PDQ’.

4. Last Successful Heartbeat for Computers that are Online and Offline

SELECT Computers.Name AS 'Computer Name',
Computers.LastIsOnlineTime,
ComputerScans.SuccessfulScanDate
FROM Computers
JOIN ComputerScans USING (ComputerId)
ORDER BY ComputerScans.SuccessfulScanDate DESC
LIMIT 10

Note: You can set the limit for results to any number.

5. Applications on 'Computer A' that are NOT on 'Computer B' and 'Computer C'(Example...New Employee A gets hired and SysAdmin needs to know what programs to deploy onto new computer. Runs report from Employee B and C's computer to find out, etc.)

SELECT 
C.Name AS ‘Computer’,
A.Name as 'Application',
A.Version AS 'Version'
FROM Computers C
JOIN Applications A USING (ComputerId)
WHERE C.Name LIKE 'Jerry%'
AND A.Name NOT IN (SELECT A.Name from Applications A
    WHERE A.ComputerId IN (SELECT ComputerId from Computers WHERE Name LIKE 'GUINNESS%'))
AND A.Name NOT IN (SELECT A.Name from Applications A
    WHERE A.ComputerId IN (SELECT ComputerId from Computers WHERE Name LIKE 'TinyRick%'))

*Great example of how PDQ Deploy and PDQ Inventory work better together!

Ready to get started with PDQ Deploy & Inventory?

Take our 14-day Free Trial.
This round is on us!

Don't miss the next post!

(CVE-2020-1472) 'ZeroLogon' Vulnerability

The Zerologon Vulnerability Allows Attackers To Completely Take Over Your Domain Controller Without Credentials.

PDQ.com
© 2020 PDQ.com Corporation

Products

  • PDQ Deploy
  • PDQ Inventory
  • PDQ Link
  • Enterprise SL
  • Pricing
  • Downloads
  • Licensing
  • Buy