Mailinglisten-Archive |
Hallo, Thomas, Ich bringe dir erstmal deine Tabellen in Form: > Create Table Verkauft (verkauft_ID bigint AUTO_INCREMENT NOT NULL, > stueckzahl varchar(10), verkaufsdatum varchar(20), kundennr varchar(20), > einzelpreis varchar(10), PRIMARY KEY (verkauft_ID)); Sollte sein: Create Table Verkauft ( verkauft_ID BIGINT AUTO_INCREMENT NOT NULL, kunde_ID BIGINT NOT NULL, verkaufsdatum DATE, stueckzahl INT, einzelpreis FLOAT(10,4), PRIMARY KEY (verkauft_ID) ); > Create Table Kunden (vertriebspartner_ID bigint AUTO_INCREMENT NOT NULL, > firma varchar(40), plz NUMERIC(7), strasse varchar(40), tel NUMERIC(30), > kundennr varchar(40), PRIMARY KEY (vertriebspartner_ID)); Sollte sein: Create Table Kunden ( kunde_ID bigint AUTO_INCREMENT NOT NULL, vertriebspartner_ID bigint NOT NULL, kundennr varchar(40), firma varchar(40), plz NUMERIC(7), strasse varchar(40), tel NUMERIC(30), PRIMARY KEY (kunde_ID) ); > Create Table Vertriebspartner (vertriebspartner_ID bigint AUTO_INCREMENT > NOT NULL, Vname varchar(40), plz CHAR(7), strasse varchar(40), ort > varchar(40), region varchar(25), PRIMARY KEY (vertriebspartner_ID)); Kann man so lassen :) > Select Abfrage die rausgeben soll welcher Vertriebspartner den höchsten > Umsatz im Jahr gemacht hat: > > SELECT vertriebspartner.VName, sum(stueckzahl*einzelpreis) as > Verkaufssumme > FROM vertriebspartner, kunden, verkauft > WHERE verkauft.kunde_ID = kunden.kunde_ID > AND kunden.vertriebspartner_id = vertriebspartner.vertriebspartner_id > GROUP BY VName > ORDER BY Verkaufssumme DESC > Wie komme ich jetzt auf das richtige Ergebnis? > Liegt es im erstellen der Tabellen (CREATE), Im Befüllen (INSERT), In der > Select Abfrage oder vielleicht beim setzten der Primary Keys. Es liegt vor allem am schlechten DB-Design. Wenn du da Unterstuetung brauchst, ich koennte einen kleinen Nebenjob gut gebrauchen :) ciao! Kai -- Infos zur Mailingliste, zur Teilnahme und zum An- und Abmelden unter -->> http://www.4t2.com/mysql
php::bar PHP Wiki - Listenarchive