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

SQL Left outer Join Problem

Mitglied: CouchCoach

CouchCoach (Level 1) - Jetzt verbinden

24.11.2005, aktualisiert 26.11.2005, 8956 Aufrufe, 5 Kommentare

Es werden nicht alle Inhalte der linken Tablle beim left outer join zurückgegeben

Tach NG, need education!!!

Habe in einer SQL (M$ SQL Server) Abfrage folgendes Problem.

Bei folgendem Join werden nicht alle Inhalte der linken Tabelle zurückgegeben.

select tblKonten.Konto,
tblKonten.Bezeichnung,
sum(viewAusgaben.KostenA) as KostA,
sum(viewAusgaben.KostenB) as KostB
from tblKonten
left outer join viewAusgaben
on tblKonten.Konto = viewAusgaben.Konto
group by tblKonten.Konto, tblKonten.Bezeichnung
order by tblKonten.Konto, tblKonten.Bezeichnung

soweit klappt alles!!! aber wenn ich noch eine Einschränkung auf den Zeitraum in der viewAusgaben machen werden nicht mehr alle Inhalte aus der linken Tabelle tblKonten zurückgegeben

where viewAusgaben.Monat >= 1 -- hier werden die Werte normalerweise per Variable an die procedure übergeben
and viewAusgaben.Monat <= 12

Weiß jemand wieso durch die where Einschränkung nicht mehr der komplette Inhalt aus der tblKonten (linke Tabelle) zurückgegeben wird?

Grüße und Danke für Lösungen und Lernhilfe

Kai
Mitglied: 16640
24.11.2005 um 09:32 Uhr
Hast Du Dir schon mal den Ablaufplan angeschaut?
Werden in der View auch schon Joins verwendet?

Gruß
dba
Bitte warten ..
Mitglied: CouchCoach
24.11.2005 um 10:11 Uhr
Ja in der View gibt es ebenfalls einen Join. Kurioser Weise mit den gleichen beiden Tabellen wie in der proc.
Allerdings muß ich das so machen da ich am Ende eine Ausgabe in der Form einer Kreuztabelle erhalte.
Vielleicht gibt es hierfür ja auch einen anderen Weg?!?

Den AP werde ich mir gleich noch einmal anschauen und werden dazu dann noch einmal posten.

Grüße Kai
Bitte warten ..
Mitglied: MadMax
26.11.2005 um 03:22 Uhr
Hallo Kai,

das liegt daran, daß die Auswertung des Zeitraums erst nach dem Outer Join erfolgt. Der Outer Join wird also korrekt ausgeführt, aber anschließend fliegen alle Datensätze raus, die das Monatskriterium nicht erfüllen. Hierzu zählen natürlich auch alle Konten, die gar keinen Datensatz in viewAusgaben haben, weil viewAusgaben.Monat in dem Fall nämlich NULL ist.

Abhilfe schafft man dadurch, daß die Einschränkung auf den Zeitraum in den Outer Join aufgenommen wird. Dann wird zunächst die Monatseinschränkung auf viewAusgaben ausgeführt und erst dann die übrigen Datensätze per Outer Join den Konten zugeordnet. Der passende SQL-Befehl lautet:

select tblKonten.Konto,
tblKonten.Bezeichnung,
sum(viewAusgaben.KostenA) as KostA,
sum(viewAusgaben.KostenB) as KostB
from tblKonten
left outer join viewAusgaben
on tblKonten.Konto = viewAusgaben.Konto
and (viewAusgaben.Monat >= 1 and viewAusgaben.Monat <= 12)
group by tblKonten.Konto, tblKonten.Bezeichnung
order by tblKonten.Konto, tblKonten.Bezeichnung

Gruß, Mad Max
Bitte warten ..
Mitglied: CouchCoach
26.11.2005 um 12:47 Uhr
Many Thanx MAD MAX,

ist ja eigentlich logisch, aber manchmal seh ich halt den Wald vor lauter Bäumen nicht mehr.
Viel beeindruckender finde ich jedoch deine posting Uhrzeit!!! Solche Mitarbeiter möchte ich auch bei mir haben, das nennt man Einsatzbereitschaft.

Grüße und danke nochmal

