Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Empfohlene Antworten

Veröffentlicht

hallo

ich hab eine abfrage und möchte nun mit dem "compute sum" die summe der daten in einer spalte ermitteln....nur leider bekomm ich es nicht hin!:rolleyes:

würde mich über schnelle antwort freuen!

ja so hab ich es schon versucht kommt aber "keine gruppenfunktion für einzelgruppen"

und die summe soll unter allen daten stehen...also es soll nicht nur die summe ausgegeben werden

und die summe soll unter allen daten stehen...also es soll nicht nur die summe ausgegeben werden

Das wirst du in SQL Plus so nicht hinbekommen das die Summe unter den Daten steht. Du kannst allerdungs Spaltenweise Summen Bilden


Select job,sum(sal) from emp group by job;

Mögliche Ausgabe

Clerk 2500

Salesman 5600

Manager 6000

das muss doch mit dem COMPUTE befehl funktionieren oder??

das muss doch mit dem COMPUTE befehl funktionieren oder??

So hab mal ganz tief in meinen Unterlagen gestöbert und folgendes Beispiel gefunden


COMPUTE SUM OF sal ON deptno REPORT

BREAK ON deptno SKIP 1 ON job ON REPORT


SELECT deptno,job,ename, sal

FROM EMP

WHERE deptno IN (10,20)

ORDER BY deptno,job

Ausgabe

Deptno Job ename sal

10 Clerk Miller 1300

Manager Clark 2450

President King 5000

sum 8750

Bemerkung

Das Compute Kommando bietet Ihnen die Möglichkeit, Berechnungen für die mit dem Break Kommando definierten Gruppen durchzuführen

BREAK Kommando

Ein Gruppenwechsel tritt auf sobald der Wert innerhalb einer Spalte wechselt. Sinnvoll ist daher eine entsprechende Sortierung der Spalten auf die der Break Befehl Bezug nimmt.

Darüber hinaus stell SQL*Plus für den Break Befehl vordefinierte Grupenwechsel für jede selektierte Zeile und Berichtswechsel zur Verfügung

Der BREAK BEfehl wird genutzt um bei Gruppenwechseln Leerzeilen zu erzeugen oder Berechnungen mit Compute anzustoßen

Sie können folgende Fälle Definieren

  • Ausdruck Gruppenwechsel sobal sich der Wert des Ausdrucks (z.B. Spalteninhalt) sich ändert
  • ROW Gruppenwechsel für jede selektierte Zeile
  • REPORT Gruppenwechsel am Ende eines Berichts oder einer Abfrage

soweit bin ich auch scho gewesen....nur es wird mir nichts angezeit! :rolleyes:

ich hab folgende abfrage und will die summe von dmbmge

SELECT to_date(dmbdbu,'YYYYMMDD') DAT,dmbnr NR, dmbtl TL, LPAD(dmbmge||' '||dmb

sme,10) MG, dmbrm1 RM, dtlbn1||' '||dtlbn2 BEN, dtlpgr||'/'||dtlpfa GRP, dmblo L

O, dmbsva SVA, dmbvnr VNR, dmbsbm BA, dtlvkb VKB

FROM idmb,idtl

WHERE dmbtl = dtlnr

AND dmbdbu BETWEEN '&DMBDBU_VON' AND '&DMBDBU_BIS'

REM COND and dmbdbu >= &DMBDBU_VON

REM COND and dmbdbu <= &DMBDBU_BIS

REM COND and dtlvkb = '&DTLVKB'

REM COND and dmbsbm in (&DMBSBM)

REM COND and dmbtl = '&DMBTL'

REM COND and dtlpgr = UPPER('&DTLPGR')

REM COND and dtlpfa = UPPER('&DTLPFA')

ORDER BY dmbdbu,dmbnr

ja es sind daten vorhanden....es werden mir auch daten angezeit....nur die berechnete summe dazu nicht!!

Ich versuche mal die Gruppenbildung zu erraten

Welches Ergebnis liefert folgender Code ?


COMPUTE SUM OF dmbmge ON dmbnr REPORT

BREAK ON dmbnr SKIP 1 ON dmbdbu  ON REPORT


SELECT to_date(dmbdbu,'YYYYMMDD') DAT,

dmbnr NR,

dmbtl TL,

LPAD(dmbmge||' '||dmbsme,10) MG,

dmbrm1 RM, dtlbn1||' '||dtlbn2 BEN,

dtlpgr||'/'||dtlpfa GRP,

dmblo LO,

dmbsva SVA,

dmbvnr VNR,

dmbsbm BA,

dtlvkb VKB

FROM idmb,idtl

WHERE dmbtl = dtlnr

AND dmbdbu BETWEEN '&DMBDBU_VON' AND '&DMBDBU_BIS'

ich bekomme die ganz normale anzeige die ich ohne das break und compute auch bekommen würde!!

hat denn keiner mehr ne idee?? warum das so ist oder wie ich es anders machn könnt evtl. mit einem anderen befehl??!!?! ich bin grad am verzweifeln!!

Also deine Abfrage verwirt mich einwenig.

Fangen wir von vorne an und dazu brauch ich:

1. Tabelle

zb

Name, vorname, Gehalt, Beruf

Müller Mark 1000 Putzer

2. Endform

zB

Beruf Summe(Gehalt)

Putzer 1000

Sonst hat Pinhead schon alles relevante geschrieben.

also es funktioniert(mehr oder weniger) so weit...nur jetz ist noch folgendes problem vorhanden: ich hab die spalte mit einer spalte zusammengefügt( "LPAD(menge||' '||einheit,10) MG") und der inhalt ist jetz z.b. "10 St"....jetz kann er natülich nicht alles summieren da das "St" noch dran is....wie mach ich das er es trotzdem macht....der befehl sieht jetzt so aus

compute sum of MG on DAT report

break on DAT skip 1 on TL report

bin für jede antwort dankbar!

Also ich würde dann erst nur die Summe der Zahlen bilden und nach der Berechnung die Einheit anhängen

In etwa so


((compute sum of Menge)||' '||einheit) on DAT report

break on DAT skip 1 on TL report

funktioniert das da ja das anhängen der einheit eigentlich in der abfrage geschiet!?!?

in dem statement sieht es ja so aus LPAD(dmbmge||' '||dmbsme,10) MG wie muss es danach dann aussehen

Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.