Entwickler-Ecke
Datenbanken - SQL Abfrage - Werte aus 2 zeilen verrechnen/vergleichen
g1o2k4 - So 24.08.08 22:23
Titel: SQL Abfrage - Werte aus 2 zeilen verrechnen/vergleichen
hi
ich bin ziemlich neu bei sql und habe folgendes problem. ich möchte werte von je 2 zeilen vergleichen und verrechnen.
ich möchte die werte aus der ersten spalte (also zeile1 item1 / zeile2 item1) nehmen und durcheinander teilen, das ergebnis soll gespeichert werden...dann soll die nächste spalte genommen werden (zeile1 item2 / zeile2 item2), beide werte werden wieder durcheinander geteilt und das ergebnis zum letzten gespeicherten teilungsergebnis addiert.
so dass ich am ende als ergebnis die summe der teilungsergebnisse der einzelnen spalten der beiden zeilen bekomme.
ich weiß auch gar nicht wie ich ansetzen soll.
ene - Mo 25.08.08 08:42
Moin,
Ob man das mit einer View hinbekommt, weiß ich grad nicht, ansonsten gehts mit einer SP. In der Regel kann man dafür eine Unterabfrage verwenden, aber das hängt auch von deinen Daten ab. Als Beispiel:
Edit: Weils vermutlich die sicherere Variante ist:
View:
SQL-Anweisung
1: 2:
| SELECT id, wert, wert / dbo.GetLast(id) AS xxx FROM dbo.tab |
Function GetLast:
SQL-Anweisung
1: 2: 3: 4: 5: 6: 7: 8:
| CREATE FUNCTION dbo.GetLast (@ID As Int) RETURNS Int AS BEGIN DECLARE @MaxID As Int SET @MaxID = (SELECT Max(ID) FROM dbo.tab WHERE ID < @ID)
RETURN (SELECT Wert FROM dbo.tab WHERE id = @MaxID) END |
g1o2k4 - Mo 25.08.08 12:12
ich glaub das ist für die performance nicht so gut.
ist es nicht möglich die komplette frage in ein statement zu packen ?
ene - Mo 25.08.08 12:28
Glauben kann man Sonntags von 9-12 ;) Im SubSelect ein SubSelect funktioniert IMHO nicht. Wenn deine Daten aber eine gute Integrität bieten, kann man das auch mit einem SubSelect erledigen.
SQL-Anweisung
1: 2: 3:
| SELECT id, wert, wert / (SELECT TOP 1 PERCENT wert FROM dbo.tbl As Q WHERE Q.id < dbo.tbl.id) As xxx FROM dbo.tbl ORDER BY id |
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!