Kai
Bitte warten ..
Mitglied: MadMax
26.11.2005 um 18:22 Uhr
Bitteschön.

Jeder hat halt so seine Zeit, wahrscheinlich hätte ich um 9 Uhr das Problem auch nicht lösen können

Gruß, Mad Max
Bitte warten ..
Ähnliche Inhalte
Datenbanken
SQL LEFT JOIN in Spalten
gelöst Frage von StfnCstrDatenbanken5 Kommentare

Hallo, ich sehe mal wieder den Wald vor lauter Bäumen nicht. Ich habe 2 Tabellen Tabelle 1: PK, Vorname, ...

Datenbanken
SQL - JOIN zeigt mehrfaches an
Frage von MiStDatenbanken9 Kommentare

Guten Morgen, ich habe mich frisch mit dem Thema SQL "angefreundet". Jetzt habe ich aber irgendwie ein Problem. Und ...

Datenbanken

SQL: Anzahl von Datensätzen bei JOIN

Frage von BirdyBDatenbanken2 Kommentare

Hallo zusammen, ich stehe gerade etwas auf dem Schlauch und hoffe auf eure Hilfe. Gegeben sind in unserer SQL ...

Datenbanken

SQL Join Felder nicht editierbar

gelöst Frage von grill-itDatenbanken6 Kommentare

Hallo zusammen, ich habe eine (My)SQL Abfrage über zwei Tabellen formuliert. Allerdings habe ich jetzt das Problem, dass ich ...

Neue Wissensbeiträge
Peripheriegeräte
Unterschrank für HP Drucker
Tipp von NixVerstehen vor 14 StundenPeripheriegeräte1 Kommentar

Als kurzen Freitags-Tipp möchte ich gerne meinen neuen Drucker-Unterschrank Modell Amica KS 15423W vorstellen. Das Gerät eignet sich hervorragend ...

Windows 10
Windows 10 - Probleme mit Point-And-Print
Tipp von emeriks vor 1 TagWindows 103 Kommentare

Hi, wir kämpfen z.Z. mit einigen Druckertreibern, welche unter Win10 beim Verbinden eines Druckers von Printserver mit dem Dialog ...

Windows 10

Windows 10 1803 - Ihr Roamingbenutzerprofil wurde nicht vollständig synchronisiert

Anleitung von Deepsys vor 1 TagWindows 101 Kommentar

Bei allen Windows 10 1803 PCs traten Probleme mit den Servergespeicherten Profilen auf. Das Abmelden dauerte sehr lange und ...

Exchange Server
Exchange - Fehler mit 2018-07 Sicherheitsupdate
Tipp von ArnoNymous vor 3 TagenExchange Server7 Kommentare

Hallo, es gibt mal wieder Freude mit den MS-Updates. KB4338814 führt dazu, dass der Exchange keine Mails mehr zustellt. ...

Heiß diskutierte Inhalte
Humor (lol)
Freitagsfrage: Was tun, wenn der Admin der DAU ist?
Frage von VoiperHumor (lol)29 Kommentare

Moin Zusammen, Eine nicht ganz ernst gemeinte Frage an die Außendienstler unter uns. Zusammenfassung: Ein Inhouse Admin ruft bei ...

Windows Server
W2K16 Essentials: keine Namensauflösung nach der Einrichtung DNS + AD DS
Frage von Ben-WittWindows Server22 Kommentare

Ich versuche bereits seit ca. 4 Wochen einen Server 2016 "Essentials" richtig zu installieren. An diesem Server möchte ich ...

Exchange Server
Exchange Backup 10 Jahre Aufbewahrung
Frage von arccosExchange Server20 Kommentare

Hallo zusammen. Aktuell beschäftigen mich ein paar Fragen zum Thema Office365/ Exchange. 1.10 Jahre Aufbewahrungspflicht sicherstellen 2.Kann man als ...

Windows Netzwerk
LTE Modul - Kein Internet trotz Verbindung
Frage von killtecWindows Netzwerk18 Kommentare

Hallo, ich habe hier ein Dell 7390 2-in-1 mit W10 Pro wo ich nachträglich eine LTE-Karte (Original Dell DW5811e ...