Announcement

Collapse
No announcement yet.

IF THEN innerhalb Funktion

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • IF THEN innerhalb Funktion

    Ich habe folgende Funktion in Verwendung:

    CAST (ROUND (SUM(export),0)AS int) AS 'Export'
    die funktioniert auch ordentlich,

    nun muß ich aber den Wert der Summe noch zusätzlich prüfen;
    Ich hab's probiert mit :
    CAST (ROUND (IF SUM(export) <= 0 then 0 else SUM(export),0)AS int) AS 'Export'

    Da mekert der SQL Server aber !
    Was mach ich falsch ?
    Darf man keine IF THE in einer Funktion verwenden ?
    Wie könnte ich es hinkriegen.

    Bitte um Hilfe - DANKE

  • #2
    mh END vergessen?

    Oder:

    Code:
    SELECT [Feld], 
            CASE ...
            WHEN ... THEN ...
            ELSE
                    (SELECT ... FROM ...)
            END
    FROM ..

    Comment


    • #3
      Hallo fanderIF,

      Danke für deinen Hinweis, aber für eine IF ... THEN braucht man doch kein END oder ??

      IF SUM(export) <= 0 then 0 else SUM(export) - was kann daran falsch sein ?

      Comment


      • #4
        Originally posted by watirol View Post
        Hallo fanderIF,

        Danke für deinen Hinweis, aber für eine IF ... THEN braucht man doch kein END oder ??

        IF SUM(export) <= 0 then 0 else SUM(export) - was kann daran falsch sein ?
        Liegt wohl daran,
        a) das T-SQL's IF kein THEN hat...
        b) das das IF in einem Aggregat nu gar nicht geht

        und somit das CASE ins SUM muss

        [HIGHLIGHT="SQL"]CAST (ROUND (SUM(CASE WHEN export <= 0
        THEN 0
        ELSE Export
        END)
        ,0
        )AS int
        ) AS Export[/HIGHLIGHT]

        Comment

        Working...
        X