WARNING: The TrackAbout MetaWiki has been deprecated and is no longer being updated.
Please visit our new TrackAbout Knowledge Base at https://supportkb.trackabout.com for the most-up-to-date documentation on TrackAbout and TrackAbout Mobile.
Difference between revisions of "OpenData Base Queries"
Jump to navigation
Jump to search
Jgullickson (talk | contribs) |
Jgullickson (talk | contribs) m (→Inventory) |
||
| Line 106: | Line 106: | ||
LEFT JOIN opendata.holders h on a.holderid = h.holderid | LEFT JOIN opendata.holders h on a.holderid = h.holderid | ||
| + | </syntaxhighlight> | ||
| + | |||
| + | |||
| + | --How long have my assets been out at customers? -- | ||
| + | |||
| + | <syntaxhighlight lang="tsql"> | ||
| + | select DISTINCT --top 100 | ||
| + | a.tracknum 'Barcode', | ||
| + | a.crossref 'Serial Number', | ||
| + | 'Location Type' = IIF(a.holderid > 0, 'At Customer', 'In-House'), | ||
| + | 'Location Name' = IIF(a.holderid > 0, (a.holderstr + ' - ' + h.holdername), a.locationname), | ||
| + | a.assetcatname, | ||
| + | a.assetgroupname, | ||
| + | a.assettypename, | ||
| + | a.productcodename, | ||
| + | (SELECT TOP 1 Invoice FROM opendata.Records r2 JOIN opendata.RecAssets ra2 ON r2.RecordId = ra2.RecordId WHERE actionid = 6 AND ra2.AssetId = ra.AssetId ORDER BY r2.RecDate DESC) 'Invoice', | ||
| + | (SELECT TOP 1 r2.recdate FROM opendata.Records r2 JOIN opendata.RecAssets ra2 ON r2.RecordId = ra2.RecordId WHERE actionid = 6 AND ra2.AssetId = ra.AssetId ORDER BY r2.RecDate DESC) 'Invoice Date', | ||
| + | datediff(d, (SELECT TOP 1 r2.recdate FROM Records r2 JOIN opendata.RecAssets ra2 ON r2.RecordId = ra2.RecordId WHERE actionid = 6 AND ra2.AssetId = ra.AssetId ORDER BY r2.RecDate DESC), getdate()) 'Days Held', | ||
| + | a.usestate | ||
| + | from opendata.assets a | ||
| + | LEFT JOIN opendata.holders h on a.holderid = h.holderid | ||
| + | JOIN opendata.recassets ra on ra.assetid = a.assetid | ||
| + | JOIN opendata.records r on r.recordid = ra.recordid and r.actionid = 6 and ra.isdeliver = 1 | ||
| + | |||
| + | WHERE a.holderid > 0 | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Revision as of 14:57, 21 November 2022
The queries listed here are designed to help you get basic information out of OpenData and to help you understand the data structure better. You can use these as base queries and modify them to suit your specific needs.
Asset Based Queries
Lost Assets
Purpose
- To find a list of all assets that are currently marked as Lost.
Other Uses
- Change the WHERE clause to 'Active' to find all currently active assets.
select
'Category' = assetcatname,
'Group' = assetgroupname,
'Type' = assettypename,
'ProductCode' = productcodename,
'Barcode' = tracknum,
'SerialNumber' = crossref,
'Ownership' = ownershipname
from opendata.assets
where status = 'Lost'
order by assetcatname, assetgroupname, assettypename, productcodename, tracknum
Transaction / Records Based Queries
select --List of assets that have been scanned on a delivery that has no associating accounting data (example: order / invoice from ERP)
--r.RecordId,
--ra.AssetId,
r.Invoice OrderNumber,
ra.TrackNum Barcode,
ra.CrossRef SerialNumber,
iif(ra.IsDeliver = 1, 'Delivered', 'Returned') [Delivered/Returned],
ra.AssetTypeName,
ra.AssetCatName,
ra.AssetGroupName,
ra.ProductCodeName,
ra.ProductCodeDescription
from opendata.Records r
join opendata.RecordDetails rd
on rd.RecordId = r.RecordId
and rd.IsControlStrKeyedIn = 1
join opendata.RecAssets ra
on ra.RecordId = r.RecordId
where r.IsDeleted = 0
and r.Invoice <> ''
and r.ActionId = 6 --Delivery
and not exists (
select *
from opendata.Orders o
where o.OrderNumber = r.Invoice
)
order by r.RecordId
Customer Based Queries
select -- Report to pull basic Customer Information
h.[HolderId] 'TA Customer ID',
h.[ParentId] 'TA Parent ID',
h.holderstr 'Customer Number',
h.holdername 'Customer Name',
p.[holderstr] 'Parent Number',
p.[holdername] 'Parent Name',
h.[HolderStr],
h.[HolderName],
h.[TimeZoneId],
h.[IsActive],
a.Address1,
a.Address2,
a.Address3,
a.City,
a.Country
from opendata.Holders h
left join opendata.Holders p
on h.ParentId = p.HolderId
and h.ParentId > 0
left join opendata.Addresses a
on h.billtoaddress = a.AddressId -- select top 100 * from opendata.addresses
Asset Based Queries
Inventory
What kind of assets do I have and where are they?
select --top 100 *
a.tracknum 'Barcode',
a.crossref 'Serial Number',
'Location Type' =
case when a.holderid > 0 then 'At Customer'
when a.holderid <= 0 then 'In-House'
else '' end,
'Location Name' =
case when a.holderid > 0 then (a.holderstr + ' - ' + h.holdername)
when a.holderid <= 0 then a.locationname
else '' end,
a.assetcatname,
a.assetgroupname,
a.assettypename,
a.productcodename,
a.usestate
from opendata.assets a
LEFT JOIN opendata.holders h on a.holderid = h.holderid
--How long have my assets been out at customers? --
select DISTINCT --top 100
a.tracknum 'Barcode',
a.crossref 'Serial Number',
'Location Type' = IIF(a.holderid > 0, 'At Customer', 'In-House'),
'Location Name' = IIF(a.holderid > 0, (a.holderstr + ' - ' + h.holdername), a.locationname),
a.assetcatname,
a.assetgroupname,
a.assettypename,
a.productcodename,
(SELECT TOP 1 Invoice FROM opendata.Records r2 JOIN opendata.RecAssets ra2 ON r2.RecordId = ra2.RecordId WHERE actionid = 6 AND ra2.AssetId = ra.AssetId ORDER BY r2.RecDate DESC) 'Invoice',
(SELECT TOP 1 r2.recdate FROM opendata.Records r2 JOIN opendata.RecAssets ra2 ON r2.RecordId = ra2.RecordId WHERE actionid = 6 AND ra2.AssetId = ra.AssetId ORDER BY r2.RecDate DESC) 'Invoice Date',
datediff(d, (SELECT TOP 1 r2.recdate FROM Records r2 JOIN opendata.RecAssets ra2 ON r2.RecordId = ra2.RecordId WHERE actionid = 6 AND ra2.AssetId = ra.AssetId ORDER BY r2.RecDate DESC), getdate()) 'Days Held',
a.usestate
from opendata.assets a
LEFT JOIN opendata.holders h on a.holderid = h.holderid
JOIN opendata.recassets ra on ra.assetid = a.assetid
JOIN opendata.records r on r.recordid = ra.recordid and r.actionid = 6 and ra.isdeliver = 1
WHERE a.holderid > 0