Announcement

Collapse
No announcement yet.

NVL Funktion

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

  • NVL Funktion

    hallo leute,

    ich möchte in meine Abfrege die Funktion NVL verwenden und weiß aber nicht an welche stelle plaziert werden muss.
    Kann bitte jemand helfen?

    Code:
    select ZW31.PNR,
           case
              when (SELECT COUNT(LXL1.P_ABR_GR)
                    FROM lpstxxl LXL1
                    WHERE LXL1.P_ABR_GR = 1
                    AND LXL1.P_NUMMER = ZW31.PNR
                    AND LXL1.MANDANT = ZW31.MDT) > 0 then
                    (SELECT DISTINCT--RT.PNR,
                           RT.RÜCKST *
                           (select M.MONATE
                            from MONATE M
                            where M.P_NUMMER = zw3.PNR
                            AND M.P_NUMMER = zw31.PNR
                            AND zw3.PNR = zw31.PNR )
                            Rückst
                     FROM ZWERG3 zw3,
                          RÜCKST RT
                     WHERE zw3.PNR = RT.PNR
                     AND zw3.PNR = zw31.PNR)
              else
                1
           end Rückst
        from ZWERG3 ZW31
    Duch diese Abfrage werden unter anderen auch Spalten mit null ausgegeben die ich mit 1 belegen will.

    Danke in Voraus

    mfg. f_mal

  • #2
    Originally posted by f_mal View Post
    hallo leute,

    ich möchte in meine Abfrege die Funktion NVL verwenden und weiß aber nicht an welche stelle plaziert werden muss.
    Kann bitte jemand helfen?

    Code:
    select ZW31.PNR,
           case
              when (SELECT COUNT(LXL1.P_ABR_GR)
                    FROM lpstxxl LXL1
                    WHERE LXL1.P_ABR_GR = 1
                    AND LXL1.P_NUMMER = ZW31.PNR
                    AND LXL1.MANDANT = ZW31.MDT) > 0 then
                    (SELECT DISTINCT--RT.PNR,
                           RT.RÜCKST *
                           (select M.MONATE
                            from MONATE M
                            where M.P_NUMMER = zw3.PNR
                            AND M.P_NUMMER = zw31.PNR
                            AND zw3.PNR = zw31.PNR )
                            Rückst
                     FROM ZWERG3 zw3,
                          RÜCKST RT
                     WHERE zw3.PNR = RT.PNR
                     AND zw3.PNR = zw31.PNR)
              else
                1
           end Rückst
        from ZWERG3 ZW31
    Duch diese Abfrage werden unter anderen auch Spalten mit null ausgegeben die ich mit 1 belegen will.

    Danke in Voraus

    mfg. f_mal
    -- Nun, das NVL muss du bei den Spalten anwenden, welche du imFalle einer 0 als 1 ausgeben willst ? Oder habe ich dich nicht richtig verstanden ? Also z.b. die erste Spalte, welche zurückgegeben wird

    SELECT ZW31.PNR, ...--> SELECT NVL(ZW31.PNR,1),....

    Comment


    • #3
      hallo,

      ja genau. aber meine Spalte wird unter case bearbeitet. (siehe oben)

      Code:
      case
                when (SELECT COUNT(LXL1.P_ABR_GR)
                      FROM lpstxxl LXL1
                      WHERE LXL1.P_ABR_GR = 1
                      AND LXL1.P_NUMMER = ZW31.PNR
                      AND LXL1.MANDANT = ZW31.MDT) > 0 then
                      (SELECT DISTINCT--RT.PNR,
                             RT.RÜCKST *
                             (select M.MONATE
                              from MONATE M
                              where M.P_NUMMER = zw3.PNR
                              AND M.P_NUMMER = zw31.PNR
                              AND zw3.PNR = zw31.PNR )
                              Rückst
                       FROM ZWERG3 zw3,
                            RÜCKST RT
                       WHERE zw3.PNR = RT.PNR
                       AND zw3.PNR = zw31.PNR)
                else
                  1
             end Rückst
      wie mache ich dann?

      f_mal

      Comment


      • #4
        wie mache ich dann?

        Nun, welche Spalte ist den davon betroffen ?

        Comment


        • #5
          Originally posted by f_mal View Post
          hallo,

          ja genau. aber meine Spalte wird unter case bearbeitet. (siehe oben)

          Code:
          case
                    when (SELECT COUNT(LXL1.P_ABR_GR)
                          FROM lpstxxl LXL1
                          WHERE LXL1.P_ABR_GR = 1
                          AND LXL1.P_NUMMER = ZW31.PNR
                          AND LXL1.MANDANT = ZW31.MDT) > 0 then
                          (SELECT DISTINCT--RT.PNR,
                                 RT.RÜCKST *
                                 (select M.MONATE
                                  from MONATE M
                                  where M.P_NUMMER = zw3.PNR
                                  AND M.P_NUMMER = zw31.PNR
                                  AND zw3.PNR = zw31.PNR )
                                  Rückst
                           FROM ZWERG3 zw3,
                                RÜCKST RT
                           WHERE zw3.PNR = RT.PNR
                           AND zw3.PNR = zw31.PNR)
                    else
                      1
                 end Rückst
          wie mache ich dann?

          f_mal
          es ist die spalte Rückst.

          Comment


          • #6
            Also :select nvl( (select M.MONATE
            from MONATE M
            where M.P_NUMMER = zw3.PNR
            AND M.P_NUMMER = zw31.PNR
            AND zw3.PNR = zw31.PNR )
            Rückst),1)

            Comment


            • #7
              hi,

              danke für deine Hilfe.

              mfg. f_mal

              Comment

              Working...
              X