phpbar.de logo

Mailinglisten-Archive

Select-Abfrage

Select-Abfrage

Wolfgang Hauck wbh at euta.net
Die Jan 21 16:33:11 CET 2003


>Hi Leute,

>habe wieder einmal ein grösseres Problem am Start. Vielleicht ist es für
>jemanden von Euch kein Problem. Habe die Anordnung der phpmyadmin-Tabellen 
>unter http://www.meinlauf.de/probleme.htm zur Ansicht bereitgestellt. Also 
>ich möchte folgendes realisieren.

>1. Es sollen alle datenreihen ausgegeben werden die in Tabelle umsatz0203
>ausgegeben werden die eine bestimmte Aktionsnummer beinhalten.

Select * from umsatz0203 where aktionsnummer = deine_Aktionsnummer

>2. Er soll aus der Tabelle umsatz0203 alle ausgegebenen datensätze nach 
der
>hvnummer auflisten. jedoch jede hvnummer nur einmal anzeigen.

Select... order by hvnummer ...

Den Rest erledigst du über middleware (php, perl, asp oder sonstwas)

>3. zur ausgegebenen hvnummer sollen aus der tabelle Vertreterstamm der
>passende Nachname ausgegeben werden. danach soll anhand der kostenstelle 
aus
>der tabelle kostenstellen das jeweilige Verkaufsbüro angezeigt werden.

Geht mit LEFT JOIN

>4. In der Ausgabe sollen ebenfalls die Umsätze nach AK und NK addiert und
>getrennt ausgegeben werden. Dafür dient die Spalte art in der tabelle
>umsatz0203.

Hier heisst das Zauberwort GROUP BY

>5. Zusätzlich zum Umsatz soll er auch die Anzahl der NK und AK ausgeben,
>jedoch soll er wenn der umsatz negativ ist immer abziehen.

Dafür gibts nen IF - Konstrukt..

>Ich weiss nicht ob das überhaupt möglich ist, das ganze in eine Abfrage
>reinzupacken.

Muss doch nicht sein. Oft sind zwei Queries effektiver (performanter). Da 
du diese Sachen ja sowieso mit ner Middleware bearbeiten musst, kannst du 
das ja dort machen. Du kannst ja den Krimskrams z.B.: so reinholen:

Select a.*, b.*, c.* from vertreterstamm as a left join umsatz0203 as b on 
a.hvnummer = b.hvnummer LEFT Join kostenstellen as c on a.kostenstelle = 
c.kostenstelle...

Hier stellt sich auch die Frage warum in allen drei Tabellen das Feld 
Kostenstelle vorkommt? Das ist völlig unlogisch und führt zwangsläufig zu 
Datenredundanzproblemen (Kreisverknüpfumgen).

>Vielleicht weiss ja einer von Euch rat.

Du solltest dir mal

http://www.mysql.com/doc/en/index.html

anschauen, dort sind alle Möglichkeiten und Unmöglichkeiten von MySQL 
dokumentiert. Ohne vernüntige Datenstruktur (Abhängigkeiten [welches Feld 
kostenstelle ist nun von welchem abhängig]) kannst du auch keine konkrete 
Lösung erwarten

MfG Wolfgang

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


php::bar PHP Wiki   -   Listenarchive