Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

gelöst SQL-Abfrage mit Exist in Unterabfrage

Mitglied: DerLomi

DerLomi (Level 1) - Jetzt verbinden

21.01.2011 um 16:08 Uhr, 4313 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 ?

01.
SELECT
02.
    ac.`mnr` AS 'arbeitsgang',
03.
    ac.`ktxt` AS 'arbeitsgangktxt',
04.
    ac.`uschl` AS 'Schuessel',
05.
    ac.`epos` AS 'Zusatz',
06.
    COUNT(ab.`agnr`) as 'Verwendungen'
07.
FROM `relac` ac LEFT JOIN `relab` ab ON (ab.`agnr` = ac.`mnr`)
08.
WHERE ac.`mnr` LIKE 'AG%'
09.
GROUP BY ac.`mnr` /* ... */
10.
ORDER BY ac.`mnr`;
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 ..
Ähnliche Inhalte
VB for Applications
If exist - if not exist in .vbs - Datei
gelöst Frage von Komoran12VB for Applications24 Kommentare

Moin, moin, vielleicht hat jemand ja einen Tipp für mich. Mit nachfolgender .vbs lasse ich mir einen Messagebox ausgeben: ...

Batch & Shell
Schleife mit Exist
gelöst Frage von casi4711Batch & Shell18 Kommentare

Hallo an alles fleißigen Scripter, ein Script soll eine Range von IPs abfragen und checken, ob ein bestimmtes Verzeichnis ...

Batch & Shell

Vbs in exist - wenn ein Fenster existiert dann

Frage von pdiddoBatch & Shell2 Kommentare

Hi Leute Ich versuch auf vbs zu realisieren, sobald ein Fenster (Programm was zuvor gestartet wird) existiert, dass eine ...

Windows Server

Port in Windows wird durch "non-exist" Prozess belegt. Wie beenden?

gelöst Frage von CornitusWindows Server5 Kommentare

Hallo, ich habe auf einem Hyper-V Server 2012 R2 vor einer ganzen Weile mal Veeam Backup and Replication installiert. ...

Neue Wissensbeiträge
Linux Desktop

Warum Linux in einer vernetzten Welt einfach keinen Komfort bietet!

Tipp von Snowbird vor 1 StundeLinux Desktop1 Kommentar

Ein interessanter Einblick warum Linux nichts für Geräteübergreifende Arbeit ist :)

Humor (lol)
Zuviel Speicher ist ungesund. :-)
Tipp von Lochkartenstanzer vor 13 StundenHumor (lol)11 Kommentare

Moin Kollegen, Heute hatte ich ein ungewöhnliches Aha-Erlebnis: Über das Wochenende habe ich einen einen 6 Jahre alten Bare-Metal ...

Windows Update

KB4517297 verfügbar, behebt Fehler in VB6 VBA VBScript

Information von sabines vor 16 StundenWindows Update

Das Update behebt mögliche Fehler in VB6, VBA und VBScript, die durch das Update KB4512486 vom August entstanden sind. ...

Viren und Trojaner

Staatstrojaner soll auch per Einbruch installiert werden können

Information von transocean vor 2 TagenViren und Trojaner4 Kommentare

Moin, Bundesinnenminister Horst Seehofer will dem Verfassungsschutz Wohnungseinbrüche erlauben, um den geplanten Staatstrojaner zu installieren. Gruß Uwe

Heiß diskutierte Inhalte
Hyper-V
Bei Neuaufbau auf Core-Server setzen?
gelöst Frage von dertowaHyper-V32 Kommentare

Hallo zusammen, ich habe vor einigen Monaten die Verantwortung für eine EDV-Landschaft übernommen die seit Jahren von einem Dienstleister ...

Router & Routing
VPN Verbindung zur Fritzbox über Speedport
gelöst Frage von SchwabenlandRouter & Routing13 Kommentare

Hallo! Ich bin gerade im Urlaub an der Nordsee :-) In unserem Ferienhaus haben wir WLAN, das durch einen ...

Netzwerkmanagement
Zentrales Switch-Management
Frage von joergNetzwerkmanagement11 Kommentare

Hallo zusammen, ich bin auf der Suche nach einem Management für Switche. Wir haben eine heterogene Struktur und jede ...

Humor (lol)
Zuviel Speicher ist ungesund. :-)
Tipp von LochkartenstanzerHumor (lol)11 Kommentare

Moin Kollegen, Heute hatte ich ein ungewöhnliches Aha-Erlebnis: Über das Wochenende habe ich einen einen 6 Jahre alten Bare-Metal ...