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 SELCT Befehle Verschachteln Verbinden

Mitglied: mycroftone

mycroftone (Level 1) - Jetzt verbinden

30.11.2010, aktualisiert 21:19 Uhr, 13611 Aufrufe, 5 Kommentare

SELECT Befehle kombinieren / verschachteln / verbinden

Jetzt möchte ich ich einige SELECT Befehle die auf einen MS SQL 2000 Server zugreifen verschachtel / miteinander Verbinden so das ich nur einen SQL Befehl auf einmal habe.

Ich weiß zwar das man mit Join neue Tabelen / View ertellen kann oder mit Klammern Select Befehle ineinander Verschachtel kann aber irgendwie komm ich bei dem Join noch nicht weiter Vorallen weil meine ersten 2 Select Befehle ineinander mit () Verschachtel die jetzt noch mit Join also Pointer auf die Datenbank sowie iuch das Verstanden habe ist mir irgendwie im Moment zu hoch.

Also ich habe 4 Tabellen aus dennen ich Informationen raus holen will.

Für jede habe ich eine Select geschreiben.

Die Informationen aus den ersten beiden Tabellen hole ich mit folgender Abfrage.

01.
 
02.
SELECT 
03.
    ComputerID, 
04.
    Received 
05.
FROM 
06.
    dbo.InstallationHistory 
07.
WHERE PackageVersionID=( SELECT 
08.
    	                     PackageVersionID 
09.
	                  FROM 
10.
                            dbo.PackageVersion 
11.
                         WHERE Title='Officepaket' 
12.
                       ) and Result='success'  
13.
 
14.
 
Im zweite Select trag ich händisch das Ergebnis zu ComputerID in den Select Befehl ein der wie folgt aussieht.

01.
 
02.
SELECT 
03.
    ComputerName, 
04.
 FROM 
05.
    dbo.Computer 
06.
WHERE ComputerID=‘45’ 
07.
 

Im dritten Select trage ich händisch das Ergebniss aus dem Zweiten Select ein.

01.
 
02.
SELECT 
03.
    Netzwerk, 
04.
 FROM 
05.
    dbo.ADComputer 
06.
WHERE ComputerName=‘Verwaltung-Meier’ 
07.
 
Jetzt wollte ich alle drei Selects verbinden so das ich keine Daten händisch außer dem Paket im ersten Select eintragen muß.

Also Eingabe 'Titel' im ersten Select


Und Ausgabe zum Schluss Received Computername Netzwerk.


Wer kann mir da helfen.
Mitglied: Biber
30.11.2010 um 18:47 Uhr
Moin mycroftone,

meinst du so in etwa?
01.
SELECT PV.Title, IH.Received, AD.Computername,  AD.Netzwerk 
02.
  FROM  dbo.ADComputer       AD, dbo.Computername    Compi, 
03.
               dbo.PackageVersion PV, dbo.InstallationHistory    IH  
04.
  WHERE PV.Title='Officepaket' 
05.
AND IH.PackageVersionID = PV.PackageVersionID 
06.
AND IH.Result= 'success' 
07.
AND Compi.ComputerName = AD.Computername 
08.
AND Compi.ComputerID = IH.ComputerID
Die Reihenfolge der WHERE-Restriktiktionen sollte natürlich von der Selektivität der Daten ( auf Deutsch: Anzahl der Datensätze; Kardinalität und unterstützende Indizes) abhängen.
Ist bei mir vollkommen willkürlich hingewürfelt.
Die "überflüssige" Spalte PV.Title (=das 'Office-Paket', das du suchst) habe ich im resultSet ergänzt, sonst ist es relativ wertlos nach zwei Tagen.

Grüße
Biber
Bitte warten ..
Mitglied: dog
30.11.2010 um 18:48 Uhr
Gehen wir doch einfach rückwärts durch (MySQL-Syntax):
01.
SELECT 
02.
	pc.ComputerName, 
03.
	pc2.Netzwerk 
04.
FROM 
05.
	dbo.Computer pc 
06.
JOIN 
07.
	dbo.ADComputer pc2 ON (pc.ComputerName = pc2.ComputerName) 
08.
WHERE 
09.
	pc.ComputerID = '45'
Und in den nächsten rein:
01.
SELECT 
02.
	ih.ComputerID, 
03.
	ih.Received, 
04.
	pc.ComputerName, 
05.
	pc2.Netzwerk 
06.
FROM 
07.
	dbo.InstallationHistory ih 
08.
JOIN 
09.
	dbo.Computer pc ON (pc.ComputerID = ih.ComputerID) 
10.
JOIN 
11.
	dbo.ADComputer pc2 ON (pc.ComputerName = pc2.ComputerName) 
12.
WHERE 
13.
	ih.PackageVersionID = (SELECT PackageVersionID FROM dbo.PackageVersion WHERE Title = 'Officepaket') AND 
14.
	ih.Result = 'success'
Und zum Schluss das letzte Subselect raus:
01.
SELECT 
02.
	ih.ComputerID, 
03.
	ih.Received, 
04.
	pc.ComputerName, 
05.
	pc2.Netzwerk 
06.
FROM 
07.
	dbo.InstallationHistory ih 
08.
JOIN 
09.
	dbo.PackageVersion pv ON (pv.PackageVersionID = ih.PackageVersionID) 
10.
JOIN 
11.
	dbo.Computer pc ON (pc.ComputerID = ih.ComputerID) 
12.
JOIN 
13.
	dbo.ADComputer pc2 ON (pc.ComputerName = pc2.ComputerName) 
