Announcement

Collapse
No announcement yet.

Mehrere Abfragen verschachteln...

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Mehrere Abfragen verschachteln...

    Guten Morgen,

    ich bin Anfänger im Bereich SQL und muss eine (für mich) relativ komplizierte Abfrage schreiben. Es geht um folgendes:

    Es soll eine Liste von Kunden ausgegeben werden in der folgende Daten enthalten sind:
    - KdNr
    - Anzahl Aufträge 2011
    - Umsatz 2011
    - Anzahl Aufträge 2012
    - Umsatz 2012

    Die Daten müssen immer Tagesaktuell angezeigt werden. Der SQL-Befehl wird in unserem WWS in einer "Auswertung" gespeichert und beim Aufrufen dieses Auswertung wird
    immer der hinterlegte SQL-Befehl ausgeführt.

    Die Datenbankstruktur sieht folgendermaßen aus:

    Tabelle Kunden:
    KdNr

    Tabelle Vorgaenge:
    Nummer
    Datum
    Betrag

    Ich habe schon verschiedene Methoden probiert, allerdings komme ich jetzt nicht mehr weiter und hoffe auf eure Hilfe!

    Mit freundlichen Grüßen,
    Adam

  • #2
    Gibt es eine Relation zwischen den Tabellen? Aus der Auflistung der Tabellen kann ich keine erkennen.

    Comment


    • #3
      Hallo Adam,

      Das Problem solle sich durch einen einfachen Join mit Gruppierung lösen lassen.

      Welches DBMS?

      [highlight="SQL"]
      select
      k.KdNr,
      K.Name,
      sum( case when extract( year from v.datum) = 2011, 1, 0) as Anzahl_2011,
      sum( case when extract( year from v.datum) = 2011, v.betrag, 0) as Umsatz_2011,
      sum( case when extract( year from v.datum) = 2012, 1, 0) as Anzahl_2012,
      sum( case when extract( year from v.datum) = 2012, v.betrag, 0) as Umsatz_2012
      from
      Vorgaenge v
      join kunden k on k.KdNr = v.Nummer
      group by
      k.KdNr, K.Name;
      [/highlight]

      Comment


      • #4
        Hallo,

        Datenbank ist DBISAM. Ich probiere jetzt mal die Abfrage von Markus aus und melde mich dann nochmal. Vielen Dank erstmal!

        beste Grüße,
        Adam

        Comment


        • #5
          Hallo,

          bekomme folgende Fehlermeldung:

          Fehler_Abfrage_1.jpg

          Comment


          • #6
            http://www.elevatesoft.com/manual?ac...opic=Functions[Highlight=SQL]SELECT
            k.KdNr,
            K.Name,
            SUM( if( EXTRACT( YEAR FROM v.datum) = 2011 then 1 else 0)) AS Anzahl_2011,
            ...
            FROM
            Vorgaenge v
            JOIN kunden k ON k.KdNr = v.Nummer
            GROUP BY
            k.KdNr, K.Name;
            [/Highlight]

            Comment


            • #7
              Super! Vielen Dank!!

              Comment

              Working...
              X