Einzelnen Beitrag anzeigen

Jumpy

Registriert seit: 9. Dez 2010
Ort: Mönchengladbach
1.737 Beiträge
 
Delphi 6 Enterprise
 
#20

AW: Fast Report - Leerzeile einfügen bei fehlendem Datensatz

  Alt 4. Dez 2014, 08:54
Code:
select
  V.Value,
  Meldergruppe,
  Adresse,
  Etage,
  Meldebereich,
  (Select count(Meldergruppe) From Meldergruppe Where Meldergruppe=V.Value-1) as VorherigeSpalteLeer
from
  ValueTable V
left join MelderGruppen
  on Meldergruppe = V.Value
where
  V.Value <= Max( Meldergruppe ) -- << könnte auch ein SubSelect benötigen!
order by
  V.Value
Ich hab mal für ein Beispiel Sir Rufos Statement um einen Subselect erweitert, der (wenn ich keinen Denkfehler habe) anzeigt, ob die vorherige Spalte bereits leer ist (Evtl. problem beim 1. Datensatz?). Daraus ergibt sich nun:
Meldegruppe <> Null -> Anzeigen
Meldegruppe = Null -> VorherigeSpalteLeer<>0 -> Anzeigen
Meldegruppe = Null -> VorherigeSpalteLeer=0 -> Anzeigen

Du must also entweder um das ganze Select noch einen äußeren Select legen, der diese Kriterien umsetzt oder mal probieren mit "HAVING" zu arbeiten. Hier weiß ich jetzt nicht was in Access SQL da so alles geht. Ist jetzt wahrsch. nicht sehr performant aber bei nur 256 Datensätzen...


Edit:
Gerade nochmal nachgedacht. HAVING ist ja quatsch, da keine Gruppierung vorliegt. Somit muss das ganze in die Where Klausel ala:
Code:
where
  V.Value <= (Select Max(Meldergruppe) From Meldergruppe )
  and (
        Meldegruppe is not null
        or
        (Select count(Meldergruppe) From Meldergruppe Where Meldergruppe=V.Value-1)>0
       )
Ralph

Geändert von Jumpy ( 4. Dez 2014 um 10:29 Uhr)
  Mit Zitat antworten Zitat