2017-06-06 4 views
1

Ich versuche, ein Balkendiagramm zu erstellen, das die Werte mehrerer Spalten aus einer Tabelle zeigt. Es ist ein sehr einfaches Balkendiagramm, dass ich nicht weiß, wie man in APEX 5/SQL designt.Oracle Apex 5: Verwenden mehrerer Spalten in einem Balkendiagramm Axix

Chart describing what I mean

Grundsätzlich möchte ich die X-Achse des Balkendiagramms bar für jede Spalte von meinem Tisch haben (das ich wählen?), Und die Bar wird die Summe dieser Spalte darstellen, durch eine Spalte gruppiert namens appname.

Ich weiß, ich werde ein brauchen:

SELECT SUM (Spalten) VON myTable GROUP BY appName

Aber ich kann nicht scheinen, das Balkendiagramm zu erhalten jede Spalte zu repräsentieren ich wählen.

Hoffentlich habe ich das gut erklärt, meine Kollegen, die nicht wissen, wie man hilft, sagen, dass ich die Dinge nicht gut erkläre.

Antwort

1

Dies kann getan werden, aber soweit ich weiß nur für eine feste Anzahl von Datensätzen. Dies ist, was ich in der Lage war, mit einigen Dummy-Daten zu tun: enter image description here

Was Sie tun müssen, ist zuerst ein Diagramm für einen der Sätze wie etwas schaffen:

select code, sum(value) as total 
    from data 
where app_id = 1 
group by code 
order by code 

, dass diese produziert (mit meinem Beispieldaten): enter image description here

wenn Sie nun auf die Region Definition betrachten, werden Sie sehen, dass die Region eine einzige „Serie“ enthält: enter image description here

(Standardmäßig heißt es "Serie 1" - aber ich habe meinen bereits in "App 1" umbenannt).

Jetzt können Sie mit der rechten Maustaste auf Serie 1 klicken und "Duplizieren" auswählen und eine neue, doppelte Serie wird erstellt. Sie können dann den Namen und das SQL dieser neuen Serie bearbeiten, um auf Anwendung 2 zu verweisen. Wenn Sie das ausführen, sehen Sie das Ergebnis, das ich am Anfang gezeigt habe.

+0

Vielen Dank! Das hat genau das gemacht, was ich wollte! Ich wusste nicht, dass ich die Serie duplizieren konnte. – Rhenderson91

0

Hier ist, was Sie tun müssen. In der Tabelle Quelle SQL definiert so etwas wie diese

SELECT SUM(column1) as col_sum, 
     Column1 as Series, 
     column1 as Column_name 
     FROM myTable GROUP BY appname 
     sort by appname 

union all 

SELECT SUM(column2) as col_sum, 
     Column2 as Series, 
     column3 as Column_name 
     FROM myTable GROUP BY appname 
     sort by appname 

union all 

SELECT SUM(column3) as Col1_sum, 
     Column3 as Series, 
     column3 as Column_name 
     FROM myTable GROUP BY appname 
     sort by appname 

------ und so weiter - für alle Spalten ----- in der Serie Eigenschaften festgelegt Quellen> Typen als Region Quelle.

Wählen Sie in Column Mappin Series als Serienname, Column_name als Label und col_sum als Wert.

In der Tabelle Attribute Darstellung> Stack - auf Nr

Diese funktionieren sollte.

Alternativ können Sie anstelle von union all auch separate SQL-Abfragen für jede Serie definieren und eine Serie pro Spalte verwenden. In diesem Fall benötigen Sie in Ihrer Abfrage nicht Series.

Verwandte Themen