2017-12-09 1 views
0

ich ein Problem auf dieser Anfrage bekam:Anwenden komplexer arithmetischer Formeln auf alle Felder in einer Tabelle SQL

SELECT 
    CASE WHEN ApNumber=0 THEN 0 
     WHEN ApNumber=1 THEN 100 
     WHEN ApNumber=2 THEN 250 
     WHEN ApNumber=3 THEN 500 
     WHEN ApNumber=4 THEN 750 
     WHEN ApNumber<=5 THEN 1000 END AS ApPoint, 

    FactionInfo.FactionUUID 


FROM 
    (
     SELECT COUNT(isAP) AS ApNumber 
     FROM ClaimInfo 
     WHERE FactionOwnerUUID =FactionInfo.FactionUUID 
    )f0, 

    FactionInfo 

Das Problem ist, dass

FactionInfo.FactionUUID 

in WHERE FactionOwnerUUID =FactionInfo.FactionUUID

die unknow Spalte erzeugen Error.

Das Problem ist, dass ich alle Berechnungen in der Auswahl für alle Zeilen in der FactionInfo durchführen möchten. Ratschläge?

sollte die letzte Bitte geben Sie mir:

FactionUUID - ApPoint 
---------------------- 
FactionUUIDName 250 
FactionUUIDOtherName 750 
+1

Bearbeiten Sie Ihre Frage und Beispieldaten und die gewünschten Ergebnisse liefern. –

Antwort

0

Sie scheinen zu wollen:

SELECT (CASE WHEN COUNT(isAP) = 0 THEN 0 -- this will never happen 
      WHEN COUNT(isAP) = 1 THEN 100 
      WHEN COUNT(isAP) = 2 THEN 250 
      WHEN COUNT(isAP) = 3 THEN 500 
      WHEN COUNT(isAP) = 4 THEN 750 
      ELSE 1000 
     END) AS ApPoint, 
     ci.FactionOwnerUUID 
FROM ClaimInfo ci 
GROUP BY ci.FactionOwnerUUID; 
+0

Das Problem ist, dass ich hinzufügen möchte "WHERE isAP = true" Aber ich möchte, dass die Anfrage ein Zeilenereignis zurückgibt, wenn kein Ergebnis gefunden wurde – quequiere

Verwandte Themen