2016-05-26 14 views
-1

Ich versuche zu erhalten, was als eine geschachtelte if-Funktion in Excel in einer Abfrage formuliert werden würde. Das Ziel der Abfrage besteht darin, eine Sicht zu erstellen, damit ich zwei Datensätze vergleichen kann.Bedingte Formatierung wenn dann Anweisungen

Wenn in Excel würde die Formel wie folgt aussehen: = IF (Bedingung1 = 0, Bedingung2, IF (Bedingung2 = 0, Bedingung3, Bedingung1)).

ich diese Fehlermeldung erhalte:

Die Abfragesprache habe ich versucht, zu verwenden ist:

drop view danburycomp 
go 
create view danburycomp as 
SELECT *, 
     TotalCash=CASE 
        WHEN [cash out] = 0    THEN [cash counter cash in] 
        WHEN [cash counter cash in] = 0 THEN [cash counter cash out] 
                ELSE [cash out] 
       END 
FROM [trans jan-mar2016] 
WHERE [account number] IN ('UNIQUEID1', 'UNIQUEID2') 
    AND ([cash into trans] != 0 
     OR [cash out] != 0) 
    AND [date time trans] BETWEEN '2016-01-29' AND '2016-02-24' 
+1

Also, was ist das Problem? irgendein Fehler? \t Bitte lesen Sie [** How-to-Ask **] (http://stackoverflow.com/help/how-to-ask) \t \t Und hier ist ein großartiger Ort, um [** START **] (http://spaghettidba.com/2015/04/24/how-to-post-at-sql-question-on-a-public-forum/) um zu erfahren, wie Sie Ihre Fragequalität verbessern und bessere Antworten erhalten. –

+0

Zeige uns db schema und die echte Abfrage, die du versucht hast ... Du kannst DateID nicht mit String ''DATE'' vergleichen und' [COLUMNAME]! = 0' zweimal vergleichen –

+0

@JuanCarlosOropeza, danke für deine Änderungsvorschläge. Ich habe mein Bestes getan, um persönliche ID-Informationen zu entfernen. Vielen Dank. – user2243

Antwort

0

Zwei Dinge:

  1. Statt TotalCash= setzen as TotalCash nach dem end in der Fallanweisung.

  2. Die Falllogik ist ausgeschaltet. Wenn Cash <> 0 und [Cash Counter Cash In] = 0 ausgezahlt wird, wird [Cash Counter Cash Out] zurückgegeben, was meiner Meinung nach nicht das ist, was gewünscht wird.

so verwenden:

drop view danburycomp 
go 
create view danburycomp as 
select *, 
case 
    when[Cash Out]=0 and [Cash Counter Cash In]<>0 then [Cash Counter Cash In] 
    when [Cash Out]=0 and[Cash Counter Cash In]=0 then [Cash Counter Cash Out] 
    else [Cash Out] 
end as TotalCash 
from [Trans Jan-Mar2016] 
where [Account Number] in ('UNIQUEID1', 'UNIQUEID2') 
and ([Cash Into Trans] !=0 or [Cash Out]!=0) 
and [Date Time Trans] between '2016-01-29' and '2016-02-24'