SQL-Abfrage mit Exist in Unterabfrage

Mitglied: DerLomi

DerLomi (Level 1) - Jetzt verbinden

21.01.2011 um 16:08 Uhr, 4512 Aufrufe, 6 Kommentare

Mahlzeit alle zusammen,

habe wieder mal eine Abfrage bei der ich im moment gerade nicht weiter komme.
Und zwar geht es darum das z.B. einer Tabelle (relac) verschiedene Arbeitsgänge hinterlegt sind. In einer zweiten Tabelle (relab) sind Ressourcenlisten in denen die Arbeitsgänge eingetragen sind. Ich brauch nun die Anzahl der Verwendungen aus den Ressourcenlistten (relab) welche in der Tabelle "relac" stehen.

Habe hierzu schon eine Abfrage geschrieben:

select ac.mnr as arbeitsgang,ac.ktxt as arbeitsgangktxt,ac.uschl as Schuessel,ac.epos as Zusatz,count(ab.agnr) as Verwendungen from relac ac, (select agnr from relab where agnr LIKE 'AG%') ab
where ac.mnr LIKE 'AG%'
and ab.agnr = ac.mnr
group by ac.mnr,ac.ktxt,ac.uschl,ac.epos
order by ac.mnr

Da ich unter der Where-Klausel die Bedingung "ab.agnr = ac.mnr" habe, gibt er mir natürlich nur die Arbeitsgänge aus, bei denen eine Verwendung in den Ressourcenlisten vorhanden ist. Da aber auch einige Arbeitsgänge noch nicht verwendet wurden und diese beim Zählen normalerweise einen NULL-Wert haben sollten, werden die Arbeitsgänge nicht mit angezeigt.

Ich weiß das es die Funktion exist gibt, mit der ich per Unterabfrage zusätzlich die Arbeitsgänge anzeigen lassen kann auch wenn diese bei den Verwendungen einen Nullwert haben.
Stehe im moment einfach nur auf dem Schlauch.

Im Endeffekt brauche ich eine Abfrage, welche auch die Arbeitsgänge anzeigt, die bei der Funktion count (siehe oben) einen Null-Wert zurückgibt.

Vielen Dank im Vorraus

MfG
Der_Lomi
Mitglied: AndreasHoster
21.01.2011 um 17:35 Uhr
Da ja alle Datenbanksystem absolut identische SQL-Syntax haben (oder eben auch nicht) nur mal was allgemeines:
Such mal in der Hilfe DEINES Datenbanksystems nach Left Join bzw Right Join.
Bitte warten ..
Mitglied: Logan000
21.01.2011 um 17:41 Uhr
Moin Moin

Es sieht so aus als wärt du nichtganzt unbeleckt in SQL, deshalb frag ich mal ganz direkt.
Warum die unterabfrage und kein JOIN?

Auf was willst du mit Exist in relab prüfen wenn agnr dort NULL ist?

Gruß L.
Bitte warten ..
Mitglied: jknapp
21.01.2011 um 17:42 Uhr
Hab ichs nur überlesen, oder verräts du nicht von welchem DBMS du sprichst ? ;O)
Bitte warten ..
Mitglied: Biber
21.01.2011 um 18:08 Uhr
Moin DerLomi,

ergänzend zu den Vorpostern,
Zitat von @jknapp:
Hab ichs nur überlesen, oder verräts du nicht von welchem DBMS du sprichst ? ;O)
Für den LEFT JOIN wäre es egal, das können alle DBMSe.
Aber für die die Formulierung des "CASE WHEN THEN" und des "IS NULL/IsNull()" brauchen wir schon den konkreten Dialekt.

Grüße
Biber
Bitte warten ..
Mitglied: nxclass
22.01.2011 um 13:54 Uhr
normalerweise einen NULL-Wert haben sollten
wie soll bitte in deiner Unterabfrage eine NULL Wert herrauskommen wenn Du da mit LIKE 'AG%' filterst ?


Bitte warten ..
Mitglied: DerLomi
24.01.2011 um 07:48 Uhr
Moin alle zusammen,

hatte es am Freitag dann auch noch mit dem Left-Join, wie nxclass, gelöst. War am Freitag nicht so aufem Damm und hab ein wenig aufem Schlauch gestanden ;) Aber trotzdem nochmal danke ^^ . War eine total blödsinnige Fragestellung, besonders nachdem ich dann mal 15min. abgeschaltet habe und dann sofort auf die Lösung gekommen bin xD Manchmal hat man einfach ein Brett vorm Kopf obwohl die Lösung schon vor einem liegt ;)

LG
DerLomi
Bitte warten ..
Heiß diskutierte Inhalte
Windows Server
Aufgabenplanung PowerShell Skript startet nicht
shooanVor 1 TagFrageWindows Server36 Kommentare

Hallo Zusammen, ich habe ein Skript bekommen das ich gerne so einstellen will das dieses beim Start des Exchangeservers aktiviert werden soll. Ein Ausführung ...

Internet
Webcam oder IPcam aus dem Internet erreichbar?
dertowaVor 1 TagFrageInternet17 Kommentare

Hallo zusammen, mal eine spezielle Frage, vielleicht kann jemand einen Dienst aufgrund guter Erfahrung empfehlen. Die Hündin einer guten Bekannten bekommt Nachwuchs und dafür ...

Windows Netzwerk
Computername erneut vergeben?
gelöst malkieVor 1 TagFrageWindows Netzwerk10 Kommentare

Guten Morgen, wir haben in der Firma Computernamen nach dem Muster: PC-Abteilung-Nummer (PC-IT-1) So, aktuell habe ich mal gelernt ganz früher, dass man den ...

Backup
Zusätzlicher Backupschutz gegen Ransomware Befall
staybbVor 1 TagFrageBackup4 Kommentare

Hallo zusammen, wir nutzen Veeam Backup & Replication als Backup für unsere Server und Files. Es werden immer on-side beim Kunden Backups auf einem ...

LAN, WAN, Wireless
Unterschiedliche IP-Adressbereiche im Netzwerk
achkleinVor 16 StundenFrageLAN, WAN, Wireless17 Kommentare

Hallo, ich stehe vor einem Problem mit der WLAN-Verbindung zum Router (Fritzbox Cable 6490). Das verbundene Notebook hat die Adresse 192.168.0.164, Gateway ist 192.168.0.149: ...

Router & Routing
Verkaufe apu4.d4 Set
pasu69Vor 1 TagAllgemeinRouter & Routing11 Kommentare

Guten Abend zusammen, ich hätte ein APU4.D4 Bundle abzugeben, dass ich erst Anfang März gekauft habe. Leider ist die Hardware tatsächlich zu schwach, um ...

Hardware
Temperaturüberwachung Raum
ingo1988Vor 1 TagFrageHardware8 Kommentare

Hallo, ich brauche eure Hilfe. Ich möchte gerne eine Temperaturüberwachung installieren. Es sollte über Wifi funktionieren, ist aber kein Muss. Außerdem soll eine Alarmbenachrichtigung ...

Microsoft Office
E-Mail kommt nicht an
gelöst HeinrichMVor 1 TagFrageMicrosoft Office10 Kommentare

Hallo zusammen, in der letzten Zeit häufen sich die Meldungen, dass E-Mails nicht ankommen. Es ist kein Muster zu erkennen. Mal kommt eine Mail ...