[MySQL 4.1] bestimmte Tabellenausgabe

dow

Lieutenant
Registriert
Sep. 2002
Beiträge
732
Hallo,

ich habe eine Tabelle "hersteller_tabelle" mit folgenden Daten:

Name, Preiscode, Marge
A,,1.2
B,,1.2
B,X12,1.4
B,X13,1.6

PK ist dabei (Name,Preiscode);

Jetzt möchte ich einer Ausgabetabelle folgendes Ergebnis bekommen.

Name, Marge ohne Preiscode, Preiscode existiert
A,1.2,0
B,1.2,1

Das heißt er soll mir sagen für welche Hersteller Preiscodes existieren aber die Marge von der Zeile ohne Preiscode ausgeben.
Ich stelle mich gerade zu blöd an.

Habe erst überlegt mit DISTINCT von allen Herstellern mit Preiscode die jenigen ohne Code abzuziehen und dann mit UNION wieder die mit Preiscode exists dazu zu geben nur habe ich dann bei genau diesen die falsche Marge.

Ich brauche also Name und Margen aus Tabelle eins mit den Ergebnissen ohne Preiscode und irgendeinen Preiscode (bzw. eine 1 für exisitiert (IF)) aus Tabelle 2 mit den Ergebnissen mit Preiscode in welcher aber nicht alle Produkte drin sind.
Würde dabei auf irgendein join statement tippen allerdings ist mir das passende bis jetzt noch nicht begegnet.

Jemand eine Idee dazu, mein Kopf raucht schon :).
 
Zuletzt bearbeitet:
Dein Problem läßt sich auf folgende Aussage reduzieren:

ermittle aus der Tabelle hersteller_tabelle die Spalten Name und Marge aller Datensätze, deren Spalte Preiscode leer ist sowie einen Flag, ob es Datensätze mit dem selben Wert für Name gibt, deren Spalte Preiscode nicht leer ist:

Code:
   SELECT DISTINCT
          a.Name,
          a.Marge,
          ISNULL(b.Name)
     FROM hersteller_tabelle AS a
LEFT JOIN hersteller_tabelle AS b
       ON a.Name = b.Name
      AND b.Preiscode <> ''
    WHERE a.Preiscode = ''

greetings, Keita
 
Zurück
Oben