Oracle9i: Inline View mit union

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Oracle9i: Inline View mit union

    Ist es möglich mit Inline Views und union gleichzeitig zu arbeiten?


    So z.B:

    select myrow,marke,ps from
    (
    select
    rownum as myrow,
    a.wagen as marke,
    e.staerke as ps,
    from auto a, einheiten e
    where ...
    union
    select
    rownum as myrow,
    a.wagen as marke,
    e.staerke as ps,
    from auto a, einheiten e
    where ...
    )
    where myrow between 1 and 50;

    ohne das union mit dem darunter befindlichen Code funktioniert es.
    Mit dem union funktioniert es nicht. Auch nicht mit group by.
    (hab das getestet: group by myrow,marke,ps)

    Danke für event. Hilfen

  • #2
    Die Frage ist ... wofür brauchst Du die Union ...

    Scheint so das Du lediglich 2 unterschiedliche Bedingungen hast ... das sollte auch in einer Query gehen ... mit OR und Klammern ... !
    carpe noctem

    [color=blue]Bitte keine Fragen per EMail ... im Forum haben alle was davon ... und ich beantworte EMail-Fragen von Foren-Mitgliedern in der Regel eh nicht![/color]
    [color=red]Hinweis: Ich bin weder Mitglied noch Angestellter von ebiz-consult! Alles was ich hier von mir gebe tue ich in eigener Verantwortung![/color]

    Kommentar


    • #3
      ich habe ein union aus folgendem Grund verwendet.

      In den where Bedingungen wird nach verschiedenen Gruppen sortiert.
      (z.B. where Gruppe=XXX .. union where Gruppe=yyy)
      Zudem soll noch für jede Gruppe einzeln nach dem Alphabet sortiert werden.

      Würde ich dort das union weg lassen, dann würde er mir doch alles durcheinander werfen.

      Kann man dieses Problem auch mit dem or und den Klammern lösen?

      Kann man eine Inlineview auch über mein obiges Problem mit dem Union legen?

      Kommentar


      • #4
        ORDER BY gruppe, zweite_spalte

        Das geht nicht?
        Ich denke, also bin ich. - Einige sind trotzdem...

        Kommentar


        • #5
          das Union sollte für sich selber stehen,also

          select * from tabelle where bla bla

          UNION

          select * from tabelle_2 where bla bla

          das Union ist ja nur dafür da ,
          falls die erste Abfrage mit der Where Clause keine Datensätze liefert

          In beiden Afragen muss aber die Spaltenzahl die gleiche sein
          Zuletzt geändert von Arni; 24.06.2005, 12:52.
          Bei Risiken und Nebenwirkungen fragen Sie Dr.Alban

          Kommentar


          • #6
            Das Problem was ich habe ist auch noch folgendes.

            Je nachdem welche where Bedingung erfüllt ist soll oben im select eine andere "Konstante" mitgegeben werden.

            Also so:

            select myrow,marke,ps from
            (
            select
            rownum as myrow,
            1,
            a.wagen as marke,
            e.staerke as ps,
            from auto a, einheiten e
            where ...
            union
            select
            rownum as myrow,
            2,
            a.wagen as marke,
            e.staerke as ps,
            from auto a, einheiten e
            where ...
            )
            where myrow between 1 and 50;

            wie kann man das denn ohne union machen?

            Kommentar


            • #7
              Das Problem was ich habe ist auch noch folgendes.

              Je nachdem welche where Bedingung erfüllt ist soll oben im select eine andere "Konstante" mitgegeben werden.

              Also so:

              select myrow,marke,ps from
              (
              select
              rownum as myrow,
              1,
              a.wagen as marke,
              e.staerke as ps,
              from auto a, einheiten e
              where ...
              union
              select
              rownum as myrow,
              2,
              a.wagen as marke,
              e.staerke as ps,
              from auto a, einheiten e
              where ...
              )
              where myrow between 1 and 50;

              wie kann man das denn ohne union machen

              Kommentar


              • #8
                Du bist da ja immer noch mit rownum zugange.

                Man man, das hatten wir doch schon, mach es doch einfach mit PHP
                Bei Risiken und Nebenwirkungen fragen Sie Dr.Alban

                Kommentar


                • #9
                  Nein das hier ist ein ganz anderes Problem.
                  Das mit rownum habe ich längst gelöst auf meine Art gelöst.

                  Ein Kollege hat mich nur gefragt wie man einen Union mit Inlineview lösen kann. Da hab ich mich ein wenig daran versucht un es nicht hin bekommen.

                  Dachte vieleicht weiss es ja zufällig jemand aus dem Forum

                  Kommentar


                  • #10
                    Du hast zwei Abfragen, die sich nur im WHERE-Teil unterscheiden?

                    Kombiniere die Teile durch OR


                    Code:
                    SELECT IF(bedingung_fuer_wert_1, 1, 2) deine_konstante
                    hilft dir für die fett markierten Teile
                    Ich denke, also bin ich. - Einige sind trotzdem...

                    Kommentar


                    • #11
                      SELECT IF(bedingung_fuer_wert_1, 1, 2) deine_konstante
                      Das würde mir echt helfen. Finde jedoch im Netz kein Beispiel für einesolche Anweisung.
                      Habe auch selbst noch kein solches Select mit einem if erstellt.

                      Kann mir jemand sagen wo ich ein solches Beispiel mit dem "select if" für ?eine Oracle 9i DB finde?
                      Zuletzt geändert von galaxy2; 27.06.2005, 07:24.

                      Kommentar


                      • #12
                        Code:
                        SELECT
                          CASE
                            WHEN bedingung = irgendwas THEN 1
                            ELSE 2
                          END
                        oder DECODE, was evtl. praktikabler wäre
                        Code:
                        DECODE(bedingung, ergebnis_1, rückgabewert_1, ergebnis_2, rückgabewert_2)
                        hast du kein handbuch?
                        Ich denke, also bin ich. - Einige sind trotzdem...

                        Kommentar


                        • #13
                          Doch, aber zu Hause :-)

                          Danke

                          Kommentar


                          • #14
                            Original geschrieben von galaxy2
                            Doch, aber zu Hause :-)
                            Damit ihm nichts passiert?

                            Keine Kaffeeflecken, keine Eselsohren, ...?
                            Ich denke, also bin ich. - Einige sind trotzdem...

                            Kommentar


                            • #15
                              http://tahiti.oracle.com

                              umfassende oracle-doku

                              Kommentar

                              Lädt...
                              X