2 Select sum(xx) zusammenzählen

hikeda_ya

Erfahrenes Mitglied
Hallo Leute,

wie kann ich mit einer Abfrage 2 Summen berechnen lassen (Daten stammen aus einer MS-SQL DB)

wäre auch zufrieden mit 2 Abfragen die jeweils nach Kriterium die Summen bilden und ich diese Summen weiterverwenden kann.

was ich bis jetzt habe:

PHP:
$results=mssql_query("select sum(Menge) as 'SummeZug' from lagerbewegung where artikelnummer = '".$_REQUEST['arAN']."' and SatzartZeilenart=10 ");

        while ($result=mssql_fetch_assoc($results))
   
      {    
       echo $result['SummeZug'];
        
       echo '<br>';
        
       
       }
     
       $results=mssql_query("select sum(Menge) as 'SummeAbg' from lagerbewegung where artikelnummer = '".$_REQUEST['arAN']."' and SatzartZeilenart=19");
     
    
         while ($result=mssql_fetch_assoc($results))
   
      {    
         echo $result['SummeAbg'];
      }
      
      echo '<br>';
        echo $result['SummeZug']-$result['SummeAbg'];

das Ergebniss ist


SummeZug = 98.00 ->Richtig
SummeAbg = 1.00 ->Richtig
SummeZug-SummeAbg = 0 ->Falsch
 
Zuletzt bearbeitet:
Was passiert denn bei folgende Abfrage:
PHP:
$query = "
	SELECT
	        SUM(`Menge`) AS `Summe`
	  FROM
	        `lagerbewegung`
	  WHERE
	        `artikelnummer` = '".mysql_real_escape_string($_REQUEST['arAN'])."'
	    AND `SatzartZeilenart` IN (10, 19) 
	';
 
In deinem Code überschreibst du mit dem Ergebnis der 2. Abfrage das Resultat der 1. ....daher funktioniert das nicht.
Speichere die Resultate in unterschiedlichen Variablen.
 
Gumbo hat gesagt.:
Was passiert denn bei folgende Abfrage:
PHP:
$query = "
	SELECT
	        SUM(`Menge`) AS `Summe`
	  FROM
	        `lagerbewegung`
	  WHERE
	        `artikelnummer` = '".mysql_real_escape_string($_REQUEST['arAN'])."'
	    AND `SatzartZeilenart` IN (10, 19) 
	';


geht leider nicht da MS-SQL wohl den Befehl nicht kennt:

Fatal error: Call to undefined function mssql_real_escape_string() in C:\Inetpub\php\bestand_select.php on line 80
 
Sven Mintel hat gesagt.:
In deinem Code überschreibst du mit dem Ergebnis der 2. Abfrage das Resultat der 1. ....daher funktioniert das nicht.
Speichere die Resultate in unterschiedlichen Variablen.


ich habe die Variablem SummeZug und SummeAbg deffiniert nur warum kommt bei mir 0 raus
 
Klar, wieso nicht? Die Funktion maskiert bloß Zeichen, die für MySQL „gefährlich“ sein können. Dies auch für MSSQL zu machen, kann nicht schaden.
 
Haut nur irgendwie nicht hin.

es würde reichen wenn ich auf die Ergebnisse einfach zugreifen könnte

denke mal weil ich die Ergebnisslisten vorher mit nem } schliesse bekomm ich beim
subtrahieren 0-0 = 0

wie kann ich mir da die Werte rein holen?
 
hikeda_ya hat gesagt.:
ich habe die Variablem SummeZug und SummeAbg deffiniert nur warum kommt bei mir 0 raus

In deinem ersten Code zumindest sind dies Arrayelemente, und der 1. Array wird vom 2. überschrieben, wodurch der Wert bei der Berechnung nicht mehr existiert.

Ich meinte es so:
Code:
$results=mssql_query("select sum(Menge) as 'SummeZug' from lagerbewegung where artikelnummer = '".$_REQUEST['arAN']."' and SatzartZeilenart=10 ");
while ($result=mssql_fetch_assoc($results))
 {    
    $SummeZug = $result['SummeZug'];
    echo $SummeZug.'<br>';
 }
$results=mssql_query("select sum(Menge) as 'SummeAbg' from lagerbewegung where artikelnummer = '".$_REQUEST['arAN']."' and SatzartZeilenart=19");

while($result=mssql_fetch_assoc($results))
 {    
  $SummeAbg = $result['SummeAbg'];
  echo $SummeAbg.'<br>';
  }
echo '<br>';
echo $SummeZug-$SummeAbg;
 
Zurück