|  |  | |
|  |  | 
| 
 | |||||||
| Programmierung Rat & Tat für Programmierer | 
|  | 
|  | Themen-Optionen | Ansicht | 
|  23.07.2007, 12:00 | #1 | 
| Veteran  Registriert seit: 30.09.2000 
					Beiträge: 267
				 |  SQL Zeilendifferenzen Hallo! Ich habe einige SQL-Tabellen, etwa folgenden Aufbaus: Code: feld1 feld2 1 2 2 2,4 3 3,2 4 4,5 ... Code: feld1 feld2 Diff 1 2 0 2 2,4 0,4 3 3,2 0,8 4 4,5 1,3 ... fragt sich roland | 
|   |   | 
|  23.07.2007, 21:03 | #2 | 
| Inventar  |   select feld1, feld2, (feld2 - feld1) as diff from irgendwo pong 
				____________________________________ \"Ein Gewitter reinigt die Luft\", sagte der Mann, nachdem ein Blitz seine Frau erschlug Nicht klicken! Erstposteralarm/Beschwerde/Kummerkasten Verplattet | 
|   |   | 
|  23.07.2007, 21:54 | #3 | 
| Veteran  Registriert seit: 30.09.2000 
					Beiträge: 267
				 |   Und wie heißt's so schön: Wer lesen kann, ist klar im Vorteil!  | 
|   |   | 
|  23.07.2007, 21:58 | #4 | |
| Inventar  |   Zitat: 
   http://www.adp-gmbh.ch/ora/sql/inser..._subquery.html pong 
				____________________________________ \"Ein Gewitter reinigt die Luft\", sagte der Mann, nachdem ein Blitz seine Frau erschlug Nicht klicken! Erstposteralarm/Beschwerde/Kummerkasten Verplattet | |
|   |   | 
|  23.07.2007, 22:40 | #5 | 
| Gesperrt  |   Beschreibe genauer, von wo die Differenz genau berechnet werden soll. Denn die Differenz zwischen 1 und 2 ist nicht 0. | 
|   |   | 
|  23.07.2007, 23:40 | #6 | 
| Veteran  Registriert seit: 30.09.2000 
					Beiträge: 267
				 |   Nicht böse sein, aber wie soll man das noch genauer beschreiben: Die Differenz zwischen zwei aufeinanderfolgenden Zeilen? Zwischen 2 und 2,4 ist 0,4 Differenz. Zwischen 2,4 und 3,2 ist 0,8 Differenz. ... ... ... Zeile(n) - Zeile(n-1) | 
|   |   | 
|  23.07.2007, 23:46 | #7 | 
| Hero  Registriert seit: 26.07.2001 Ort: Wien 
					Beiträge: 811
				 |   klar geht das, aber kompliziert... aber vielleicht weiß ja jemand einen einfachen weg 
				____________________________________ nobody is perfect | 
|   |   | 
|  24.07.2007, 09:42 | #8 | |
| Gesperrt  |   Zitat: 
 Warum bringst du da 2 Felder ? Was meinst du GENAU mit der Differenz ? Differenz zwischen was ? Man kann erst an einer Problemlösung arbeiten, wenn man eine klare Problembeschreibung hat. Meinst du das so: Zeile1: Feld1+Feld2=Summe1 Zeile2: Feld1+Feld2=Summe2 Zeile3: Feld1+Feld2=Summe3 Differenz Zeile1 = Summe 1 - Summe 2 ? Differenz Zeile2 = Summe 2 - Summe 3 ? | |
|   |   | 
|  24.07.2007, 09:51 | #9 | 
| Veteran  Registriert seit: 30.09.2000 
					Beiträge: 267
				 |   ok, vergiss einmal Feld1. Das hab ich drin, weil es ja eine Reihenfolge der Zeilen geben muss. Ich will ja nicht die Differenz zwischen Zeile1 und Zeile7 berechnen, sondern schön hintereinander Zeile2 minus Zeile1, Zeile3 minus Zeile2, Zeile4 minus Zeile3 usw. eben wie beschrieben Zeile(n) minus Zeile(n-1). Und die Differenz ist das Ergebnis einer Subtraktion (sagt die Wikipedia). Wer MatLab kennt, kennt vielleicht den Befehl "diff". Gernau das auf SQL bezogen. Weil hier offenbar auf genaue Definitionen Wert gelegt wird, hier noch eine Begriffsbestimmung, wie MatLab das sieht: "Y = diff(X) calculates differences between adjacent elements of X. If X is a vector, then diff(X) returns a vector, one element shorter than X, of differences between adjacent elements: [X(2)-X(1) X(3)-X(2) ... X(n)-X(n-1)]" es grüßt Roland | 
|   |   | 
|  24.07.2007, 10:30 | #10 | 
| Hero  Registriert seit: 26.07.2001 Ort: Wien 
					Beiträge: 811
				 |   ich denke nicht, dass sql zeilenbasiert - wie von dir gewünscht - arbeiten kann. du kannst dir den effekt aber selber zusammenbauen: lese 1.zeile, merk dir den wert des gewünschten feldes, lese nächste zeile und wende dein diff auf das vorher gemerkte feld und das gewünschte feld dieser zeile an und speichere das ergebnis als neues feld... wenn man geschickt ist, bekommt man das hin (in einem statement)  
				____________________________________ nobody is perfect | 
|   |   | 
|  | 
| Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | |
| 
 | 
 |