phpbar.de logo

Mailinglisten-Archive

Verkaufstabelle, VIEW BAUEN

Verkaufstabelle, VIEW BAUEN

Kai Hackemesser kaha at gmx.de
Die Jul 1 18:26:10 CEST 2003


> Create Table Verkauft (stuckzahl varchar(10) NOT NULL WITH DEFAULT,
> verkaufsdatum varchar(20) NOT NULL WITH DEFAULT, Kundenr varchar(20) NOT
> NULL WITH DEFAULT, einzelpreis varchar(10) NOT NULL WITH DEFAULT, PRIMARY
> KEY (verkaufsdatum));
> 
> Create Table Kunden (firma varchar(40) NOT NULL WITH DEFAULT, plz
> NUMERIC(7)
> NOT NULL WITH DEFAULT, strasse char(40) NOT NULL WITH DEFAULT, tel
> NUMERIC(30) NOT NULL WITH DEFAULT, kundennr varchar(40) NOT NULL WITH
> DEFAULT, PRIMARY KEY (plz));
> 
> Create Table Vertriebspartner (Id bigint AUTO_INCREMENT NOT NULL WITH
> DEFAULT, Vname varchar(40) NOT NULL WITH DEFAULT, plz NUMERIC(7) NOT NULL
> WITH DEFAULT, strasse char(40) NOT NULL WITH DEFAULT, ort varchar(40) NOT
> NULL WITH DEFAULT, region varchar(25) NOT NULL WITH DEFAULT, PRIMARY KEY
> (Id));
> 
> Ist der Syntax für die Aufgabenstellung korrekt? bzw. Sind die PRIMARY
> KEYS
> richtig gesetzt? Wie geht es jetzt weiter?

Die Primary Keys erscheinen mir fuer die erste und zweite Tabelle falsch.
Ein Primary Key ist naemlich unique, d.h. du darfst keine zwei Eintraege mit
demselben Indexwert haben. Du willst sicher mehr als einen Kunden pro  PLZ :)
also setze dort auch eine ID ein. selbes fuer Verkauft, falls du mehr als
einen Verkauf pro Tag speichern willst.
In der Kundentabelle fehlt ein Foreign Key zum Vertriebspartner, also eine
ID-Spalte.
Wenn du den Vertriebspartner in die Verkauft-Tabelle mit speicherst, waere
es viel einfacher, dann koennte derselbe Kunde bei mehreren Betriebspartnern
kaufen, weniger Redundanz.

> Meine Aufgabe ist es eine View zu bauen die folgendes ausgibt...
> Welcher Vertreibspartner macht den höchsten Umsatz?
> Wieviel Produkte hat ein Vertriebspartner im Monat (z.B.) verkauft?

SELECT VName, sum(stueckzahl*einzelpreis) as Verkaufssumme
FROM Vertriebspartner, Kunden, Verkauft 
WHERE verkauft.kundennr = kunden.kundennr
AND kunden.vertriebspartner_id = vertriebspartner.vertriebspartner_id  --
fehlt noch
GROUP BY VName
ORDER BY Verkaufssumme DESC

Nimm dir den ersten Satz :)

> [Kann man die View auch ohne JOIN-Syntax erledigen, so dass die
> Aufgabenstellung jedoch immer noch erreicht wird? (mit WHERE & AND)]
> Bin ratlos, hab mich schon mit DB2 SQL programming & Tuning belesen,
> jedoch
> noch keine konkreten Schlüsse daraus gezogen?

Fuer einen Anfaenger wagst du dich schon in ziemlich tiefe Gewaesser.

ciao!
Kai

-- 
Infos zur Mailingliste, zur Teilnahme und zum An- und Abmelden unter
-->>  http://www.4t2.com/mysql 


php::bar PHP Wiki   -   Listenarchive