JLI Spieleprogrammierung Foren-Übersicht JLI Spieleprogrammierung

 
 FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen 
 medals.php?sid=c8e3a22915d56565d89c756d218cf508Medaillen   RegistrierenRegistrieren   ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin 

T-SQL Frage

 
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> Entwicklung
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
AFE-GmdG
JLI MVP
JLI MVP


Alter: 45
Anmeldedatum: 19.07.2002
Beiträge: 1374
Wohnort: Irgendwo im Universum...
Medaillen: Keine

BeitragVerfasst am: 31.01.2007, 16:37    Titel: T-SQL Frage Antworten mit Zitat

Tja - da bin ich mal wieder mit einer schwierigen Aufgabe, die ich schnellstmöglich für meine Arbeit lösen muss.
Ich brauche mit Hilfe einer SQL-Abfrage Differenzwerte zu einer Vorgängergröße. Genauer gesagt habe ich in einer Datentabelle absolute Kennzahlen für Objekte zu verschiedenen Zeitständen zu stehen und benötige jetzt in EINER SQL-Abfrage die Kennzahlendifferenzen zum vorherigen Zeitstand.
Datentabelle:
Code:
ID ObjektID Zeitstand Kennzahl1 Kennzahl2 ...
1  1        Jan 2000  12         3,4
2  1        Feb 2000  8          4,1
3  1        Mar 2000  11         3,9
4  1        Apr 2000  13         3,7
5  2        Jan 2000  22        -2,4
6  2        Feb 2000  21        -1,7
7  2        Mar 2000  22        -0,5
8  2        Apr 2000  24         0,2

Ich Suche jetzt 8 Zeilen Ergebnis welche mir für
Code:
Objekt 1:
12, -4, 3, 2 / 3.4, 0.7, -0.2, -0.2
Objekt 2:
22, -1, 1, 2 / -2.4, 0.7, 1.2, 0.7
liefert...
Um dieses Ergebnis zu bekommen, muss ich also die Tabelle mit sich selbst Joinen und im Vergleich einen Sinnvollen Weg finden, die ObjektID und den Zeitstand vernünftig zu vergleichen.
Code:
SELECT
  Aktuell.ID,
  Aktuell.ObjektID,
  Aktuell.Zeitstand,
  'VerlaufKennzahl1' = Aktuell.Kennzahl1 - ISNULL(Vorgänger.Kennzahl1, 0),
  'VerlaufKennzahl2' = Aktuell.Kennzahl2 - ISNULL(Vorgänger.Kennzahl2, 0)
FROM
  Tabelle AS Aktuell
LEFT OUTER JOIN
  Tabelle AS Vorgänger
ON
(
  [...]
)
ORDER BY
  Aktuell.ObjektID,
  Aktuell.Zeitstand


Zumindest Eine Bedingung ist schonmal klar:
Aktuell.Zeitstand > Vorgänger.Zeitstand

Dies gibt mir aber noch zu viele Ergebniszeilen zurück, nämlich z.B. die Differenz zwischen ID 4 und ID 1
_________________
CPP:
float o=0.075,h=1.5,T,r,O,l,I;int _,L=80,s=3200;main(){for(;s%L||
(h-=o,T= -2),s;4 -(r=O*O)<(l=I*I)|++ _==L&&write(1,(--s%L?_<(L)?--_
%6:6:7)+\"World! \\n\",1)&&(O=I=l=_=r=0,T+=o /2))O=I*2*O+h,I=l+T-r;}
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> Entwicklung Alle Zeiten sind GMT
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.


Powered by phpBB © 2001, 2005 phpBB Group
Deutsche Übersetzung von phpBB.de

Impressum