Announcement

Collapse
No announcement yet.

In WHERE-Klausel die IF-Abfrage ersetzen

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

  • In WHERE-Klausel die IF-Abfrage ersetzen

    Hallo zusammen,

    ich bin gerade dabei eine Abfrage zu erstellen.
    In der WHERE-Klausel bekomme ich allerdings ein Problem.

    Da ich die Abfrage in den Reporting Services von dem VS2005 mache, kann ich kein IF - ELSE benutzen.

    Klausel sollte so aussehen:

    Code:
    WHERE P.LSINDEX = LS.INX AND 
          (S.DATUM >= @p_vom) AND 
          (S.DATUM <= @p_bis) AND
          S.KS=0 
                          
                         
          if ( @p_Art = 2 ) 
          {
             print('AND ((KENNWORT LIKE 'AV*') OR (KENNWORT LIKE 'GWG*'))')
          }
          elseif ( @p_Art = 3 )
          {
             print('AND NOT ((KENNWORT LIKE 'AV*') OR (KENNWORT LIKE 'GWG*'))')
          }
                                            
          
          if ( @p_Bericht = 1 ) 
          {
             print('AND (((S.KUNDENNUMMER) Between 20000 And 30000))')
          }
          else 
          {
             print('AND S.ERLEDIGT<>1')
          }

    Frage:
    Wodurch kann ich die IF-Abfrage ersetzen um das selber zu erzielen?


    Schöne Grüße
    semcor

  • #2
    Im SQl mit OR und AND ... ungefähr so
    Code:
    WHERE P.LSINDEX = LS.INX AND 
          (S.DATUM >= @p_vom) AND 
          (S.DATUM <= @p_bis) AND
          S.KS=0 
          and (   ( @p_Art = 2  AND ((KENNWORT LIKE 'AV*') OR (KENNWORT LIKE 'GWG*')))
               OR ( @p_Art = 3  AND NOT ((KENNWORT LIKE 'AV*') OR (KENNWORT LIKE 'GWG*')))
              )
          and (   (@p_Bericht = 1 AND (((S.KUNDENNUMMER) Between 20000 And 30000)))
                OR(@p_Bericht != 1 AND S.ERLEDIGT!=1)
              )

    Comment


    • #3
      Super, danke hat alles geklappt (nur !=1 müsste <>1 heißen )

      Comment


      • #4
        Originally posted by semcor View Post
        Super, danke hat alles geklappt (nur !=1 müsste <>1 heißen )
        unter MSSQL bedeutet != ("!" = "not" und "=" = "equal") dasselbe wie <> ...
        (Nur ersters nervt nicht bei Konvertierungen von SQL-Definitionen in XML)

        Comment

        Working...
        X