Hallo,
ich habe folgende Situation
Spalte 1: Rechnungsbeträge die positiv oder negativ sein können und in der Datenbank mit einem positiven Wert gespeichert werden.
Spalte 2: Kennzeichen (G=Gutschrift, R=Rechnung) zeigt an, ob der Wert in Spalte 1 negativ oder positiv ist. Nun die Frage:
Wie kann ich eine DB-Abfrage mit SQL so manipulieren, dass in der Ausgabedatei die negativen Werte mit einem Minuszeichen erscheinen? Am Ende aller Zeilen möchte ich die Summe bilden. Geht es auch ohne View? Danke.
Hallo,
ich habe noch eine Frage zu der Abfrage. Ich habe sie in meinen Query eingebaut und die negativen Werte werden 2* abgezogen. Habt Ihr eine Ahnung woran das liegen kann?
Danke.
VG
Manu
klingt nach meinem „Lieblingsfehler“, ich rate mal du hast in deinem Query einen JOIN, und der liefert n-fache Ergebnisse.
Da nun SQL zuerst JOINed und dann summiert, kommt es dazu dass zuerst doppelte Datensätze im Resultset stehen und die dann summiert werden … tadaaa, Fehler !
Magst du mal dein Original-SQL hier einstellen, damit wir darüber herfallen können ?
Gruss,
SomeOne
PS: ich hatte damals so einen 1000-Seiten Schinken über SQL, ich glaub der war vom Markt und Technik Verlag. Und viiiiel Praxis brauchst du !
ich habe die Datenbank und die Abfragen von meinem Vorgänger geerbt. Mir ist dabei aufgefallen, dass die Ausgabe fehlerhaft ist. Leider ist die Datenbank derart kompliziert aufgebaut, dass ich mich sehr schwer tue. Eine Dokumentation über den Aufbau der Datenbank gibt es nicht. Die Namen der Tabellen sind mit kryptischen Bezeichnungen überschrieben, was die Arbeit nicht gerade erleichtert. Sorry mußte mal jammern.
In der Standard-Abfrage ist tatsächlich ein Join und zwar ein geschachtelter drin, da 3 Tabellen (oder mehr) pro Abfrage benötigt werden.
Tabelle Name und Anschriften der Kunden
Tabelle Daten zur Bestellung/Lieferung wie z. B. Artikel, Anzahl und Preis
Tabelle Name und Anschrift des Lieferanten
Das Problem bei der ganzen Sache ist, dass der Kunde1 der Lieferant vom Kunden2 sein kann und umgekehrt. Die Verknüpfung bei der Abfrage erfolgt über die Kunden- bzw. Lieferantennummer. Wobei diese identisch sind.
a) Zusätzlich habe ich nun die Case-Abfrage ohne sum() eingebaut und habe Excel die Gesamtsumme rechnen lassen.
b) Die Gesamtsumme ist identisch mit dem Ergebnis, wenn ich die Abfrage ohne case laufen lasse und in Excel die negativen Werte per Hand ausbessere!
c) Wenn ich sum(case…) hinzufüge erhalte ich ein deutlich niedrigeres Ergebnis, als Excel rechnet.
a) liefert z. B. 100
b) liefert z. B. 100
c) liefert z. B. 33
Verringere ich die Anzahl der Spalten oder verändere den geschachtelten Join, dann habe ich wieder ein anderes Ergebnis, ebenfalls mit deutlichen Abweichungen.
Wenn ich wieder im Geschäft bin, dann kann ich die Original-Abfrage mal einstellen. Danke für die Unterstützung.
VG
Manu