Percentagefuncties voor DB2

IBM's DB2-databasebeheersoftware gebruikt de Structured Query Language, of SQL, om databasestructuren te creëren en te beheren en de informatie daarin bij te werken. SQL is een industriestandaard programmeertaal die wiskundige functies bevat voor het uitvoeren van gedetailleerde analyses op databasegegevens. Met SQL kunt u eenvoudig percentages berekenen voor elk record van een databasetabel, voor groepen records en voor tabeltotalen.

SELECT-instructie

De SQL van DB2 gebruikt de SELECT-instructie om rapporten te maken op basis van database-informatie. De basissyntaxis van de instructie is het woord SELECT gevolgd door een lijst met velden, tabelnamen en optionele clausules zoals WHERE en ORDER BY voor het testen en sorteren van gegevens. De velden kunnen rechtstreeks uit een tabel komen of het kunnen berekende waarden zijn op basis van tabelvelden. U kunt bijvoorbeeld de inhoud van een besteltabel weergeven, inclusief een productcode, beschrijving, prijs en hoeveelheid, en u kunt de prijs vermenigvuldigen met de hoeveelheid om het totaal te krijgen.

Eenvoudige verdeling

De eenvoudigste vorm van percentage in een DB2 SELECT-instructie vermenigvuldigt één veld met 100 en deelt het vervolgens door een totaal om het percentage te verkrijgen. De volgende SQL bevat bijvoorbeeld een klantnaam, bestelling, artikeltotaal en percentage van het totaal voor de bestelling:

SELECT naam, order_nummer, item_total, item_total * 100 / order_total AS percentage FROM order_table;

Als u percentages berekent op basis van gehele velden, zorgt het vermenigvuldigen van het eerste item met 100 ervoor dat een volgende deling een zinvol percentage oplevert. Als u in plaats daarvan een geheel getal deelt door een groter geheel getal en het resultaat vermenigvuldigt met 100, retourneert SQL een nul.

Decimale functie

De versie van SQL van DB2 heeft een wiskundige functie genaamd DECIMAL. Door het te gebruiken met een percentagefunctie, geeft DECIMAL u controle over het aantal decimalen van het resultaat. De volgende SQL SELECT-instructie illustreert het gebruik van DECIMAL in percentageberekeningen:

SELECT naam, order_nummer, DECIMAL(item_total, item_total * 100.0 / order_total,5,2) AS percentage, order_total FROM order_table;

De DECIMAAL-functie heeft drie argumenten: het getal of de berekende waarde, het aantal cijfers voor precisie en het aantal cijfers achter de komma. Hier is de precisie vijf en het aantal cijfers achter de komma is twee. Deze SELECT-instructie levert een percentage op als een getal met vijf cijfers in totaal en twee decimalen, zoals 56,05 of 199,10.

Door de gebruiker gedefinieerde functies

Voor veelgebruikte, complexe berekeningen die resulteren in een percentage, kunt u overwegen een UDF of door de gebruiker gedefinieerde functie te gebruiken. DB2 slaat een UDF op als een object, zodat het samen met velden, tabellen en andere objecten onderdeel wordt van de database. De instructie CREATE FUNCTION, gevolgd door andere SQL-instructies, schrijft een functie-item in de database. In plaats van de complexe berekeningen in uw SELECT-instructies te herhalen, kunt u verwijzen naar de functie, waardoor uw programmering eenvoudiger en betrouwbaarder wordt.