kale_1990 Geschrieben 4. Oktober 2006 Geschrieben 4. Oktober 2006 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! würde mich über schnelle antwort freuen!
Pinhead Geschrieben 4. Oktober 2006 Geschrieben 4. Oktober 2006 Select sum('zusummierende Datenfelder') from Tabelle Where 'Bedingungen'
kale_1990 Geschrieben 4. Oktober 2006 Autor Geschrieben 4. Oktober 2006 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
Pinhead Geschrieben 4. Oktober 2006 Geschrieben 4. Oktober 2006 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
kale_1990 Geschrieben 4. Oktober 2006 Autor Geschrieben 4. Oktober 2006 das muss doch mit dem COMPUTE befehl funktionieren oder??
Pinhead Geschrieben 4. Oktober 2006 Geschrieben 4. Oktober 2006 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 ändertROW Gruppenwechsel für jede selektierte ZeileREPORT Gruppenwechsel am Ende eines Berichts oder einer Abfrage
kale_1990 Geschrieben 4. Oktober 2006 Autor Geschrieben 4. Oktober 2006 soweit bin ich auch scho gewesen....nur es wird mir nichts angezeit! 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
Pinhead Geschrieben 4. Oktober 2006 Geschrieben 4. Oktober 2006 soweit bin ich auch scho gewesen....nur es wird mir nichts angezeit! Es sind aber schon Daten vorhanden, die der Where Bedingung entsprechen ?
kale_1990 Geschrieben 4. Oktober 2006 Autor Geschrieben 4. Oktober 2006 ja es sind daten vorhanden....es werden mir auch daten angezeit....nur die berechnete summe dazu nicht!!
Pinhead Geschrieben 4. Oktober 2006 Geschrieben 4. Oktober 2006 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'
kale_1990 Geschrieben 4. Oktober 2006 Autor Geschrieben 4. Oktober 2006 ich bekomme die ganz normale anzeige die ich ohne das break und compute auch bekommen würde!!
kale_1990 Geschrieben 4. Oktober 2006 Autor Geschrieben 4. Oktober 2006 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!!
Musor Geschrieben 4. Oktober 2006 Geschrieben 4. Oktober 2006 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.
kale_1990 Geschrieben 5. Oktober 2006 Autor Geschrieben 5. Oktober 2006 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!
Pinhead Geschrieben 5. Oktober 2006 Geschrieben 5. Oktober 2006 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
kale_1990 Geschrieben 5. Oktober 2006 Autor Geschrieben 5. Oktober 2006 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
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden