Hallo,
nein, das soll kein Doppelposting werden, aber auf den alten Thread kann ich nicht mehr schreiben. Es ging um Berechnungen von Quartalsergebnissen (mit der Problematik, daß es vorkommen kann, daß für einzelne Monate kein Umsatz vorliegt)
Ich habe mein Problem auch einigermaßen gelöst, allerdings würde ich gerne wissen, ob es nicht eine elegantere Lösung gibt...
$sql="select sum(Total) as total, year, month FROM TABELLE WHERE [div Bedingungen) GROUP BY year, month ORDER BY year, month";
$erg = mysql_query($sql);
if (!$erg) die("<br>Abfrage nicht erfolgreich");
else
{
while ($Aus=mysql_fetch_array($erg))
{
if ($Jahr !=$Aus["year"])
{
if ($umsatz1 !="")
{
echo "$datum1 - $umsatz1<br>";
}
if ($umsatz2 !="")
{
echo "$datum2 - $umsatz2<br>";
}
if ($umsatz3 !="")
{
echo "$datum3 - $umsatz3<br>";
}
if ($umsatz4 !="")
{
echo "$datum4 - $umsatz4<br>";
}
//--Variablen auf Null setzten
$umsatz1=0;
$umsatz2=0;
$umsatz3=0;
$umsatz4=0;
}
$Jahr=$Aus["year"];
$ye=substr($Aus["year"],2);
if ($Aus["month"] ==1 || $Aus["month"]==2 || $Aus["month"]==3)
{
$datum1="Q1/$ye";
$umsatz1=($umsatz1+$Aus["total"]);
}
if ($Aus["month"]==4 || $Aus["month"]==5 || $Aus["month"]==6)
{
$datum2="Q2/$ye";
$umsatz2=($umsatz2+$Aus["total"]);
}
if ($Aus["month"]==7 || $Aus["month"]==8 ||$Aus["month"]==9)
{
$datum3="Q3/$ye";
$umsatz3=($umsatz3+$Aus["total"]);
}
if ($Aus["month"]==10 || $Aus["month"]==11 || $Aus["month"]==12)
{
$datum4="Q4/$ye";
$umsatz4=($umsatz4+$Aus["total"]);
}
}
if ($umsatz1 !="")
{
echo "$datum1 - $umsatz1<br>";
}
if ($umsatz2 !="")
{
echo "$datum2 - $umsatz2<br>";
}
if ($umsatz3 !="")
{
echo "$datum3 - $umsatz3<br>";
}
if ($umsatz4 !="")
{
echo "$datum4 - $umsatz4<br>";
}
}
Wie gesagt so funktioniert es zwar, aber es erscheint mir recht umständlich. Hat jemand eine besseren Lösungsvorschlag?
Grüße,
Moses