AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Tot oder lebend : Zusammenfassung verschiedener Ergeignisse bzw NichtEreignisse
Thema durchsuchen
Ansicht
Themen-Optionen

Tot oder lebend : Zusammenfassung verschiedener Ergeignisse bzw NichtEreignisse

Ein Thema von p80286 · begonnen am 1. Aug 2016 · letzter Beitrag vom 4. Aug 2016
Antwort Antwort
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#1

Tot oder lebend : Zusammenfassung verschiedener Ergeignisse bzw NichtEreignisse

  Alt 1. Aug 2016, 11:35
Datenbank: oracle • Version: 11 • Zugriff über: egal
Hallo zusammen,
ich stehe vor dem Problem einen Aktenstatus zu generieren.
Eine Akte ist grundsätzlich tot.
Sie wird zum Leben erweckt wenn ein Ereignis stattfindet/vorhanden ist.
Eine Akte ist tot wenn div. Ergeignisse stattfinden/vorhanden sind, die eine bestimmte Eigenschaft (caseisdead=1) haben.

z.Zt. habe ich eine View (select casekey,casestate from...) gebastelt die ewig läuft und mMn auch nicht zuverlässig ist.
Könntet Ihr mir einen Schubs in die richtige Richtung geben

SQL-Code:
MainTable: casekey
Eventtable: casekey,eventkey,eventdate,caseisdead,

eventdate ist null oder gefüllt(kann auch Zukunft sein!;
caseisdead ist 0|1 )
Es gibt da zwar noch ein paar Felder mehr, aber die sind uninteressant.

Gruß
K-H

Die CODE-Tags hatten den Inhalt verschluckt, mit CODE=SQL geht's wieder
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector

Geändert von p80286 ( 1. Aug 2016 um 11:45 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#2

AW: Tot oder lebend : Zusammenfassung verschiedener Ergeignisse bzw NichtEreignisse

  Alt 1. Aug 2016, 13:32
Hat sich erledigt, ich hab die Frage in einen eigenen View ausgelagert, der ist hinreichend schnell:
SQL-Code:
CREATE OR REPLACE FORCE VIEW "V_LEBEM" ("CASEKEY") as
  select cases.casekey
  from cases join caseevent on (cases.casekey=caseevent.casekey and caseevent.eventkey=119) -- idr
             left join v_event kce on (cases.casekey=kce.casekey and kce.iskillerevent=1)
             left join caseevent napp on (cases.casekey=napp.casekey and napp.eventkey=308) -- napp
  where 1=1
    and napp.casekey is null
    and kce.casekey is null
;
(v_event ist caseevent + Beschreibung/Codierung etc. der Events, so daß ich nicht mit eventkeys hantieren muß)

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
Cunso

Registriert seit: 3. Aug 2016
2 Beiträge
 
#3

AW: Tot oder lebend : Zusammenfassung verschiedener Ergeignisse bzw NichtEreignisse

  Alt 3. Aug 2016, 01:23
Gibt es noch eine, ich sag mal bessere Lösung?
Oder ist die, die Du gefunden hast, die Beste?
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#4

AW: Tot oder lebend : Zusammenfassung verschiedener Ergeignisse bzw NichtEreignisse

  Alt 3. Aug 2016, 10:13
Gibt es noch eine, ich sag mal bessere Lösung?
Oder ist die, die Du gefunden hast, die Beste?
Bestimmt nicht, aber mir reicht sie

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
jobo

Registriert seit: 29. Nov 2010
3.072 Beiträge
 
Delphi 2010 Enterprise
 
#5

AW: Tot oder lebend : Zusammenfassung verschiedener Ergeignisse bzw NichtEreignisse

  Alt 3. Aug 2016, 16:23
bessere Lösung?
Hier gibt's ein sehr spezifisches Problem mit einer spezifischen Lösung.
Was hier technisch geschieht:
Verschiede Daten mit gewünschten Kriterien joinen.
Diese Menge mit den Stammdaten outer joinen und auf Nichtexistenz (join feld der Outer Menge IS NULL) der Joinmenge prüfen. So oder ähnlich muss man wohl vorgehen, wenn man per SQL eine Menge greifen will, die durch Nicht-Existenz glänzt.
Gruß, Jo
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#6

AW: Tot oder lebend : Zusammenfassung verschiedener Ergeignisse bzw NichtEreignisse

  Alt 3. Aug 2016, 18:09
So oder ähnlich muss man wohl vorgehen, wenn man per SQL eine Menge greifen will, die durch Nicht-Existenz glänzt.
Eine andere Möglichkeit ist Not exists(select....) was aber meist nicht so performant ist.
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
jobo

Registriert seit: 29. Nov 2010
3.072 Beiträge
 
Delphi 2010 Enterprise
 
#7

AW: Tot oder lebend : Zusammenfassung verschiedener Ergeignisse bzw NichtEreignisse

  Alt 4. Aug 2016, 11:18
Ja, das bietet sich an, wenn einem ein gefundenes Element als Abbruchkriterium reicht - und der Optimizer das auch versteht und die Abfragen entsprechend aufbaut, bzw. beim 1. Treffer dann auch abbricht.
Das trifft ja nicht so richtig Deinen Fall, oder?
Gruß, Jo
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#8

AW: Tot oder lebend : Zusammenfassung verschiedener Ergeignisse bzw NichtEreignisse

  Alt 4. Aug 2016, 11:56
Ja, das bietet sich an, wenn einem ein gefundenes Element als Abbruchkriterium reicht - und der Optimizer das auch versteht und die Abfragen entsprechend aufbaut, bzw. beim 1. Treffer dann auch abbricht.
Es geht darum festzulegen ob eine Akte "Lebt". Der Standardwert ist "nein", d.h. wenn die Eingangsvorraussetzung (caseevent.eventkey=119 ) nicht gegeben ist, ist mir herzlich egal was es sonst noch für Informationen gibt, d.h. in diesen Fällen muß ich nicht auf (iskillerevent prüfen. Was mir auf Grund der vorhandenen Daten einiges erspart. Darauf gekommen bin ich durch eine Äußerung von Markus "Datenbanken sind Mengenorientiert"

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:55 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz