AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Oracle DB spinnt

Ein Thema von p80286 · begonnen am 30. Nov 2012 · letzter Beitrag vom 3. Dez 2012
Antwort Antwort
Benutzerbild von p80286
p80286

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

Oracle DB spinnt

  Alt 30. Nov 2012, 16:25
Datenbank: oracle • Version: 10 • Zugriff über: egal
hallo zusammen,

set zwei Stunden versuche ich den Fehler zu finden komme aber nicht zu Potte
Code:
select v_srbib.Casereference,v_srbib.casekey, origin,henattorney,division,site,productpatent.*
from v_srbib
    ,v_references
    ,v_persons
    ,(select count(casekey) cnt,familykey from cases where familykey is not null group by familykey) src
    ,productpatent
where v_srbib.casekey=src.familykey(+)
  and src.cnt is null
  and v_srbib.Casetypekey=2
  and not exists ( select * from caseevent where caseevent.casekey=v_srbib.casekey and caseevent.Eventkey=20241462)
  and not exists ( select * from caseevent where caseevent.casekey=v_srbib.casekey and caseevent.Eventkey=20241534)
  and not exists ( select * from caseevent where caseevent.casekey=v_srbib.casekey and caseevent.Eventkey=20241561)
--  and not exists ( select * from productpatent where productpatent.casefamilykey=v_srbib.casekey and productpatentkey is not null )
  and v_srbib.casekey=v_references.casekey(+)
  and v_srbib.casekey=v_persons.casekey(+)
  and v_srbib.casereference not like 'T%'
  and v_srbib.casekey=productpatent.casefamilykey(+)
--  and productpatentkey(+) is null
order by v_srbib.casereference
diese Abfrage liefert 130 Datensätze wobei man bei zwei Datensätzen einträge in Productpatent sieht.

Code:
  ..
  and v_srbib.casereference not like 'T%'
  and v_srbib.casekey=productpatent.casefamilykey(+)
  and productpatentkey(+) is null
order by v_srbib.casereference
diese Version liefert 130 Datensätze ohne das man Einträge in Productpatent sieht.

folgende Versionen liefern als ergebnis 0 Datensätze
Code:
  ...
  and v_srbib.casekey=v_persons.casekey(+)
  and v_srbib.casereference not like 'T%'
  and v_srbib.casekey=productpatent.casefamilykey(+)
  and productpatentkey is null
order by v_srbib.casereference
Code:
select v_srbib.Casereference,v_srbib.casekey, origin,henattorney,division,site,productpatent.*
from v_srbib
    ,v_references
    ,v_persons
    ,(select count(casekey) cnt,familykey from cases where familykey is not null group by familykey) src
    ,productpatent
where v_srbib.casekey=src.familykey(+)
  and src.cnt is null
  and v_srbib.Casetypekey=2
  and not exists ( select * from caseevent where caseevent.casekey=v_srbib.casekey and caseevent.Eventkey=20241462)
  and not exists ( select * from caseevent where caseevent.casekey=v_srbib.casekey and caseevent.Eventkey=20241534)
  and not exists ( select * from caseevent where caseevent.casekey=v_srbib.casekey and caseevent.Eventkey=20241561)
  and not exists ( select * from productpatent where productpatent.casefamilykey=v_srbib.casekey and productpatentkey is not null )
  and v_srbib.casekey=v_references.casekey(+)
  and v_srbib.casekey=v_persons.casekey(+)
  and v_srbib.casereference not like 'T%'
  and v_srbib.casekey=productpatent.casefamilykey(+)
--  and productpatentkey(+) is null
order by v_srbib.casereference

select v_srbib.Casereference,v_srbib.casekey, origin,henattorney,division,site,productpatent.*
from v_srbib
    ,v_references
    ,v_persons
    ,(select count(casekey) cnt,familykey from cases where familykey is not null group by familykey) src
    ,productpatent
