Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

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

2 SQL Abfragen miteinander verbinden

Frage Entwicklung Datenbanken

Mitglied: karlchristian

karlchristian (Level 1) - Jetzt verbinden

27.08.2014, aktualisiert 13:30 Uhr, 1158 Aufrufe, 4 Kommentare, 1 Danke

Hallo,

ich habe 2 Abfragen, welche ich mit inner join auf ELGDEPOTNR zusammen fassen möchte
und alle Felder dann ausgeben,

Nur komme ich nicht drauf wie dieses möglich ist.
Mitglied: LianenSchwinger
27.08.2014, aktualisiert um 12:44 Uhr
Hallo,

direkt die 1. Frage - warum gruppierst Du in der 2. Abfrage?!? Ist doch keine Aggregat-Funktion im Spiel.

Ansonsten ist das doch einfach. Du hängst die Tabelle ELGREIFENMODELL per INNER JOIN in die 1. Abfrage.
SELECT 	ADRESSE.GPTNR,  
	GESCHPARTNER.NAME1,  
	ADRESSE.STRASSE,  
	ADRESSE.PLZ,  
	ADRESSE.ORT,  
	ELGEINLAGERUNG.ELGDEPOTNR,  
	ELGEINLAGERUNG.FZGID,  
	ELGEINLAGERUNG.FABRIKATKZ,  
	ELGEINLAGERUNG.MODCODE, 	 
	ELGEINLAGERUNG.MODBEZEICHNUNG,  
	ELGEINLAGERUNG.FAHRGESTELLNR,  
	ELGEINLAGERUNG.AMTKENNZ,  
	ELGEINLAGERUNG.EINLAGERTYP,  
	ELGEINLAGERUNG.EINLAGERSTATUS,  
	ELGEINLAGERUNG.EINLAGERDATUM,  
	ELGEINLAGERUNG.EINLAGERBIS,  
	ELGEINLAGERUNG.ELGLAGERORTID,  
	ELGEINLAGERUNG.AUSLAGERDATUM,  
	ELGEINLAGERUNG.STORNODATUM, 
 
	ELGREIFENMODELL.SAISONKZ 
 
FROM ELGEINLAGERUNG  
INNER JOIN (ADRESSE INNER JOIN GESCHPARTNER ON ADRESSE.GPTNR = GESCHPARTNER.GPTNR) ON ELGEINLAGERUNG.GPTNRKUNDE = GESCHPARTNER.GPTNR  
INNER JOIN (ELGREIFENMODELL INNER JOIN ELGEINLAGREIFEN ON ELGREIFENMODELL.ELGREIFENMODELLID = ELGEINLAGREIFEN.ELGREIFENMODELLID) ON ELGEINLAGERUNG.ELGDEPOTNR = ELGEINLAGREIFEN.ELGDEPOTNR 
WHERE ELGEINLAGERUNG.EINLAGERSTATUS Like 'EIN';
Sofern ELGEINLAGERUNG.ELGDEPOTNR = ELGEINLAGREIFEN.ELGDEPOTNR dies zutrifft.

G Jörg
Bitte warten ..
Mitglied: karlchristian
27.08.2014, aktualisiert um 12:44 Uhr
Hallo Jörg,


zu Frage 1,

In der abfrage 2 habe ich doppelte Werte im Vorfeld herausnehmen wollen.

Wenn ich deine o.g. Lösung verwendet bekomme ich doppelte Werte vorgeblendet

Versuche ich mit Distinct zu arbeiten kommt es zu nem Fehler

