# DB2: Prozent berechnen/ausrechnen



## CurlyConny (14. Oktober 2008)

hallo!

und noch ein problemchen ;-)

habe eine tabelle mit folgendem code:

        SELECT
      '0' NODE_PK,
      1 NODE_LEVEL,
      'TOTAL' NODE_NM,
      CAST(SUM(s.sales) AS CHAR(20)) NODE_SALES,
      100 NODE_PERCENT,
      '0' sort
FROM SYSIBM.SYSDUMMY1, sales s   
    UNION ALL
    SELECT DISTINCT
      CONCAT('0_',s.region) NODE_PK,
      2 NODE_LEVEL,
      s.region NODE_NM,
      CAST(SUM(s.sales) AS CHAR(20)) NODE_SALES,
      0 NODE_PERCENT,
      CONCAT(CONCAT('0',s.region),CAST(SUM(s.sales) AS CHAR(20))) sort
    FROM
      sales s, employee e
GROUP BY s.region, e.lastname, e.firstnme  
UNION ALL
    SELECT DISTINCT
      CONCAT('0_1_',s.sales_person) NODE_PK,
      3 NODE_LEVEL,
      CONCAT(CONCAT(e.lastname,' '),e.firstnme)  NODE_NM,
      CAST(SUM(s.sales) AS CHAR(20)) NODE_SALES,
      0 NODE_PERCENT,
      CONCAT(CONCAT(CONCAT('0', s.region),s.sales_person),CAST(SUM(s.sales) AS CHAR(20))) sort
      FROM
      sales s, employee e
WHERE e.lastname=s.sales_person 
GROUP BY s.region, s.sales_person, e.lastname, e.firstnme
ORDER BY sort

Das sieht ungefähr so aus:

TOTAL       155(=Sales)  100 %
 Manitoba  41(=Sales)  0,00  % 
 GOUNOT JASON  15(=Sales)  0,00  %
 LEE WING  23  0,00  %
 LUCCHESSI VINCENZO  3  0,00  %
 Ontario-North  9  0,00  
 GOUNOT JASON  1  0,00  
 LEE WING  8  0,00  
 Ontario-South  52  0,00  
 GOUNOT JASON  10  0,00  
 LEE WING  34  0,00  
 LUCCHESSI VINCENZO  8  0,00  
 Quebec  53  0,00  
 GOUNOT JASON  24  0,00  
 LEE WING  26  0,00  
 LUCCHESSI VINCENZO  3  

Wie kann ich nun für alle Sales in Prozent berechnen, z.B. Manitoba hat 41 Sales => 41/155*100
Aber wie füge ich das in meinen Code ein?

Danke und Grüße
Conny


----------

