Announcement

Collapse
No announcement yet.

SQL-Abfrage

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

  • SQL-Abfrage

    Hi leutz.
    Ich hab mal eine Frage zu einem SQL-Befehl/Abfrage die ich machen muss.

    Ich habe 2 Tabellen, Rechnungen rech und Rechnungspositionen rechpos die miteinander über die RechNr verbunden sind. PK von rech ist die RechNr und PK von rechpos ist RechNr und RechPos.

    rech --> RechNr, Name,.....
    rechpos --> RechNr, RechPos, .... , bearbeitet

    Alle Rechnungen anzeigen ist ja kein Problem.. ebenfalls alle Rechnungen inklusive ihrer Positionen anzuzeigen ist kein Ding.
    Jetzt mein Problem.
    Ich will alle Rechnungen anzeigen die eine Position haben die noch nicht bearbeitet ist(bearbeitet = 0). Wenn eine Rechnug aber mehrere nicht bearbeitete Positionen hat soll sie trotzdem nur 1 mal angezeigt werden( heisst alle Rechnungen anzeigen die nicht bearbeitete Positionen haben)

    schon mal thx an die Helfer

    gruss
    MScalli

  • #2
    Hallo,

    Da du nur die Rechnungsdaten brauchst hilft hier ein einfaches DISTINCT:
    [highlight=sql]
    select distinct r.* from rech r
    inner join rechpos rp on rp.RechNr = r.RechNr
    where rp.bearbeitet = 0
    [/highlight]

    Alternativ kann man sowas auch mit WHERE IN... oder WHERE EXISTS lösen.

    z.B.
    [highlight=sql]
    select * from rech r
    where r.RechNr IN (
    select rp.RechNr from rechpos rp
    where rp.bearbeitet = 0
    )
    [/highlight]
    [highlight=sql]
    select * from rech r
    where EXISTS (
    select 'X' from rechpos rp
    where rp.bearbeitet = 0
    and rp.RechNr = r.RechNr
    )
    [/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
      werd ich gleich mal testen.
      Schon mal vielen dank für deine hilfe

      Comment

      Working...
      X