14.
WHERE 
15.
	pv.PackageVersion = 'Officepaket' 
16.
	ih.Result = 'success'
Bitte warten ..
Mitglied: mycroftone
30.11.2010 um 21:25 Uhr
Hallo Biber
ja so in der Art habe ich das von dir schon mal in einem anderen Theard von dir gesehen.
Konnte es aber leider auf meine nicht umsetzen.

Werde ich morgen früh wenn ich Zeit habe gleich mal ausprobieren.

Aber eine Frage habe ich noch. Braucht man unter MS SQL entgegen mySQL kein JOIN im Syntax.
Bitte warten ..
Mitglied: Biber
30.11.2010 um 22:18 Uhr
Moin mycroftone,

die Schreibweise ist zwar unterschiedlich, aber dog und ich haben beide den gleichen JOIN.

bei mir fehlt dieses Schlüsselwort zwar ganz, aber ein "WHERE tab1.id = tab2.foreignkey.." bedeutet genau dasselbe.

Die Bedingung "Werte müssen GLEICH sein" ist gleichbedeutend mit der Klausel INNER JOIN (Wert mmuss in beiden Tabellen vorhanden UND gleich sein).

Und dogs flapsiges "JOIN ON" ist die Kurzform von INNER JOIN. Alle anderen Formen (LEFT/RIGHT/OUTER/FULL) müssen explizit angegeben werden.

Kannst beides nehmen - bzw nimm das für dich les- und wartbarere.

dogs Variante finde ich offen gesagt nachvollziehbarer und sie sieht eindeutig sortierter aus.
Länger, aber geradliniger.

Grüße
Biber
Bitte warten ..
Mitglied: mycroftone
03.12.2010 um 18:10 Uhr
Hallo Dog

Wunderbar deine Kommandzeile brachte das gewünschte Ergebnis und ich habe es verstanden so das ich noch ein bisschen mehr rauskitzeln konnte.

Besten Dank
Bitte warten ..
Ähnliche Inhalte
Datenbanken
SQL Update-Befehl mit Zeichenketten
gelöst Frage von TlBERlUSDatenbanken6 Kommentare

Hi, mein SQL ist etwas eingerostet und finde dazu nichts hilfreiches im Web. SQL-Server 2008 R2; Ist-Zustand: Datenbank-Spalte mit ...

Batch & Shell
SQL Befehle über Linux-Shell
gelöst Frage von newit1Batch & Shell4 Kommentare

Hallo Ich will mehrere SQL Befehle über eine Shell ablaufen lassen. Wenn ich die Shell ausführe Öffnet sich nur ...

Batch & Shell

Wie kann ich zwei Variablen ineinander verschachteln?

gelöst Frage von red-eyeBatch & Shell9 Kommentare

Hallo allerseits! Könntet Ihr mir wieder einmal einen Tipp für die Batch-Programmierung geben? Vielen Dank für frühere wunderbare Tipps! ...

Datenbanken

2 SQL Abfragen verbinden

Frage von cuxminiDatenbanken

Hallo Leute, ich habe mal das Problem, dass ich 2 Abfragen benötige um zum Ergebniss zu kommen. Ich hätte ...

Neue Wissensbeiträge
Windows 10

Neue Sicherheitslücke in Windows 10 (Version 1709) durch Google öffentlich geworden

Information von kgborn vor 5 StundenWindows 10

Vor ein paar Tagen haben Googles Sicherheitsforscher vom Projekt Zero eine Sicherheitslücke im Edge-Browser publiziert. Jetzt wurde eine weitere ...

iOS
IOS 11.2.6 verfügbar
Information von sabines vor 10 StundeniOS

Mit dem Update soll der Bug behoben werden, bei dem eine bestimmte Zeichenkette IOS zum Absturz gebracht hat.

Sicherheit
Sicherheitsrisiko: Die Krux mit 7-Zip
Information von kgborn vor 1 TagSicherheit8 Kommentare

Bei vielen Anwendern ist das Tool 7-Zip zum Entpacken von Archivdateien im Einsatz. Die Software ist kostenlos und steht ...

Internet

Datendealing im WWW Tracking Methoden immer brutaler

Information von sabines vor 1 TagInternet

Interessanter Artikel zum Thema Tracking im WWW und die immer "besseren" Methoden des Trackings. Professor Arvind Narayanan (Princeton-Universität) betreibt ...

Heiß diskutierte Inhalte
Router & Routing
LANCOM VPN CLIENT einrichten
Frage von Finchen961988Router & Routing27 Kommentare

Hallo, ich habe ein Problem und hoffe ihr könnt mir helfen, wir haben einen Kunden der hat einen Speedport ...

Windows Server
AD DS findet Domäne nicht, behebbar?
Frage von schapitzWindows Server23 Kommentare

Guten Tag, ich habe bei einem Kunden ein Problem mit den AD DS. Umgebung ist folgende: Windows Server 2016 ...

LAN, WAN, Wireless
VPN Cisco ASA5505 PaloAlto PA-200
gelöst Frage von YannoschLAN, WAN, Wireless22 Kommentare

Hallo zusammen, ich würde gerne ein Site-to-Site VPN zwischen den beiden Standorten aufbauen. PaloAlto PA200 Internetanschluss Deutsche Telekom GK ...

Webbrowser
Welcher Browser ist der Beste?
Frage von justtinWebbrowser15 Kommentare

Hallo Leute Ich habe eine interessante Frage. Mich wurde mal interessieren welcher Browser ist eure meinung nach der beste? ...