Announcement

Collapse
No announcement yet.

SQL Abfrage, Sub Query oder Inner Join Hilfe

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

  • SQL Abfrage, Sub Query oder Inner Join Hilfe

    Hallo Zusammen,
    bin neu hier *in die Runde wink*

    Also ich möchte eine jährliche Auswertung der monatlichen Umsätze pro Jahr und Kunde,
    aufgeteilt in Warengruppen.

    Meine Abfrage ist:

    Wähle alle Datensätze wo:
    1. die Kundennummer (42) vorkommt
    2. das Jahr (2008) vorkommt
    3. die Kategorie 001 ist
    4. Gruppiere die Datensätze und bilde Summen pro Monat

    Die zweite Anweisung:
    Wähle alle Datensätze wo und zeig Bezeichnung:
    1. die Typ-Nr eine der folgenden Zahlen ist (0, 42, 132, 48)
    2. schließe Datensätze aus die Typ = 0 haben.


    Ich versuche verzweifelt diese beiden SQL-Abfragen
    zu einer zusammen zufassen.

    Ich dachte mir das man dieses mit einer Sub-Query lösen
    könnte, allerdings weiß ich nicht wie ich die Ergebnisspalte
    (A.Typ = W.Typ) setzen kann, gemäß diesen Beispiel.

    Oder hat von Euch einer eine Idee?

    Grüße,
    Crazy =)

    Code:
    Code:
     select A.TypNr, 
     Sum(K.Umsatz01) as UMS1, Sum(A.Umsatz02) as UMS2,
     Sum(A.Umsatz03) as UMS3, Sum(A.Umsatz04) as UMS4, 
     Sum(A.Umsatz05) as UMS5, Sum(A.Umsatz06) as UMS6,
     Sum(A.Umsatz07) as UMS7, Sum(A.Umsatz08) as UMS8,
     Sum(A.Umsatz09) as UMS9, Sum(A.Umsatz10) as UMS10, 
     Sum(A.Umsatz11) as UMS11, Sum(A.Umsatz12) as UMS12
     from Artikel as A
     where A.Kategorie = 001 and A.Kundennummer = 42 
     and A.Jahr = 2008 
     group by A.TypNr
    Code:
    select distinct W.Typ, W.Bezeichung 
    from Warengruppe as W
    where W.Typ IN (0, 42, 132, 48)  and  // werte sind eingesetzt aus dem Ergebnis.
    W.Typ > 0       //*
    order by W.Typ
    * W.Typ darf nicht 0 (<--null) sein, daruter sind Ergebnisse wie:
    "Keine Kategorie"
    "keine Kategorie"
    "Keine kategohrie"
    "nix"
    "nichts"
    "Nichts



    Wie gesagt bei 0 kommt zu viel "Datenmüll" raus, die Abfrage an sich
    ist OK und funktioniert. Aus meiner Sicht der Weg die dynamisch zu
    halten und keinen Müll zu lesen.

  • #2
    Hallo,

    wenn Du A.TypNr = W.Typ setzen willst, dann tu es doch einfach:

    Code:
    select A.TypNr, W.Bezeichung
     Sum(K.Umsatz01) as UMS1, Sum(A.Umsatz02) as UMS2,
     Sum(A.Umsatz03) as UMS3, Sum(A.Umsatz04) as UMS4, 
     Sum(A.Umsatz05) as UMS5, Sum(A.Umsatz06) as UMS6,
     Sum(A.Umsatz07) as UMS7, Sum(A.Umsatz08) as UMS8,
     Sum(A.Umsatz09) as UMS9, Sum(A.Umsatz10) as UMS10, 
     Sum(A.Umsatz11) as UMS11, Sum(A.Umsatz12) as UMS12
     from Artikel as A, Warengruppe as W
     where A.Kategorie = 001 and A.Kundennummer = 42 
     and A.Jahr = 2008 
    and A.TypNr = W.Typ
    and A.TypNr IN (42, 132, 48)
     group by A.TypNr, W.Bezeichung
    order by A.TypNr
    ;
    Wenn Du den Typ = 0 nicht brauchst - lass ihn direkt in der in-Bedingung weg.

    Gruß
    Uschi
    Gruß

    Comment

    Working...
    X