WCM Forum

WCM Forum (http://www.wcm.at/forum/index.php)
-   Programmierung (http://www.wcm.at/forum/forumdisplay.php?f=17)
-   -   SQL Oracle -> Select mit 2 Count s Vergleichen?? (http://www.wcm.at/forum/showthread.php?t=61777)

MrFloppy 03.07.2002 13:17

SQL Oracle -> Select mit 2 Count s Vergleichen??
 
Hallo!

Ich häng jetzt schon längere zeit bei einem Select-Problem bei einer Oracle-DB (8.1) fest.

Und zwar sollte die Abfrage mehr oder weniger 2 Counts miteinander vergleichen. Ich habe zu diesem Zweck zwei Views erstellt. Wobei der erste View mir eine Liste von Maschinentypen und deren Maschinennummern erstellt.
Der zweite View liefert mir SozVerNummern von Angestellten, die auf diversen Maschinentypen ausgebildet sind
z.B View 1:
MNr Maschinentyp
--------------------
1 Walze
2 Kran
3 Walze
4 Bohrer
usw..

und View 2:
SVNr ausgebildet auf
------------------------
1329 Walze
1329 Kran
4450 Bohrer
usw..

Und nun zur Abfrage:
Diese sollte jene Maschinentypen ausgeben, von denen es mehr Maschinen gibt als darauf ausgebildete Arbeiter, wobei aber zusätzlich noch die Anzahl der vorhanden Maschinen und die Anzahl der darauf ausgebildeten Arbeiter ausgeben soll

Ergebnis sollte in etwa so aussehen:
MTyp AnzahlMaschinen ausgebildete
--------------------------------------
Kran 4 2
Walze 3 1

Ich hoff mir kann wer helfen, sitze schon mittlerweile 3 Tage daran und finde keine Lösung.
Thx for help!!!!

cal 03.07.2002 13:22

importierst nach access und machst die ausgabe dort...:cool:

pc.net 03.07.2002 14:00

@cal
:lol: :roflmao:

@MrFloppy

1. am besten du machst dir eine view, die den maschinen-typ und die anzahl liefert.

Code:

create or replace view maschinen_v (typ, anzahl)
as select typ,
          count(typ)
from maschinen
group by typ;

2. du joinst diese view mit der mitarbeiter-tabelle und versiehst das ganze mit einer gruppenfunktion - weiters mußt du einschränken, dass die anzahl der maschinen nicht der anzahl der dafür ausgebildeten mitarbeiter entsprechen darf (sub-select) - es sollte so ungefähr gehen:

Code:

select m.typ,
      m.anzahl
      count(a.svnr)
from maschinen_v m,
    mitarbeiter a
where m.typ = a.ausbild_typ
  and m.anzahl != (select count(a2.svnr)
                  from mitarbeiter a2
                  where m.typ = a2.ausbild_typ)
group by m.maschinentyp, m.anzahl;

wichtig ist noch, die table-aliases nicht zu vergessen / verwechseln! möglicherweise könnte man das select der view und die weitere abfrage auch noch miteinander kombinieren, aber ich glaub, dass das nicht so performant ist und außerdem komm ich jetzt nicht drauf wie ;)

hoffe es hilft ...

MrFloppy 03.07.2002 14:16

THX THX HTX
 
THX A LOT!!!!
Funktioniert WUNDERBAR, PERFETTAMENTE!
IT´S JUST INCREDIBLE!!!

NOCHMALS DANKE!!!!!

pc.net 03.07.2002 14:20

Re: THX THX HTX
 
Zitat:

Original geschrieben von MrFloppy
THX A LOT!!!!
Funktioniert WUNDERBAR, PERFETTAMENTE!
IT´S JUST INCREDIBLE!!!

NOCHMALS DANKE!!!!!

gern geschehen ... :)


Alle Zeitangaben in WEZ +2. Es ist jetzt 09:07 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
© 2009 FSL Verlag