Petermann: Unterabfragen oder eine Abfrage auf andere Abfrage anwenden

Hallo,

ich habe eine MySQL DB mit 2 Tabellen, eine Tabelle Kunde und eine Tabelle Auftrag. Nun möchte ich folgendes Ergebnis mit PHP/MySQL realisieren:

Kunde    Umsatz 2004     Umsatz 2005
A        1000            2000
B        1200            2100
...      ...             ...

Ich dachte mir, dass ich zunächst alle Kunden abfrage und dann eine Abfrage erstelle, die für jeden Kunden den Umsatz anzeigt.
Kann man inzwischen Unterabfragen mit MySQL machen oder ist es besser, dies mit einer Schleife zu realisieren? Oder was ganz anderes? :)

Bin Anfänger und für jede Hilfe dankbar! Am besten Tutorial mit Erklärung.

Peter

  1. Hallo Peter,

    ich habe eine MySQL

    die wichtigste Angabe, wenn es um MySQL und seine Fähigkeiten geht, hast Du vergessen: die Versionsangabe.

    DB mit 2 Tabellen, eine Tabelle Kunde und eine Tabelle Auftrag. Nun möchte ich folgendes Ergebnis mit PHP/MySQL realisieren:

    Kunde    Umsatz 2004     Umsatz 2005
    A        1000            2000
    B        1200            2100
    ...      ...             ...

    hehe, eine typische Kreuztabellenabfrage. Hättest Du Microsoft Access, dann wäre das gar kein Problem. Jet-SQL unterstützt sowas von Haus aus.

    Wie Du das mit MySQL hinkriegst, das steht im ersten Benutzerkommentar auf http://dev.mysql.com/doc/refman/5.0/en/select.html.

    Kann man inzwischen Unterabfragen mit MySQL machen

    Ja kann man, wenn Deine MySQL-Version >= 4.1 ist.

    Bin Anfänger und für jede Hilfe dankbar! Am besten Tutorial mit Erklärung.

    Lesetipp zu Joins:
    Einführung Joins
    Fortgeschrittene Joins

    Freundliche Grüße

    Vinzenz

  2. Hi,

    ich habe eine MySQL DB mit 2 Tabellen, eine Tabelle Kunde und eine Tabelle Auftrag. Nun möchte ich folgendes Ergebnis mit PHP/MySQL realisieren:

    ich nehme mal an, "Umsatz 2004" und "Umsatz 2005" sind abhängig vom Inhalt der Datenbank, nicht von dessen Struktur.

    Ich dachte mir, dass ich zunächst alle Kunden abfrage und dann eine Abfrage erstelle, die für jeden Kunden den Umsatz anzeigt.

    Je weniger Requests zu fremden Servern gemacht werden, desto besser. SQL-Abfragen in Schleifen sind _ganz_ böse.

    Kann man inzwischen Unterabfragen mit MySQL machen

    Je nach Deiner Definition von "inzwischen": Ja.

    oder ist es besser, dies mit einer Schleife zu realisieren?

    "Neinneinneinneinnein!"
    -- Bit, Tron

    Oder was ganz anderes? :)

    Erlange mit SQL etwa Folgendes:

    Kunde  Jahr  Umsatz
    A      2004  1000
    A      2005  2000
    B      2004  [...]

    und formiere es mittels PHP zu dem von Dir gewünschten Resultat.

    Am besten Tutorial mit Erklärung.

    Ich werde wohl nie verstehen, wieso für jedes Spezialproblem immer gleich ein Tutorial erwartet wird.

    Cheatah

    --
    X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
    X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
    X-Will-Answer-Email: No
    X-Please-Search-Archive-First: Absolutely Yes