WinFuture-Forum.de: SQL Abfrage - Berechnung aus anderer Zeile - WinFuture-Forum.de

Zum Inhalt wechseln

Nachrichten zum Thema: Entwicklung
Seite 1 von 1

SQL Abfrage - Berechnung aus anderer Zeile


#1 Mitglied ist offline   olm 

  • Gruppe: aktive Mitglieder
  • Beiträge: 136
  • Beigetreten: 25. Januar 05
  • Reputation: 0

geschrieben 29. November 2011 - 10:39

Hi ich habe ein kleines SQL Problem

Ich habe folgende Tabelle (Achtung Spaltentitel sind verutscht)

PrüfmittelNr IndexMessdaten KalibriertAm1 KalibriertBis1
4493 5697 28-Nov-06 28-Nov-07
4493 7543 02-Jan-08 02-Jan-09
4493 8974 28-Okt-08 28-Okt-09
4493 10905 05-Nov-09 05-Nov-10
4493 12735 03-Nov-10 03-Nov-11
4494 4129 16-Nov-05 16-Nov-06
4494 5699 28-Nov-06 28-Nov-07
4494 7542 02-Jan-08 02-Jan-09
4494 8967 28-Okt-08 28-Okt-09
4494 11359 11-Feb-10 11-Feb-11
4494 12734 03-Nov-10 03-Nov-11
4494 14879 20-Okt-11 20-Okt-12
4495 4130 16-Nov-05 16-Nov-06
4495 5684 28-Nov-06 28-Nov-07
4495 7541 02-Jan-08 02-Jan-09
4495 8982 29-Okt-08 29-Okt-09
4495 10904 05-Nov-09 05-Nov-10
4495 12737 03-Nov-10 03-Nov-11


Jetzt möchte ich das Datum KalibriertAm vom letzten KalibiertBis Datum abziehen und zwar nur für das Zugehörige Messmittel. Wenn kein Datum mehr vorhanden ist, soll 0 angezeigt werden.

Es soll folgende herauskommen (Habe ich in Excel erstellt)

PrüfmittelNr IndexMessdaten KalibriertAm1 KalibriertBis1 Abweichung
4493 5697 28-Nov-06 28-Nov-07 0
4493 7543 02-Jan-08 02-Jan-09 35
4493 8974 28-Okt-08 28-Okt-09 -66
4493 10905 05-Nov-09 05-Nov-10 8
4493 12735 03-Nov-10 03-Nov-11 -2
4494 4129 16-Nov-05 16-Nov-06 0
4494 5699 28-Nov-06 28-Nov-07 12
4494 7542 02-Jan-08 02-Jan-09 35
4494 8967 28-Okt-08 28-Okt-09 -66
4494 11359 11-Feb-10 11-Feb-11 106
4494 12734 03-Nov-10 03-Nov-11 -100
4494 14879 20-Okt-11 20-Okt-12 -14
4495 4130 16-Nov-05 16-Nov-06 0
4495 5684 28-Nov-06 28-Nov-07 12
4495 7541 02-Jan-08 02-Jan-09 35
4495 8982 29-Okt-08 29-Okt-09 -65
4495 10904 05-Nov-09 05-Nov-10 7
4495 12737 03-Nov-10 03-Nov-11 -2

Jetzt weiß ich aber leider nicht wie ich das in SQL anstellen soll.

Achso eine Einschränkung gibt es noch. Das ganze muß mit Access SQL funktionieren.

Danke für die Antworten.

Ich habe die Daten nochmal als Screenshot hochgeladen.

Angehängte Miniaturbilder

  • Angehängtes Bild: Daten.JPG
  • Angehängtes Bild: Ergebnis.JPG

Dieser Beitrag wurde von olm bearbeitet: 29. November 2011 - 10:42

0

Anzeige



#2 Mitglied ist offline   olm 

  • Gruppe: aktive Mitglieder
  • Beiträge: 136
  • Beigetreten: 25. Januar 05
  • Reputation: 0

geschrieben 29. November 2011 - 11:06

Hier vielleicht nocheimal etwas verständlicher

Ich brauche eine SQL Abfrage die auf die vorhergehende Zeile zugreift.

Der Excelbefehl heißt:

=WENN(A19=A18;C19-D18;0)


(Siehe Screenshot)


Danke für die Antworten.

Angehängte Miniaturbilder

  • Angehängtes Bild: Excelabfrage.JPG

0

#3 Mitglied ist offline   Holger_N 

  • Gruppe: aktive Mitglieder
  • Beiträge: 5.111
  • Beigetreten: 11. September 10
  • Reputation: 458
  • Geschlecht:Männlich

geschrieben 03. Dezember 2011 - 10:44

Du liest die Datenbank aus und machst nicht sofort die Ausgabe, sondern schreibst die Werte in Arrays und dann kannst du über den Index die gewünschten Zeilen ansprechen.

Ich würde aber die Tabelle außerdem eindeutig sortieren. Ich nehme mal an, die Tabelle soll in der Reihenfolge der Eintragungen angezeigt werden, dann würde ich entweder eine weitere Spalte mit dem Zeitstempel des Eintrages machen und danach sortieren oder eine Spalte zum Beispiel ID mit fortlaufender automatischer Nummerierung.
Einfach nur um sicher zu gehen, dass der vorangegangene Datensatz auch der ist, den man wollte. Man kann ja eine Abfrage beliebig sortieren und ohne Sortierkriterium ist das nicht eindeutig.

Allerdings verstehe ich deine Tabelle nicht ganz, also warum über zwei Datensätze berechnet werden muß. Wie gehören denn die Datensätze zusammen? Möglicherweise lässt sich die Tabelle als solches ja noch vereinfachen.
Bauernregel: Regnets mächtig im April, passiert irgendwas, was sich auf April reimt.
0

Thema verteilen:


Seite 1 von 1

1 Besucher lesen dieses Thema
Mitglieder: 0, Gäste: 1, unsichtbare Mitglieder: 0