2016-06-21 5 views
1

Ich versuche, Datensätze in einer Tabelle zu zählen, basierend auf dort Status-Count Datensätze nach dort Status Laravel

+--------|-----------|-------------+ 
| id | Record | Status | 
|--------|-----------|-------------| 
| 1 | 20  | A  | 
|--------|-----------|-------------| 
| 2 | 10  | A  | 
|--------|-----------|-------------| 
| 3 | 15  | D  | 
+----------------------------------+ 

Das Problem ist im eine SUM-Abfrage sowie eine Count-Abfrage verwenden.

Jetzt funktioniert das, aber nicht auf Basis von Ergebnissen von Statust. Ich habe folgendes versucht, es funktioniert nicht.

->select(DB::raw('SUM(Record) as commission, COUNT(Status = A) as status')) 
->get() 

UND

->select(DB::raw('SUM(Record) as commission, COUNT(Status) as status WHERE Status = "A" ')) 
->get() 

UND

->select(DB::raw('SUM(Record) as commission, COUNT(Status = "A ") as status')) 
->get() 

Antwort

0

Change -

COUNT(STATUS = 'A') 

An:

SUM(Status = 'A') 

Boolescher Ausdruck gibt basierend auf der Bedingung 0/1 zurück. COUNT(0) zählt immer noch 1, nur COUNT(NULL) addiert keine 1 zum Zähler. SUM() auf der anderen Seite wird Summe 1, wenn die Bedingung wahr ist, und 0, wenn es falsch ist.

Verwandte Themen