SELECT DISITNCT ELGEINLAGERUNG.ELGDEPOTNR, ADRESSE.GPTNR,GESCHPARTNER.NAME1,ADRESSE.STRASSE,ADRESSE.PLZ, 
ADRESSE.ORT,ELGEINLAGERUNG.FZGID,	ELGEINLAGERUNG.FABRIKATKZ,ELGEINLAGERUNG.MODCODE, ELGEINLAGERUNG.MODBEZEICHNUNG,  
ELGEINLAGERUNG.FAHRGESTELLNR, ELGEINLAGERUNG.AMTKENNZ, ELGEINLAGERUNG.EINLAGERTYP, ELGEINLAGERUNG.EINLAGERSTATUS, ELGEINLAGERUNG.EINLAGERDATUM, ELGEINLAGERUNG.EINLAGERBIS, ELGEINLAGERUNG.ELGLAGERORTID, ELGEINLAGERUNG.AUSLAGERDATUM, ELGEINLAGERUNG.STORNODATUM,ELGREIFENMODELL.SAISONKZ 
FROM ELGEINLAGERUNG  
INNER JOIN (ADRESSE INNER JOIN GESCHPARTNER ON ADRESSE.GPTNR = GESCHPARTNER.GPTNR) ON ELGEINLAGERUNG.GPTNRKUNDE = GESCHPARTNER.GPTNR  
INNER JOIN (ELGREIFENMODELL INNER JOIN ELGEINLAGREIFEN ON ELGREIFENMODELL.ELGREIFENMODELLID = ELGEINLAGREIFEN.ELGREIFENMODELLID) ON ELGEINLAGERUNG.ELGDEPOTNR = ELGEINLAGREIFEN.ELGDEPOTNR 
WHERE ELGEINLAGERUNG.EINLAGERSTATUS='EIN'
bzw der Versuch mit GROUP BY ELGREIFENMODELL.SAISONKZ schlägt fehl (jedenfalls wenn ich es ans Ende setzt
Bitte warten ..
Mitglied: karlchristian
27.08.2014, aktualisiert um 12:44 Uhr
Ich habs nun unsauber selbst behoben

SELECT DISITNCT * FROM 
(SELECT ELGEINLAGERUNG.ELGDEPOTNR, ADRESSE.GPTNR,GESCHPARTNER.NAME1,ADRESSE.STRASSE,ADRESSE.PLZ, 
ADRESSE.ORT,ELGEINLAGERUNG.FZGID,	ELGEINLAGERUNG.FABRIKATKZ,ELGEINLAGERUNG.MODCODE, ELGEINLAGERUNG.MODBEZEICHNUNG,  
ELGEINLAGERUNG.FAHRGESTELLNR, ELGEINLAGERUNG.AMTKENNZ, ELGEINLAGERUNG.EINLAGERTYP, ELGEINLAGERUNG.EINLAGERSTATUS, ELGEINLAGERUNG.EINLAGERDATUM, ELGEINLAGERUNG.EINLAGERBIS, ELGEINLAGERUNG.ELGLAGERORTID, ELGEINLAGERUNG.AUSLAGERDATUM, ELGEINLAGERUNG.STORNODATUM,ELGREIFENMODELL.SAISONKZ 
FROM ELGEINLAGERUNG  
INNER JOIN (ADRESSE INNER JOIN GESCHPARTNER ON ADRESSE.GPTNR = GESCHPARTNER.GPTNR) ON ELGEINLAGERUNG.GPTNRKUNDE = GESCHPARTNER.GPTNR  
INNER JOIN (ELGREIFENMODELL INNER JOIN ELGEINLAGREIFEN ON ELGREIFENMODELL.ELGREIFENMODELLID = ELGEINLAGREIFEN.ELGREIFENMODELLID) ON ELGEINLAGERUNG.ELGDEPOTNR = ELGEINLAGREIFEN.ELGDEPOTNR 
WHERE ELGEINLAGERUNG.EINLAGERSTATUS='EIN')
Bitte warten ..
Mitglied: Biber
27.08.2014, aktualisiert um 13:35 Uhr
Moin karlchristian,

eigentlich stehe ich ja auch auf dem Standpunkt "Wenn's funktioniert, dann lassen wir es so..."
Aber ein "SELECT DISTINCT * FROM (.." kann nicht das Optimum sein.

Probier es anstelle deiner Abfrage mal mit
01.
SELECT ELGEINLAGERUNG.ELGDEPOTNR 
02.
       , ADRESSE.GPTNR 
03.
       , GESCHPARTNER.NAME1 
04.
       , ADRESSE.STRASSE 
05.
       , ADRESSE.PLZ 
06.
       , ADRESSE.ORT 
07.
       , ELGEINLAGERUNG.FZGID 
08.
       , ELGEINLAGERUNG.FABRIKATKZ 
09.
       , ELGEINLAGERUNG.MODCODE 
10.
       , ELGEINLAGERUNG.MODBEZEICHNUNG 
11.
       , ELGEINLAGERUNG.FAHRGESTELLNR 
12.
       , ELGEINLAGERUNG.AMTKENNZ 
13.
       , ELGEINLAGERUNG.EINLAGERTYP 
14.
       , ELGEINLAGERUNG.EINLAGERSTATUS 
15.
       , ELGEINLAGERUNG.EINLAGERDATUM 
16.
       , ELGEINLAGERUNG.EINLAGERBIS 
17.
       , ELGEINLAGERUNG.ELGLAGERORTID 
18.
       , ELGEINLAGERUNG.AUSLAGERDATUM 
19.
       , ELGEINLAGERUNG.STORNODATUM 
20.
       , depotdaten.SAISONKZ 
21.
FROM ELGEINLAGERUNG 
22.
  INNER JOIN (ADRESSE 
23.
  INNER JOIN GESCHPARTNER 
24.
          ON ADRESSE.GPTNR = GESCHPARTNER.GPTNR) 
25.
          ON ELGEINLAGERUNG.GPTNRKUNDE = GESCHPARTNER.GPTNR 
26.
  INNER JOIN ( 
27.
--           ELGREIFENMODELL 
28.
--           INNER JOIN ELGEINLAGREIFEN 
29.
--          ON ELGREIFENMODELL.ELGREIFENMODELLID = ELGEINLAGREIFEN.ELGREIFENMODELLID) 
30.
                SELECT distinct r.ELGDEPOTNR 
31.
                     , m.SAISONKZ 
32.
                FROM ELGREIFENMODELL m 
33.
                INNER JOIN ELGEINLAGREIFEN r 
34.
                ON m.ELGREIFENMODELLID = r.ELGREIFENMODELLID ) depotdaten 
