GROUP BY Anfängerfrage

Wirbelrohr

Neuer Benutzer
Beiträge
4
Servus :)

Bin neu hier und wollte mich ein bisschen in SQL einarbeiten, um
unsere Probleme in der Firma durch kleine Lösungen zu eleminieren.
Wir bekommen zwar eine Filemakerlösung, die allerdings erst mal
wachsen muss und nicht alles auf einmal in Angriff nehmen kann.
So nun zu meinem Problem:
Ich möchte gerne für unser Lager Mindestbestandsmengen mit einer
Excel-Tabelle überwachen. Quasi einfach nur Lagerbestand-Soll mit
Lagerbestand-Ist vergleichen. ODBC und rausfiltern der unerwünschten
Einträge funktioniert soweit. Jetzt hab ich allerdings das Problem, dass Waren
an mehreren verschiedenen Lagerorten sein können. Jetzt muss das ganze
irgendwie auf eine Gesamtsumme reduziert werden, da mir für den Mindestbestand
der Lagerort egal ist bzw. ich das mit Excel mit einer Zeile viel leichter handlen kann.

Hoffe das Bild reicht um mein Problem noch genauer darzustellen.
Denke, dass dies mit dem GROUP BY Befehl funktionieren sollte.
Leider krieg ich das ganze noch nicht wirklich gebacken und bräuchte ein bisschen Starthilfe.

Vielen Dank schonmal im vorraus für jede Hilfe, die mir beim reinarbeiten hilft.

Grüsse

Stefan


SELECT LAGER.ARTNR, LAGER.MENGE, LAGER.LAGERPLATZ
FROM WCADM.ARTIKEL ARTIKEL, WCADM.LAGER LAGER
WHERE ARTIKEL.ARTNR = LAGER.ARTNR AND ((LAGER.LAGERPLATZ<>'SPERRLAGER'))
ORDER BY LAGER.ARTNR
 

Anhänge

  • Mindestbestand.jpg
    Mindestbestand.jpg
    128 KB · Aufrufe: 3
Werbung:
Du solltest mit expliziten Joins arbeiten, das habe ich mal angepasst. Außerdem GROUP BY eingefügt:
Code:
SELECT    LAGER.ARTNR,
        sum(LAGER.MENGE) AS MENGE
FROM    WCADM.ARTIKEL ARTIKEL
INNER JOIN WCADM.LAGER LAGER
ON        ARTIKEL.ARTNR = LAGER.ARTNR
WHERE    LAGER.LAGERPLATZ <> 'SPERRLAGER'
GROUP BY LAGER.ARTNR
ORDER BY LAGER.ARTNR
 
Vielen Dank :)
Jetzt hätte ich noch eine Frage. Wenn jetzt noch mehr Spalten, wie z.B. Artikelbezeichnung dazu kommt,
wie schaut dann der Code aus irgendwie bekomme ich immer Fehlermeldungen :(

SELECT LAGER.ARTNR, LAGER.MENGE, ARTIKEL.MATCHCODE, ARTIKEL.TEXT
FROM WCADM.ARTIKEL ARTIKEL, WCADM.LAGER LAGER
WHERE ARTIKEL.ARTNR = LAGER.ARTNR AND ((LAGER.LAGERPLATZ<>'SPERRLAGER'))

So funktionierts auf jeden Fall. Leider ohne sum.
 
Werbung:
Jede Spalte die ausgegeben werden soll muss entweder aggregiert werden (z.B. über sum()-Funktion) oder im GROUP BY aufgeführt werden. Ist nicht schwer, solltest du mal testen.
 
Zurück
Oben