Announcement

Collapse
No announcement yet.

Problem mit einer Abfrage

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

  • Problem mit einer Abfrage

    Hallo,
    brauche hilfe bevor ich durchdrehe!

    ich will eine abfrage zusammenbastelen bei der alle datensätze einer tabelle angezeigt werden.
    die tabelle lautet hi0
    es sollen die datensätze angezeigt werden, bei denen in einer anderen tabelle (hi3) die gruppe (hi3.team_name) vorkommt oder mitglieder der gruppe.
    gruppenname z.B. "Führungskräfte"
    die mitglieder einer gruppe bekomme ich aus der tabelle am0.
    die beiden tabellen hi3 und hi0 sind miteinander verknüpft durch eine nrid.
    hi0.nrid und hi3.hi0_nrid

    Code:
    select * 
    from sysadm.hi0 hi0, sysadm.hi3 hi3 
    where hi3.team_name = 'Führungskraft 1. Ebene'
    
    and hi3.personne in (select am0.titulaire from sysadm.am0 
    where am0.team_name = 'Führungskraft 1. Ebene')
    
    and hi0.nrid = hi3.hi0_nrid
    das ergebnis beinhaltet spalten aus beiden tabellen (hi0 und hi3)
    ich will aber nur die datensätze aus der hi0 haben.

    wenn ihr noch was wissen müsst, bitte fragen.
    bin noch neu hier mit sql..

    gruß alex

  • #2
    Hallo alex,
    Originally posted by alexSql View Post
    ...das ergebnis beinhaltet spalten aus beiden tabellen (hi0 und hi3)
    ich will aber nur die datensätze aus der hi0 haben.
    Warum verwendest du dann * als Selektor wenn du nur bestimmte Spalten haben möchtest?
    Das Einfachste (und Sauberste) wäre die gewünschten Spalten explizit aufzuführen. Alternativ ginge natürlich auch
    [highlight=sql]
    select hi0.*
    from ...
    [/highlight]

    Gruß Falk
    Wenn du denkst du hast alle Bugs gefunden, dann ist das ein Bug in deiner Denksoftware.

    Quellcode ohne ein Mindestmaß an Formatierung sehe ich mir nicht an! Ich leiste keinen Privatsupport per Mail oder PN!

    Comment


    • #3
      ok danke, das hilft mir schon mal weiter.

      ich bekomme jedoch bei meiner abfrage auch datensätze
      bei denen das mitglied nicht in der gruppe 'Führungskraft 1. Ebene' ist.

      Comment


      • #4
        hallo,

        habe hier 2 abfragen

        Code:
        select hi0_nrid from sysadm.hi3--, sysadm.hi0
        where hi3.personne in (select am0.titulaire from sysadm.am0 where am0.team_name = 'Führungskraft 1. Ebene')
        or hi3.team_name = 'Führungskraft 1. Ebene'
        
        
        select nrid, * from sysadm.hi0
        where nrid in (
        25339685538150,
        25368094482646,
        25091685648150,
        25091685648150,
        25091685648150,
        25091685648150,
        25091685648150,
        25361684387238,
        25250489449942)
        bei der ersten Abfrage bekomme ich die hi0_nrid´s raus, die ich bei der 2ten Abfrage benötige.
        Wie bekomme ich das denn in eine Abfrage?

        gruß Alex

        Comment


        • #5
          Versuch es mal mit einem expliziten Join:
          [highlight="sql"]
          select
          <feldliste>
          from
          sysadm.hi3 hi3
          join sysadm.hi0 hi0 on hi0.nrid = hi3.hi0_nrid
          where
          hi3.team_name = 'Führungskraft 1. Ebene' and
          hi3.personne in (
          select
          am0.titulaire
          from
          sysadm.am0
          where
          am0.team_name = 'Führungskraft 1. Ebene');
          [/highlight]

          Comment


          • #6
            danke dir, hat mir geholfen.

            Comment

            Working...
            X