Komplizierte Abfrage

Florian3

Grünschnabel
Hallo,
vielleicht kann mir hier jemand helfen.
Ausgangssituation: 2 Tabellen.
In der 1. ist gespeichert ein Produktname mit der dazugehörigen Kategorie und noch einige andere Daten.
In der 2. Tabelle befindet sich ein Preis.
Beide Tabellen sind verknüpft mit einer Produktid.
Es existiert nicht zwangsläufig ein Eintrag in der 2. Tabelle, d.h man muss irgendwie mit einem JOIN arbeiten.
Was ich nun haben möchte ist das billigste Produkt pro Produktkategorie mit den dazugehörigen Daten aus Tabelle 1.
Ist dies möglich?
Gruss
Flo
 
Ich bin der Meinung, dass müsste funktionieren.
Habs aber nicht getestet und übernehme keine Garantie.

Würde mich über Erfolgs- und/oder Fehlermeldungen freuen.

cu shutdown

Code:
select category, produkt, MIN(preis)
from tabelle1
left join tabelle2 on tabelle1.produktid = tabelle2.produktid
group by category, produkt;
 
Danke für die Antworten.
Das Problem ist das der Preis in der 2. tabelle ist.die Kategorie und das Produkt in der 1.Tabelle.
 
Florian3 hat gesagt.:
Danke für die Antworten.
Das Problem ist das der Preis in der 2. tabelle ist.die Kategorie und das Produkt in der 1.Tabelle.
Das Problem sollte mit dem Query von Shutdown gelöst sein.
Aber wenn ich Deine einleitende Problembeschreibung richtig verstanden habe, willst Du ja nur nach der Kategorie gruppieren und nicht nach dem Produkt.
Daher ein Versuch:
Code:
SELECT 
prod1.name,
prei1.preis 
FROM produkte AS prod1
JOIN preis AS prei1
    ON (prod1.id=prei1.produktID)
GROUP BY prod1.kategorie
WHERE prei1.preis IN (
    SELECT 
    MIN(prei2.preis)
        FROM produkte AS prod2
        JOIN preis AS prei2
            ON (prod2.id=prei2.produktID)
        GROUP BY prod2.kategorie
        WHERE prod1.id=prod2.id
)
 
Ich komm da irgendwie nicht weiter. *verzweifel*
Ich versuch es mal etwas ausführlicher.
Die erste Tabelle beinhaltet Daten von Hotels (Name,Region).
In dieser Tabelle gibt es keine Preise.
Ein Hotel aus dieser Tabelle kann unter anderem als Pauschalreise angeboten werden, muss aber nicht.Daher der Join.
Pauschalreise ist die 2. Tabelle.Dort steht, wenn es eine Pauschalreise zum Hotel gibt ein Datensatz mit Preis drin.In der Tabelle Pauschalreise gibt es nun zb 10 Datensätze (verknüpft mit einer hotelid).
Nun möchte ich eine Abfrage formulieren die mir jeweils die billigste Pauschalreise pro Region (Region steht in der ersten Tabelle) ausgibt.
Ist vielleicht einfacher ich erweitere die 2. Tabelle um ein DB-Feld Region.Das wollt ich aber sparen.
 
Dann gruppierst Du halt nicht nach der Kategorie, sondern nach der Region oder nach beidem.

Setze doch erstmal in die geposteten Querys Deine Tabellen- und Feldnamen ein und probiere aus, was passierst.
Die Fehlermeldungen kannst Du dann hier posten.
Oder Du schreibst ein kurzes Beispiel, welche Ausgabe kommen müsste und welche Ausgabe erschienen ist.

Du kannst ja schlecht erwarten, dass wir Deine Tabelle nachbauen, mit Datensätzen füllen und die Queries lokal testen, bis sie perfekt sind.

Da sind wir schon auf ein bisschen Feedback bezüglich Fehlermeldungen angewiesen.

Gruß hpvw
 
Zurück