Wie SELECT DISTINCT aber nur auf eine Spalte bezogen

barney

Neuer Benutzer
Beiträge
2
Hallo

Ich habe eine Bürosoftware mit Firebird DB welche ich eine Abfrage erstellen möchte.
Und zwar benötige ich alle Preise der Artikel von jeder Rechnung welche bezahlt ist.
Nun leider habe ich auch Rechnungen mit mehreren Zahlungseingängen (Teilzahlung oder auch Abschlagsrechnung) und im Ergebnis der Abfrage werden die Artikelpreise für jeden Zahlungseingang der Rechnung einmal ausgegeben. Also bei einer Rechnung mit 5 Artikeln erhalte ich 5 Artikelpreise (GUT). Aber bei einer Rechnung mit 5 Artikeln welche die Rechnung in 2 Teilen bezahlt wurde, erhalte ich 10 Artikelpreise - also doppelt (SCHLECHT).

Wenn man jetzt ein Select Distinct machen könnte welches NUR auf MOV_INVOICES_POSITIONS.ID bezogen ist, wäre es super. Da dies scheinbar nicht möglich ist und durch eine Verschachtelung gemacht werden muss, habe ich Probleme damit. Bin nur gerade so gut einige Schnippels zusammen zu führen oder einfache Abfragen zu machen.
Hier die ganze Abfrage:

SELECT
MOV_INVOICES_POSITIONS.ID,
MOV_INVOICES.INVNO as Rechnungsnummer,
SUP_COSTCATEGORIES.LABEL as Erloesart,
MOV_ORDERS_POSITIONS.TOTALGROSS_AD as ArtikelSumme,
LEFT(MOV_PAYMENTS.PAYDATE,10) as Zahlungsdatum

FROM
MOV_PAYMENTS
LEFT JOIN MOV_INVOICES on MOV_INVOICES.ID = MOV_PAYMENTS.INVID
LEFT JOIN MOV_INVOICES_POSITIONS on MOV_INVOICES_POSITIONS.INVID = MOV_INVOICES.ID
LEFT OUTER JOIN MOV_ORDERS_POSITIONS ON (MOV_INVOICES_POSITIONS.ORDPOSID = MOV_ORDERS_POSITIONS.ID)
LEFT JOIN BAS_ARTICLES on BAS_ARTICLES.ID = MOV_INVOICES_POSITIONS.ARTID
LEFT JOIN SUP_COSTCATEGORIES on SUP_COSTCATEGORIES.ID = BAS_ARTICLES.COST_CATEGORY

WHERE MOV_PAYMENTS.INVID is not null
and BAS_ARTICLES.ARTKIND < 10
and EXTRACT(MONTH FROM MOV_PAYMENTS.PAYDATE) > 6

ORDER BY
MOV_INVOICES_POSITIONS.ID

Kann mir jemand helfen?

Danke schon mal
 
Werbung:
Hy,

warum du mehrere Zeilen bekommstr ist klar!

Du lässt dir das Rechnungsdatum ausgeben (LEFT(MOV_PAYMENTS.PAYDATE,10) as Zahlungsdatum)

Wäre es möglich hier nur das neueste auszugeben oder auch garnicht, dann greift auch dein DISTINCT....


Lg
 
Werbung:
Vielen Dank.
Ich habe es jetzt nochmals versucht wie es ist, aber mit SELECT DISTINCT und es scheint korrekt zu sein...(?!!)
Verstehe es gerade nicht, weil letztes mal hat mir das DISTINCT auch die Beträge gefiltert (es kann ja sein das 2x 9.90 verrechnet wurde was korrekt wäre...).
Also suche ich jetzt noch weiter Fehler. Letztes mal als ich es getestet habe, hatte ich irgendwo eine Differenz zwischen Auswertung und Kontobuchungen.
 
Zurück
Oben