2016-09-13 5 views
0

Ich versuche, an einem Projekt zu arbeiten, das die Gesamtsumme und die Gesamtsumme mit bestimmten Kriterien finden muss. Derzeit habe ich es geschafft, nur die Gesamtsumme der Spalte "Preis" zu berechnen. Hier ist der Code:Finden Sie die Summe der Spalte mit bestimmten Zeichenfolgen in einer anderen Spalte in einer Tabelle

$sumQuery = "SELECT SUM(price) AS value_sum FROM tickets"; 
//$dbc is Database Connection 
$sumResponse = @mysqli_query($dbc, $sumQuery); 
$sumRow = mysqli_fetch_array($sumResponse); 
$sum = $sumRow['value_sum']; 

Ich möchte an diesem Code arbeiten und es spezifischer machen. Stattdessen möchte ich, dass es NUR die Summe der Spalte "Preis" berechnet, wenn es in dieser Zeile in der Spalte "Paytype" die Zeichenfolge "Check" oder "Cash" hat. Ich habe keine Ahnung, wo ich damit anfangen soll. Ich habe meine Forschung vor dem Stellen dieser Frage getan, aber kam ohne Resultate heraus.

Hier ist ein Ausschnitt aus meiner Tabelle, die Sie mehr verstehen kann helfen:

Tickets Table

Hier ist eine einfache Version von dem, was ich erreichen will, wenn meine Beschreibung keinen Sinn gemacht. Finden Sie die Summe der Spalte "Preis" für jede Zeile mit der Zeichenfolge "Check" oder "Cash" in der Spalte "Paytype".

Antwort

0

Verwendung bedingte Aggregation:

SELECT SUM(price) AS value_sum, 
     SUM(CASE WHEN paytype IN ('Check', 'Cash') then price end) as check_or_cash 
FROM tickets; 

Natürlich, wenn Sie nur die Summe für den Check/Bargeld wollen, dann würden Sie eine WHERE-Klausel verwenden.

+0

'$ sumccQuery =" SELECT SUM (Preis) AS Wert_sum, SUM (CASE WANN Zahltyp IN ('Check', 'Cash') dann Preisende) als check_or_cash FROM tickets; "; $ sumccResponse = @mysqli_query ($ dbc, $ sumccQuery); $ sumccRow = mysqli_fetch_array ($ sumccResponse); $ sumcc = $ sumccRow ['value_sum']; 'Dies ist der Code, den ich ausprobiert habe. Ich bekomme immer noch die normale Summe von allem Preis. Mache ich etwas falsch? –

+0

Sie verwenden immer noch die '$ sumccRow ['value_sum']', während Sie wahrscheinlich '$ sumccRow ['check_or_cash']' am Ende Ihres Codes verwenden sollten – Bolovsky

+0

Vielen Dank. Das hat funktioniert. Macht es Ihnen etwas aus, mir einen Link für eine Dokumentation zu schicken, damit ich das für die Zukunft besser verstehen kann? –

Verwandte Themen