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

Spezielle Abfrage über zwei Tabellen

Frage Entwicklung Datenbanken

Mitglied: michael-s

michael-s (Level 1) - Jetzt verbinden

22.12.2008, aktualisiert 17:06 Uhr, 4115 Aufrufe, 6 Kommentare

An alle Datenbankprofis,

ich habe folgende Tabellen

Artikel mit den Spalten No,Name,Kategorie1,Kategorie2,Kategorie3
Kategorieren mit den Spalten No,Kat1,Kat2,Kat3,Bezeichnung

ich möchte ein Abfrage über beide Tabellen machen und die Kategorie1 bis Kategorie3 mit der jeweiligen Bezeichnung aus der Kategorieren-Tabelle anzeigen.

Hat jemand dafür eine Idee. Ist Ms SQL Server 2005.
Achja die Tabellen lassen sich leider nicht abändern.

Gruß
Michael-s
Mitglied: pitti08
22.12.2008 um 17:43 Uhr
Welches sind die Schlüsselfelder für die Verknüpfung?
Ok, ersetzen wir mal Unwissenheit durch Annahme. Das ist immer der erste Schritt in Richtung Fehler.
Wir nehmen an: Artikel.Kategorie1..3 sind mit Kategorieren.No verknüpft.
Dann bräuchten wir hier nur noch 3 joins und fertig.
Syntax bitte im Handbuch unter select...join nachschlagen.
Gruß Pitti
Bitte warten ..
Mitglied: michael-s
22.12.2008 um 19:09 Uhr
leider nicht Kategorie 1..3 sind mit Kat 1..3 verknüpft, sonst wäre es über joins lösbar... hab ich auch schon probiert.

Die Schlüsselfelder, sind die No und kat 1 bis 3.

Hat noch jemand eine Idee?
Bitte warten ..
Mitglied: Biber
22.12.2008 um 19:39 Uhr
Moin michael-s,

leider nicht Kategorie 1..3 sind mit Kat 1..3 verknüpft, sonst wäre es über joins lösbar... [...}
Die Schlüsselfelder, sind die No und kat 1 bis 3.

Kannst Du das bitte mal für ältere/phantasieärmere Mitglieder wie mich mal an einem Datensatzbeispiel beschreiben?

Grüße und danke
Biber
Bitte warten ..
Mitglied: pitti08
22.12.2008 um 19:43 Uhr
nochmal zum Verständnis:

select * from artikel
left join kategorie on artikel.Kategorie1=kategorie.Kat1, artikel.Kategrorie2=kategorie.Kat2, artikel.Kategorie3=kategorie.Kat3

funktioniert dann deshalb nicht, weil artikel.kategorie1 in kategorie.kat3 oder in kategorie.kat2 oder kategorie.kat1 stehen kann?
Bitte warten ..
Mitglied: michael-s
22.12.2008 um 21:27 Uhr
Zum Beispiel:

in der Artikeltabelle sind folgende infos:
        No:         123                       
        Name:       test                     
        Kategorie1: 10.00.00                  
        Kategorie2: 10.10.00                  
        Kategorie3: 10.10.10 
 
Kategorientabelle: 
        no       kat1       kat2      kat3      bezeichnung 
        1        10.00.00                       Testname1 
        2        10.00.00   10.10.00            Testname2 
        3        10.00.00   10.10.00  10.10.10  Testname3
Ich möchte eine Antwort vom SQL die so aussieht:

test, Testname1, Testname2, Testname3

Vielleicht hilft es bei der Lösungsfindung?

Gruß


[Edit Biber: Als < code > formatiert /]
Bitte warten ..
Mitglied: Biber
22.12.2008 um 21:58 Uhr
Ähm ja...

ich gehe davon aus, dass ein Hauptziel des Tabellendesigns die Sicherstellung der Nichtinterpretierbarkeit bei Industriespionage gewesen ist.
Ziel erreicht.

01.
SELECT Artikel.Name,  
02.
ka11.Bezeichnung as Kat1Bez,  
03.
kat12.Bezeichnung as Kat2Bez, 
04.
kat123.Bezeichnung as Kat3Bez 
05.
FROM Artikel,  
06.
kategorie as Kat1, 
07.
kategorie as Kat12, 
08.
kategorie as Kat123, 
09.
Where  
10.
    Artikel.kategorie1 = kat1.kat1  
11.
and artikel.kategorie2 <> kat1.kat2  
12.
and artikel.kategorie3 <>kat1.kat3 
13.
AND     Artikel.kategorie1 = kat12.kat1  
14.
and artikel.kategorie2 = kat12.kat2  
15.
and artikel.kategorie3 <>kat12.kat3 
16.
AND     Artikel.kategorie1 = kat123.kat1  
17.
and artikel.kategorie2 = kat123.kat2  
18.
and artikel.kategorie3 = kat123.kat3
Falls mal eine der Kategorie-Bezeichnungen nicht referenziert werden kann, fehlt der ganze Satz ( ein LEFT JOIN ist ja hier kaum möglich).

P.S. Ich weiß nicht, wer das designed hat oder gegen wen, aber - bei dieser Tabellenstruktur kamen zwei Erinnerungen aus meiner Jugend wieder hoch:
  • Ja, auch wir hatten früher einen "Legalize it!"-Aufkleber auf der WG-Tür
  • Gerüchten zufolge werden auch heute noch, vor allem im ländlichen Raum, Leute aus weit geringeren Anlässen gepfählt oder gevierteilt.

Auch da bin ich eigentlich tolerant.

Grüße und viel Glück
Biber
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(8)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
Datenbanken
gelöst Schleifen in SQL-Abfrage bei 2 Tabellen (2)

Frage von Aximand zum Thema Datenbanken ...

C und C++
gelöst IF Abfrage funktioniert nicht mehr (2)

Frage von pablovic zum Thema C und C ...

Datenbanken
gelöst SQL-Abfrage - DISTINCT - letztes Datum (3)

Frage von emeriks zum Thema Datenbanken ...

Datenbanken
gelöst Row Number bei einer Abfrage sinnvoll einsetzen (1)

Frage von Aximand zum Thema Datenbanken ...

Heiß diskutierte Inhalte
Microsoft
Ordner mit LW-Buchstaben versehen und benennen (21)

Frage von Xaero1982 zum Thema Microsoft ...

Netzwerkmanagement
gelöst Anregungen, kleiner Betrieb, IT-Umgebung (18)

Frage von Unwichtig zum Thema Netzwerkmanagement ...

Windows Update
Treiberinstallation durch Windows Update läßt sich nicht verhindern (17)

Frage von liquidbase zum Thema Windows Update ...