Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!

Mobiles Hauptmenü

Abfrage mit leeren Zellen in tabelle

Begonnen von silentwolf, Oktober 10, 2014, 15:25:05

⏪ vorheriges - nächstes ⏩

silentwolf

Hi na ich weis das ist sicher so simple meine frage aber ich become es trotzdem leider nicht hin.

Im Anhang hab ich meine kleine DB als screenshot angezeigt.
Was ist hier falsch oder wie muss ich den die Abfrage erstellen sodas ich auch Rechnungen die ich noch nicht bezahlt habe in meiner Abfrage auswerten kann.
Momentan kann ich nur die Rechnungen die ein bezahlt Datum haben auswerten.
Ich würde aber auch gern die sehen die ich noch zu bezahlen hätte oder zur späterem Zeitpunkt auswerten wann gewisse Rechnungen bezahlt warden.

Probier schon eine Zeit herum aber ich komm nicht drauf.
Wäre dankbar wenn mir jemand hier helfen könnte bitte.

Mit freundlichen Grüßen

Albert

MaggieMay

Hallo,

es liegt an der Art der Verknüpfung, um alle Rechnungen sehen zu können brauchst du einen LEFT JOIN von tbl_Rechnungen zu tbl_Bezahlt (und zwangsläufig auch von tbl_Bezahlt zu tbl_Konto). Einzustellen über die Verknüpfungseigenschaften oder auch in der SQL-Ansicht.
Freundliche Grüße
MaggieMay

silentwolf

Hi Maggy,

