Heim  >  Fragen und Antworten  >  Hauptteil

mysql – Wie schreibe ich zwei SUM-Werte mit unterschiedlichen Bedingungen in eine SQL-Anweisung und finde den Unterschied zwischen den beiden?

Die Tabelle, die ich in meinem Unternehmen verwende, ist die Punkteprotokolltabelle des Benutzers. Die Felder sind Benutzer-ID, Punkttyp (zu 1 hinzugefügt und auf 2 reduziert), Punkte, Zeitstempel.
Ich muss jeden Tag die Gesamtpunktzahl des Benutzers berechnen
Ich habe zunächst die Plus- und Minuspunkte zusammengefasst und dann das Array durchlaufen, um den Unterschied im Back-End-Programm zu ermitteln. Das ist äußerst ineffizient ? Verwenden Sie dann den Fall, um einen Fehler zu melden

SUM(CASE type=1 THEN `score` ELSE 0-`score`)
阿神阿神2704 Tage vor756

Antworte allen(1)Ich werde antworten

  • PHP中文网

    PHP中文网2017-05-24 11:35:10

    应该是:

    SUM(IF(type = 1, score, -score))
    

    或者写得啰嗦些:

    SUM(CASE WHEN type = 1 THEN score ELSE -score END)

    Antwort
    0
  • StornierenAntwort