2016-04-21 28 views
0

Ich habe gesucht und gesucht, aber kann nicht finden, ob dies überhaupt möglich ist, noch viel weniger, wie es geht. Ich versuche eine Spalte zu addieren. Summieren Sie die Ergebnisse dieser Spalte jedoch nur, wenn ein bestimmter Wert aus einer anderen Spalte vorhanden ist. So zum Beispiel wird die folgende Beispieldatenbankeintrag:Summe Spalte basierend auf eindeutigen Wert einer anderen Spalte

Arbeitsstunden ------- Wage Rate

2.3 --------------- - $ 14,00

1,2 ---------------- $ 14,00

2,4 ---------------- 12,50 $

0,75 --------------- $ 12,50

Also, für diese Summe möchte ich die Arbeitsstunden-Spalte summieren, aber nur die geleisteten Stunden summieren, wenn der Lohnsatz 14,00 $ beträgt und nicht 12,50 $. Da diese Zahlen aus einer Datenbank generiert werden (mit verschiedenen Personen, die mehrere Lohnsätze eingeben), kann ich die Wo - Aussage nicht auf einen bestimmten Betrag setzen (da ich den spezifischen Betrag, den jede Person eingegeben hat, nicht weiß) Menge muss eine Variable in der WHERE-Anweisung sein. Mit MySQLI weiß ich, wie die geleisteten Stunden summiert werden, aber ich weiß nicht, wie ich die geleisteten Stunden summieren soll, wenn und nur wenn die Zeile mit dem eindeutigen Wert in der Spalte der Lohnsätze übereinstimmt.

Dann wird es automatisch durchlaufen und die Stunden für die anderen eindeutigen Werte in der Spalte Lohntarif zusammengefasst. Schließlich ziehen alle eindeutigen Werte in der Lohnsatz Spalte in Variablen, damit ich die folgenden für jeden Satz tun können:

$total1 = $total_hours1 * $wage_rate1 
$total2 = $total_hours2 * $wage_rate2 
$overall_total = $total1 + $total2 

wo $ wage_rate1 = $ 14.00 und $ total_hours1 = 2,3 + 1,2: usw.

Ist das überhaupt möglich? Wenn ja, wie mache ich das? Wenn es möglich ist, kann mir jemand bitte eine gute Referenz geben, damit ich lernen kann, wie der beste Weg dafür aussehen würde?

Dank

+0

'SUM()' mit 'WHERE' Klausel und DISTINCT. Vielleicht sogar ein Fall, wenn –

Antwort

0
SELECT SUM(HoursWorked) FROM table WHERE WageRate = 14.00 GROUP BY WageRate 
Verwandte Themen