35.
          ON ELGEINLAGERUNG.ELGDEPOTNR = depotdaten.ELGDEPOTNR 
36.
WHERE ELGEINLAGERUNG.EINLAGERSTATUS = 'EIN';
Ich habe deine Abfrage (ohne das drumgewickelte SELECT DISTINCT) genommen und die ursprünglichen Zeilen als Kommentar dringelassen (Zeile 27-29).
Statt GROUP BY wie in der Ur-Abfrage ganz oben habe ich dort ein SELECT DISTINCT genommen, damit du weiterhin eines dabeihast.


Grüße
Biber
Bitte warten ..
Ähnliche Inhalte
Router & Routing
2 Interne Netzwerke in VirtualBox miteinander verbinden (2)

Frage von WinLiCLI zum Thema Router & Routing ...

Datenbanken
gelöst MS SQL Abfragen und Formulare in Webseite einbinden (3)

Frage von Machello zum Thema Datenbanken ...

Datenbanken
SQL - Abfragen Nachfrage (2)

Frage von PronMaster zum Thema Datenbanken ...

Netzwerkgrundlagen
gelöst Switche (Cisco) miteinander bzw. mit Patchfeld verbinden (8)

Frage von M.Marz zum Thema Netzwerkgrundlagen ...

Neue Wissensbeiträge
RedHat, CentOS, Fedora

Fedora, RedHat, Centos: DNS-Search Domain setzen

(10)

Tipp von Frank zum Thema RedHat, CentOS, Fedora ...

Drucker und Scanner

Samsung SL-M4025ND, firmware update und (kompatible) Tonerkassetten

(1)

Erfahrungsbericht von markus-1969 zum Thema Drucker und Scanner ...

Router & Routing

PfSense auf Supermicro Intel Xeon D-15x8 SoC Bare Bone

Tipp von Dobby zum Thema Router & Routing ...

Heiß diskutierte Inhalte
Windows 10
Windows für Privatanwender "nicht mehr handhabbar" (26)

Frage von FA-jka zum Thema Windows 10 ...

LAN, WAN, Wireless
Brauche Hilfe: Mit (schnellem) WLAN Strecke überbrücken (23)

Frage von pierrehansen zum Thema LAN, WAN, Wireless ...

Basic
Programmierung von Windows Programmen (10)

Frage von Ghost108 zum Thema Basic ...