MySQL Forums
Forum List  »  German

Häufigkeit lieber in einer oder zwei Queries berechnen?
Posted by: J?rg B?chner
Date: November 14, 2011 05:07PM

Hallo,

ich habe folgende Tabelle:
CREATE TABLE lager (lagerhalter INT, ekNr INT, lagerNr CHAR(10), datum DATETIME, menge INT)

Mit folgender Query bekomme ich
a) die Einlagerungen des Vormonats und
b) den Lagerbestand am Anfang des Vormonats
SELECT lagerhalter, ekNr, lagerNr, menge AS Einlagerung, 0 AS Bestand FROM lager
WHERE menge>0 AND datum>='2011-10-01' AND datum<'2011-11-01'
UNION
SELECT lagerhalter, ekNr, lagerNr, 0 AS Einl, SUM(menge) AS Bestand, name FROM
lager WHERE datum<'2011-10-01'
GROUP BY lagerhalter, ekNr, lagerNr HAVING Einlagerung>0 OR Bestand>0
ORDER BY lagerhalter, ekNr, lagerNr;

So sieht dann ein Testergebnis aus:
+-------------+------+----------+-------+-------+
| lagerhalter | ekNr | lagerNr  | Einl  | Bstd  |
+-------------+------+----------+-------+-------+
|          44 |  745 | asdf     |     0 | 15000 |
|          44 |  745 | asdf     |  3000 |     0 |
|         200 |  122 | 007      |     0 |  7960 |
|         200 |  163 | 007      |     0 | 12720 |
|         200 |  747 | D100     | 15000 |     0 |
|         200 |  747 | D100     |  5000 |     0 |
|         296 |  747 | F200     | 20000 |     0 |
|         296 |  747 | F20001   |  8000 |     0 |
|         296 |  747 | F20002   |  2000 |     0 |
|         403 |  748 | ssd      | 17000 |     0 |
|         494 |  748 | aas      | 14000 |     0 |
|         494 |  748 | aas      | 16000 |     0 |
Jetzt muss ich noch wissen, wie oft eine Lagernr. im Vormonat vorhanden ist
(wie oft eine Ware bewegt wurde). Das kann ich natürlich mit einer neuen Query
in einer Schleife über das ResultSet von obiger Query machen. Für das erste
Tupel sähe das so aus:
SELECT COUNT(lagerNr) FROM lager WHERE lagerhalter=44 AND lagerNr='asdf' AND datum>='2011-10-01' AND datum<'2011-11-01';

Dennoch frage ich mich, ob man diesen Wert nicht auch als zusätzliche Spalte in
obigem Query einbauen kann und wie diese dann aussehen müsste.

Options: ReplyQuote




Sorry, you can't reply to this topic. It has been closed.

Content reproduced on this site is the property of the respective copyright holders. It is not reviewed in advance by Oracle and does not necessarily represent the opinion of Oracle or any other party.