Einzelnen Beitrag anzeigen

Benutzerbild von joachimd
joachimd

Registriert seit: 17. Feb 2005
Ort: Weitingen
672 Beiträge
 
Delphi 10.4 Sydney
 
#8

AW: Geschachtelte SQL-Abfrage

  Alt 10. Jul 2013, 08:38
Ich möchte jetzt mit einer SQL-Abfrage herrausfinden, welche Gerätenummer KEINE vortlaufenden Zeitscheiben hat.
fangen wir mal an, alle ohne Nachfolger zu suchen
Code:
select t1.*, t2.zeitscheibe as z1
from #test t1
left outer join #test t2 on t1.nummer=t2.nummer and t1.zeitscheibe=t2.zeitscheibe-1
order by t1.nummer, t1.zeitscheibe
und dasselbe für alle ohne Vorgänger, gleich mit rein verknüpft:
Code:
select t1.*, t2.zeitscheibe as z1, t3.zeitscheibe as z2 
from #test t1
left outer join #test t2 on t1.nummer=t2.nummer and t1.zeitscheibe=t2.zeitscheibe-1
left outer join #test t3 on t1.nummer=t3.nummer and t1.zeitscheibe=t3.zeitscheibe+1
order by t1.nummer, t1.zeitscheibe
jetzt kann man an den fehlenden Inhalten der Spalten z1 und z2 erkennen, wer keinen Vorgänger bzw Nachfolger hat:
Code:
select t1.*, t2.zeitscheibe as z1, t3.zeitscheibe as z2 
from #test t1
left outer join #test t2 on t1.nummer=t2.nummer and t1.zeitscheibe=t2.zeitscheibe-1
left outer join #test t3 on t1.nummer=t3.nummer and t1.zeitscheibe=t3.zeitscheibe+1
where (t2.zeitscheibe is null) and (t3.zeitscheibe is null)
order by t1.nummer, t1.zeitscheibe
welche Zeitscheibe fehlt, ist dann nur noch Mengenlehre
Joachim Dürr
Joachim Dürr Softwareengineering
http://www.jd-engineering.de

Geändert von joachimd (10. Jul 2013 um 08:39 Uhr) Grund: Typo
  Mit Zitat antworten Zitat