SELECT Problem :-(
Geizhals » Forum » Programmierung » SELECT Problem :-( (5 Beiträge, 179 Mal gelesen) Top-100 | Fresh-100
Du bist nicht angemeldet. [ Login/Registrieren ]
SELECT Problem :-(
06.08.2007, 15:04:39
Hi alle, Im speziellen SQL Gurus :-) ! ich habe folgende 2 Tabellen

Bestellungen:

Teile_Nr       Bestell_Nr     Eingang          Zeile
96076514     44197270           3            1788
96076514     44198034           6            1785
96076514     44198042           5            1786
96076514     44198570           4            1787


Auftraege:

Teile_Nr       Auftrag_Nr    Abgang         Zeile
96076514     72073577           1           1782
96076514     72073578           2           1781
96076514     72073581           3           1780
96076514     72073721           4           1779

und ene Abfrage

Bestellung-Auftrag

die folgendes sql-statement beinhaltet:

SELECT Auftraege.Teile_Nr, Auftraege.Auftrag_Nr,Auftraege.Zeile  AS A_Zeile, max(Bestellungen.Zeile) AS B_Zeile
FROM Auftraege LEFT JOIN Bestellungen ON (Auftraege.Teile_Nr=Bestellungen.Teile_Nr) AND (Auftraege.Abgang<=Bestellungen.Eingang)
GROUP BY Auftraege.Teile_Nr, Auftraege.Auftrag_Nr,Auftraege.Zeile

und folgendes ergebnis liefert

Teile_Nr     Auftrag_Nr      A_Zeile       B_Zeile
96076514    72073721      1779          1787
96076514    72073581      1780          1788
96076514    72073578      1781          1788
96076514    72073577      1782          1788

Ziel waere, durch die "Bestellung-Auftrag" abfrage zur A-Zeile des auftrages genau eine passende B-Zeile der Bestellung zu finden, die werte im "Zeile" feld gibt genau 1x (sind fortlaufende zeilennummern, die aus einem xls-sheet stammen).

Das ganze ist teil einer bestehenden Access DB, die angeblich schon mal funktioniert hat... MEINER meinung kann man das aber gar nicht loesen..(zumindest ich mit meinem derzeitigen Wissensstand nicht)...wie sollte ich denn die datensaetze zusammenfinden ?

Hat irgendjemand eine Idee ?

lg

Andreas

Antworten PM Übersicht Chronologisch
 
Melden nicht möglich
.
Re: SELECT Problem :-(
06.08.2007, 16:03:29
ihr habt ein eigenartiges DB-System ...

ich finds komisch, weil du Bestellung mit Auftrag über eine Teile-Nr joinst ... normalerweise müsste das über eine einheitliche ID gehen ...

da jedoch die Auftrag_Zeile einen komplett anderen Inhalt als die Bestellung_Zeile hat, kannst du hier nicht joinen ...

btw. zu dein einzelnen Teile_Nr. können sicher auch mehere Aufträge bestehen, darum ist das  group by auch wieder fehl am Platz ...

max(Bestellungen.Zeile) AS B_Zeile


damit bekommst du ja nur einen Wert zurück - und zwar welcher der höchste Eintrag in B_Zeile ist ... imho auch unverständlich!

edit

wenn du wissen willst, welche Auftrag zu welcher Bestellung gehört, müsstest du über eine einheitliche ID joinen ... denn dann kannst du sagen

Auftrag xx mit ID 1 gehört zu Bestellung yy mit ID 1

aber da - wie gesagt - die Teile_Nr. bei mehreren Aufträgen/Bestellungen vorhanden sein kann (denke ich halt mal) kannst du hier nicht einfach joinen ...

edit 2

so würds funktionieren, wenn ihr a bissl a Ordnung hättets ;)

select b.bestell_nr, a.auftrag_nr, b.zeile as B_Zeile, a.zeile as A_Zeile from Bestellungen b, Auftraege a where a.id=b.id

da kannst natürlich die Teile_Nr auch noch dran hängen, aber dann hast wahrscheinlich zu einzelnen Aufträgen mehrere Einträge, da eure Kunden sicher mehr als nur ein Teil gleichzeitig bestellen dürfen ;)


my car @ Spritmonitor.de my car @ spritmonitor



06.08.2007, 16:40 Uhr - Editiert von -Transformer2K-, alte Version: hier
Antworten PM Übersicht Chronologisch Zum Vorgänger
 
Melden nicht möglich
 

Dieses Forum ist eine frei zugängliche Diskussionsplattform.
Der Betreiber übernimmt keine Verantwortung für den Inhalt der Beiträge und behält sich das Recht vor, Beiträge mit rechtswidrigem oder anstößigem Inhalt zu löschen.
Datenschutzerklärung