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, 1134 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 ..
Neuester Wissensbeitrag
Ähnliche Inhalte
Datenbanken
2 SQL Abfragen verbinden

Frage von cuxmini zum Thema Datenbanken ...

Datenbanken
SQL - Abfragen Nachfrage (2)

Frage von PronMaster zum Thema Datenbanken ...

Switche und Hubs
gelöst 2 Switch von HP miteinander verbinden (23)

Frage von Fitzel69 zum Thema Switche und Hubs ...

Monitoring
gelöst Nagios Plugin Datum in Dateiname abfragen (2)

Frage von itazubii zum Thema Monitoring ...

Heiß diskutierte Inhalte
Viren und Trojaner
gelöst Wie werde ich den Mist "fanli90" wieder los? (17)

Frage von Taumel zum Thema Viren und Trojaner ...

Switche und Hubs
LAG zwischen Cisco SG300 und Dlink DGS1100 herstellen - wie? (15)

Frage von White-Rabbit2 zum Thema Switche und Hubs ...

Hardware
Lenovo Yoga 500 über angeschlossene USB Tastatur booten (13)

Frage von thomasreischer zum Thema Hardware ...

CPU, RAM, Mainboards
Hardware Fragen (12)

Frage von xaver-2 zum Thema CPU, RAM, Mainboards ...