Naar de hoofdinhoud

DataCollector SELECT-tips en -trucs

Geschreven door Jetmir Abdija
Deze week bijgewerkt

Dit artikel is vertaald met behulp van AI en kan kleine onnauwkeurigheden bevatten. Raadpleeg de Engelse versie voor volledige nauwkeurigheid.

Datumconversies

Bij het importeren van datumvelden met de DataCollector kun je problemen tegenkomen met het datumformaat. Er zijn veel manieren om een datum weer te geven, bijvoorbeeld:

  • 14-03-2023

  • 14-3-2023

  • 14 maart 2023

  • 2023/03/14

  • 03/14/2023

Stel dat je gegevens uit een Excel-sheet wilt importeren. Het formaat van datums, zoals aangeboden door de DataCollector aan BlueDolphin, hangt af van veel factoren: het daadwerkelijke formaat van de ruwe data in Excel, de manier waarop datums worden weergegeven in Excel (celopmaak), je Microsoft Office taal- en regio-instellingen en de taal- en regio-instellingen van het besturingssysteem.

Meestal ziet je SELECT-statement in de DataCollector er als volgt uit:

SELECT * FROM [tablename$]

Hier is “tablename” de naam van het werkblad in je Excel-bestand. Door simpelweg ‘alle’ kolommen te selecteren met '*', moet de DataCollector het formaat van datumvelden ‘raden’. Als datums niet in het juiste formaat in BlueDolphin worden geïmporteerd, blijven de vragenvelddatums leeg. Het kan lastig zijn om op deze manier datums te importeren. Gelukkig is er een eenvoudige oplossing.

Je kunt beter alle velden (= kolomnamen van je Excel) expliciet benoemen in het SELECT-statement en de Format()-functie gebruiken om het juiste datumformaat voor datumvelden af te dwingen.

Bijvoorbeeld:

ada97797-aa91-4a16-b7e1-b8e3f5967cd6.png

Het voorbeeld van de select-query is:

SELECT  [Title],        [Application ID],        [Application Owner],        [Application Name],        [Application Vendor],        [Application Type],        [Hosting Type],        [More Info],        [Application Description],        Format([Contract Start Date], "dd-MM-yyyy") AS [Contract Start Date],        Format([Contract End Date], "dd-MM-yyyy") AS [Contract End Date],        Format([End-of-Life Date], "dd-MM-yyyy") AS [End-of-Life Date],        Format([End-of-Service Date], "dd-MM-yyyy") AS [End-of-Service Date],        [OPEX],        [CAPEX],        [Relative Cost Indication],        [Connectivity],        [Life Cycle Status]FROM    [Applications$]

Alle datums voor Contract Start, Contract End, End-of-Life en End-of-Service worden nu expliciet omgezet naar “dd-MM-jjjj” (bijvoorbeeld: 14-03-2023). BlueDolphin accepteert dit datumformaat en de gegevensvelden worden correct gevuld.

Data filteren vóór import

Hoewel we aanraden om de data in je bronsysteem zo schoon en correct mogelijk te houden, kan het handig zijn om filters te definiëren om selectief data uit te sluiten van de import. Dit kun je doen door logische voorwaarden toe te voegen aan de WHERE-clausule van het SELECT-statement. Enkele voorbeelden:

Alleen actieve applicaties selecteren

SELECT  [Title],        [Application ID],        ...        [Life Cycle Status]FROM    [Applications$]WHERE   [Life Cycle Status] = 'Active'

Records zonder applicatienaam weglaten

SELECT  [Title],        [Application ID],        [Application Name],        ...FROM    [Applications$]WHERE   [Application Name] IS NOT NULL

Alleen applicaties selecteren boven een bepaalde kostenlimiet

SELECT  [Title],        [Application ID],        ...        [OPEX],        ...FROM    [Applications$]WHERE   [OPEX] >= 10000

Alles combineren met logische expressies

SELECT  [Title],        [Application ID],        [Application Name],        ...        [OPEX],        ...        [Life Cycle Status]FROM    [Applications$]WHERE   [OPEX] >= 10000 AND        [Life Cycle Status] = 'Active' AND        [Application Name] IS NOT NULL

Data bewerken vóór import

Op een vergelijkbare manier kun je data bewerken voordat je deze importeert. Enkele voorbeelden:

Jaarlijkse kosten berekenen op basis van maandelijkse licentiekosten

SELECT  [Title],        [Application ID],        ...        [Monthly License Costs] * 12 AS [OPEX],        ...FROM    [Applications$]WHERE   ...

De brondata (bijvoorbeeld een Excel-bestand) heeft een kolom genaamd ‘Monthly License Costs’. Deze wordt vermenigvuldigd met 12 om de jaarlijkse operationele kosten te berekenen. De uitkomst wordt opgeslagen in een kolom genaamd ‘OPEX’.

Tekstwaarden samenvoegen

SELECT  [Title],        [Application ID],        ...        CONCAT([FirstName], ' ', [LastName]) AS [Application Owner]),        ...FROM    [Applications$]WHERE   ...

Met de CONCAT()-functie worden voor- en achternaam aan elkaar geplakt en opgeslagen in een kolom met de naam [Application Owner]. Let op de spatie tussen de twee waarden.

Meer lezen

Bekijk de documentatie van W3Schools voor meer informatie. Enkele tips:

Was dit een antwoord op uw vraag?