Franco: Addieren, Subtrahieren, Vorzeichen wechseln usw.

Beitrag lesen

Hallo Forum,

ich habe eine (durch dedlfix und Vinzenz Hilfe) gefunden Query, die ich um 2 Punkte erweitern möchte. Leider ist der Thread schon im Archiv, weshalb ich einen neuen Thread eröffnen muß.

Ich erstelle per php eine temporäre Tabelle dieser Art:

  
CREATE TEMPORARY TABLE praefix_tmp (  
`ID` INT( 2 ) NOT NULL AUTO_INCREMENT PRIMARY KEY ,  
`Monat` VARCHAR( 10 ) NOT NULL  
) ENGINE = MYISAM ;  
  
INSERT INTO `tmp` (`ID`, `Monat`) VALUES  
(1, '2010|10'),  
(2, '2010|09'),  
(3, '2010|08'),  
(4, '2010|07'),  
(5, '2010|06');  

Danach erstelle ich eine weitere temporäre Tabelle, in die ich Daten aus anderen Tabellen hineinpacke:

  
CREATE TEMPORARY TABLE monatsdaten  
SELECT FROM_UNIXTIME(r.Timestamp, '%Y%|%m') AS ym,  
sum(b.Menge*b.Preis*  
(CASE  
WHEN b.Faktor = 'ja' THEN 1  
WHEN b.Faktor = '' THEN 1  
WHEN b.Faktor = '100' THEN 1  
WHEN b.Faktor = 'nein' THEN 0  
WHEN ISNULL(b.Faktor) THEN 1  
END) ) AS count  
FROM praefix_TabelleB b  
JOIN praefix_TabelleR r  
ON b.G_ID = r.G_ID  
WHERE  
b.Art = 'A' AND  
b.Status = 'XX'  
AND FROM_UNIXTIME(r.Timestamp) > NOW() - INTERVAL 1 YEAR  
GROUP BY ym DESC  

Und zum guten Schluss joine ich diese beiden Tabellen:

  
SELECT t.Monat, m.COUNT as count  
from praefix_tmp t  
LEFT JOIN monatsdaten m  
ON t.Monat = m.ym  
ORDER BY t.Monat DESC  

um eine schöne Tabelle, nach Monaten sortiert zu erhalten.

Soviel zum Hintergrund meiner Frage.

Im 2. Teil, in dem ich die temporäre Monatsdaten-Tabelle erstelle, möchte ich nun erweitern.

Und zwar gibt es nicht nur den Status 'XX', sondern auch 'YY' und 'ZZ'.

Und ich möchte gerne, dass analog zu den XX-Werten die YY-Werte ebenfalls eingetragen werden und die ZZ-Werte mit negativem Vorzeichen eingetragen werden.

Ist das verständlich ausgedrückt? Und falls ja, wie kann ich das in der Query unterbringen?

Viele Grüße, Frank