dankeschön! Ja das hab ich mir schon gedacht das es wegen den Verknüpfungen ist.
Muss ich die den gleich bei den Tabellen ändern oder nur in der Abfrage? Ich hab schon probiert aber irgendwie geht es trotzdem nicht :(

Lg

MaggieMay

Die Verknüpfungsart legst du nur in der Abfrage fest.

Was hast du probiert bzw. wie bist du vorgegangen und was ist dabei herausgekommen?
Mit "geht nicht" kann man nicht viel anfangen.
Freundliche Grüße
MaggieMay

silentwolf

Hi Maggie,

na ich hab in den Tabellen die Verknüpfung geändert also die zweite option.
In der Abfrage habe ich dann im Feld Bezahlt ist null eingetragen.
Dann hab ich keine Datensätze erhalten.
Ich hab auch die Verknüpfung beibehalten und in der Abfrage auf die 2 Option gestellt und wieder ist null im gleichen Feld eingetragen wieder keine Datensätze.

Lg

MaggieMay

Freundliche Grüße
MaggieMay

silentwolf

SELECT tbl_Rechnungen.RechNr, tbl_Rechnungen.[Rechnung Vom], tbl_Rechnungen.Rechnungsbetrag, tbl_Rechnungen.Skonto, tbl_Rechnungen.[Skonto bis], tbl_Steueren.SteuerSatz, [Rechnungsbetrag]/(100+[Steuersatz])*[Steuersatz] AS Ust, tbl_Konto.Konto, tbl_Bezahlt.BezahltAm, tbl_Lieferant.Lieferant
FROM tbl_Lieferant INNER JOIN (tbl_Steueren INNER JOIN (tbl_Rechnungen LEFT JOIN (tbl_Konto INNER JOIN tbl_Bezahlt ON tbl_Konto.Konto_ID = tbl_Bezahlt.Konto_Id) ON tbl_Rechnungen.Rechnungs_ID = tbl_Bezahlt.Rech_Id) ON tbl_Steueren.Steuer_ID = tbl_Rechnungen.Steuer_Id) ON tbl_Lieferant.Lieferant_ID = tbl_Rechnungen.Lieferant_Id
WHERE (((tbl_Bezahlt.BezahltAm) Is Null));


MaggieMay

Hast du den Code frei Hand im SQL-Fenster geschrieben? Der ist so nicht zu gebrauchen, es kommt die Meldung "Join-Ausdruck nicht unterstützt".

Versuche es mal hiermit:SELECT tbl_Rechnungen.RechNr, tbl_Rechnungen.[Rechnung Vom], tbl_Rechnungen.Rechnungsbetrag, tbl_Rechnungen.Skonto, tbl_Rechnungen.[Skonto bis], tbl_Steueren.SteuerSatz, [Rechnungsbetrag]/(100+[Steuersatz])*[Steuersatz] AS Ust, tbl_Konto.Konto, tbl_Bezahlt.BezahltAm, tbl_Lieferant.Lieferant
FROM (((tbl_Rechnungen INNER JOIN tbl_Lieferant ON tbl_Lieferant.Lieferant_ID = tbl_Rechnungen.Lieferant_Id) INNER JOIN tbl_Steueren ON tbl_Steueren.Steuer_ID = tbl_Rechnungen.Steuer_Id) LEFT JOIN tbl_Bezahlt ON tbl_Rechnungen.Rechnungs_ID = tbl_Bezahlt.Rech_Id) LEFT JOIN tbl_Konto ON tbl_Konto.Konto_ID = tbl_Bezahlt.Konto_Id
WHERE (((tbl_Bezahlt.BezahltAm) Is Null));
Freundliche Grüße
MaggieMay

silentwolf

Hi Maggie,
nein hab ich nicht frei geschrieben aber die Fehlermeldung bekomme ich auch das stimmt :(
Hab die Abfrage mittels Entwurf gemacht. :(

Lg

silentwolf

SELECT tbl_Rechnungen.RechNr, tbl_Rechnungen.[Rechnung Vom], tbl_Rechnungen.Rechnungsbetrag, tbl_Rechnungen.Skonto, tbl_Rechnungen.[Skonto bis], tbl_Steueren.SteuerSatz, [Rechnungsbetrag]/(100+[Steuersatz])*[Steuersatz] AS Ust, tbl_Konto.Konto, tbl_Bezahlt.BezahltAm, tbl_Lieferant.Lieferant
FROM tbl_Lieferant INNER JOIN (tbl_Steueren INNER JOIN (tbl_Rechnungen INNER JOIN (tbl_Konto INNER JOIN tbl_Bezahlt ON tbl_Konto.Konto_ID = tbl_Bezahlt.Konto_Id) ON tbl_Rechnungen.Rechnungs_ID = tbl_Bezahlt.Rech_Id) ON tbl_Steueren.Steuer_ID = tbl_Rechnungen.Steuer_Id) ON tbl_Lieferant.Lieferant_ID = tbl_Rechnungen.Lieferant_Id;

dieser funktioniert aber halt nur mit den Rechnungen die ich schon als bezahlt in meine Tabelle eingetragen habe ...
Sobald ich versuche den Join zu ändern funktioniert es nicht mehr.

Bin leider überhaupt nicht gut mit SQL :(

Lg

MaggieMay

Und was ist mit meinem Vorschlag? Der Code sollte doch deinen Erwartungen entsprechen...

ZitatBin leider überhaupt nicht gut mit SQL
Musst du ja auch nicht, die Verknüpfungen solltest du am besten im Entwurfsfenster ändern und dann genau so wie ich es beschrieben hatte.
Freundliche Grüße
MaggieMay

silentwolf

Hi Maggie,

oh ja danke jetzt funktioniert es! Vielen Dank und wie hast Du das nun hingebracht ?
Oder wie hätte ich es hinbringen können??

Glg

MaggieMay

Wie gesagt, wenn man unsicher ist und/oder mehr als 2-3 Tabellen zu verknüpfen hat, macht man das am besten in der Entwurfsansicht.
Freundliche Grüße
MaggieMay

silentwolf

hmm,
na ich mache es eigentlich immer in der Entwurfansicht :( und hab es nicht hinbekommen ??
Trotzdem hat es nicht funktioniert hm

MaggieMay

Wenn du bei der Verknüpfung von tbl_Bezahlt zu tbl_Konto (oder umgekehrt) die falsche Verknüpfungsart gewählt hast, könnte das schon die Ursache sein.
Was genau passiert ist, lässt sich schwer sagen, da man eigentlich nicht aus dem Entwurf in die SQL-Ansicht (und umgekehrt) kommt, wenn die Abfrage fehlerhaft ist.
Freundliche Grüße
MaggieMay