where v_srbib.casekey=src.familykey(+)
  and src.cnt is null
  and v_srbib.Casetypekey=2
  and not exists ( select * from caseevent where caseevent.casekey=v_srbib.casekey and caseevent.Eventkey=20241462)
  and not exists ( select * from caseevent where caseevent.casekey=v_srbib.casekey and caseevent.Eventkey=20241534)
  and not exists ( select * from caseevent where caseevent.casekey=v_srbib.casekey and caseevent.Eventkey=20241561)
  and exists ( select * from productpatent where productpatent.casefamilykey=v_srbib.casekey and productpatentkey is not null )
  and v_srbib.casekey=v_references.casekey(+)
  and v_srbib.casekey=v_persons.casekey(+)
  and v_srbib.casereference not like 'T%'
  and v_srbib.casekey=productpatent.casefamilykey(+)
--  and productpatentkey(+) is null
order by v_srbib.casereference
könnt Ihr mir einen Tip geben was ich übersehen habe?
(wenn ich das productpatent-Zeugs weglasse ist ales vollkommen in Ordnung)


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
 
#2

AW: Oracle DB spinnt

  Alt 30. Nov 2012, 16:58
Was erwartest Du denn für Ergebnisse?

Welche Inhalte stehen in Variante 130:2 in ProductPatentKey?
(HIer ist die Exists Clause auskommentiert, es ist ein einfacher Outer Join)

In Variante 130:0 wird zusätzlich ProductPatentKey auf Null eingeschränkt.

Was ist mit der Existszeile von ProduktPatent in Variante 0:0?
Weiter unten führst Du zweimal das gleiche(?) Statement auf, die exists Zeile ist aber einmal negiert.
1. Es darf keine Sätze geben, deren join mit productpatent Werte mit Produktpatentkey NULL enthalten
2. Es muss einen Satz geben, dessen join mit productpatent Werte mit Produktpatentkey NULL enthält
Gruß, Jo
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

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

AW: Oracle DB spinnt

  Alt 30. Nov 2012, 17:32
Also erwarten würde ich bei
Code:
and productpatentkey is null
128 Datensätze, die zwei gefüllten sollten damit außen vor sein

ursprünglich wollte ich das mit dem
Code:
not exists()
erreichen was aber darauf hinauslief, daß wohl alle V_srbib Einträge auch Einträge in productpatent hätten.

Das vollkommen bescheuerte ist, daß ich nur zwei Einträge sehe, Die nächstliegende Erklärung wäre, daß da irgendwo ein Syntaxfehler lauert, aber ich kann nichts erkennen.

Na gut am Montag gehts weiter,
schönes Wochenende.

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

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

AW: Oracle DB spinnt

  Alt 3. Dez 2012, 11:04
Es ist Montag und der Fehler ist erkannt,
so funktioniert es
Code:
  and not exists ( select * from caseevent where caseevent.casekey=cases.casekey and caseevent.Eventkey in (20241462,20241534,20241561))
130 Datensätze

und so nicht:
Code:
  and not exists ( select * from caseevent where caseevent.casekey=cases.casekey and caseevent.Eventkey=20241462)
  and not exists ( select * from caseevent where caseevent.casekey=cases.casekey and caseevent.Eventkey=20241534)
  and not exists ( select * from caseevent where caseevent.casekey=cases.casekey and caseevent.Eventkey=20241561)
kein Datensatz

wenn jemand weiß warum, dann her damit, sonst schau ich mal Weihnachten was dahinter steckt.

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

Registriert seit: 18. Mär 2004
Ort: Luxembourg
3.487 Beiträge
 
Delphi 7 Enterprise
 
#5

AW: Oracle DB spinnt

  Alt 3. Dez 2012, 12:35
and mit or verwechselt und Klammer drum fehlt.
Code:
and (not exists ( select * from caseevent where caseevent.casekey=cases.casekey and caseevent.Eventkey=20241462)
  or not exists ( select * from caseevent where caseevent.casekey=cases.casekey and caseevent.Eventkey=20241534)
  or not exists ( select * from caseevent where caseevent.casekey=cases.casekey and caseevent.Eventkey=20241561))
Ibi fas ubi proxima merces
sudo /Developer/Library/uninstall-devtools --mode=all
  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 08:09 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