Ich habe versucht, dies ohne Erfolg herauszufinden. Ich habe eine Tabelle namens Appraisal
, die eine Spalte StatusID
hat. Ich muss die Anzahl der Bewertungen nach StatusId
gruppieren. Einige Datensätze in Appraisal
haben NULL/leere Werte in der StatusID
. Das Endergebnis wäre, 0 zurückzugeben, wenn ein Beurteiler eine Beurteilung mit hat.SQL Server Abfrage COUNT NULL/Leerzeichen und GROUP BY
Bewertung
[AppraisalId] [AppraiserId] [StatusId]
1 11111 1
2 11111 2
3 11111 NULL
4 22222 4
5 22222 NULL
...
AppraisalStatus
[AppraisalStatusId] [AppraisalStatusName]
2 Assigned
3 Accepted
6 Conditionally Declined
7 Completed
10 On Hold
11 Order Not Accepted
Beurteiler
[AppraiserId]
11111
22222
Abfrage:
SELECT
AppraisalStatus.AppraisalStatusId,
COUNT(ISNULL(Appraisal.StatusId, 0)) AS "number_of_orders"
FROM
AppraisalStatus
LEFT JOIN
Appraisal ON AppraisalStatus.AppraisalStatusId = Appraisal.StatusId
WHERE
AppraiserId = :AppraiserId
Die Ergebnisse in JSON
[{
"AppraisalStatusId": 2,
"number_of_orders": 1
}, {
"AppraisalStatusId": 3,
"number_of_orders": 5
}, {
"AppraisalStatusId": 7,
"number_of_orders": 184
}, {
"AppraisalStatusId": 10,
"number_of_orders": 2
}]
fehlt Ihnen irgendwo eine GROUP BY? –
nicht sicher, ich habe einige Erklärungen gelesen. Ich kann nicht die Abfrage erhalten, um "AppraisalStatusId" zurückzugeben: 6, "number_of_orders": 0 – Jeffry