c0nsp1r4cy
Goto Top

MS SQL - Query Ergebnis (eine Zeile) aufgeteilt in zwei Zeilen (je relevante Spalte)

Guten Tag allerseits,

ich stehe ein kleinwenig auf dem Schlauch.

Anforderung:
Im Dokument gibt (kopfseitig) Rabatt- / und/oder Frachtkosten.

Das bedeutet in der Tabelle existiert nur eine Zeile, weil die beiden Werte in verschiedenen Spalten stehen.
(Select * from Dokument where (Rabatt > 0 OR Fracht > 0)) - vereinfachte Beschreibung

Ergebnis: 1 Zeile

Aber ich benötige für den Rabatt und die Fracht eine eigene Zeile.

Per Union ließe sich das ja nun recht einfach realisieren, aber gibt es noch eine Möglichkeit diese Anforderung mit weniger Code zu erfüllen?

Vielen Dank vorab für Eure Hilfe!

Content-Key: 369255

Url: https://administrator.de/contentid/369255

Printed on: April 25, 2024 at 14:04 o'clock

Member: SlainteMhath
SlainteMhath Mar 26, 2018 at 09:41:09 (UTC)
Goto Top
Moin,

hast du denn keine Möglichkeit das im Dokument/Report aufzuteilen? Alles andere als dein Select löst zusätzliche (Unsinnige) DB Abfragen aus, was man eigentlich vermeiden möchte.

Aber wenn, dann würde ich das auch mit einem UNION machen.

lg,
Slainte
Member: ukulele-7
ukulele-7 Mar 26, 2018 at 12:11:46 (UTC)
Goto Top
Ohne UNION wäre es nur sehr umständlich möglich, da ist UNION schon sinnvoller.

SQL ist aber auch nicht dazu gedacht aus einem Datensatz einen Report zu basteln sondern eigentlich gilt 1 Zeile = 1 Datensatz. Es wäre also wirklich besser das im Report zu trennen.
Member: c0nsp1r4cy
c0nsp1r4cy Mar 27, 2018 at 05:17:53 (UTC)
Goto Top
Guten Morgen,

da gebe ich Euch grundsätzlich recht.

Ich bastel derzeit eine Maske, die die aktuellen Verkaufszahlen direkt beim Aufruf präsentiert und leider ist es nicht ausreichend die Tabellenzeilen zu verrechnen und die Ergebnisse zu veranschaulichen, denn ohne Berücksichtigung der kopfseitig vergebenen Rabatte / Frachtkosten stimmen diese nicht.

Verkaufspositionen (Tabellenzeilen) + Fracht & Rabatt (Kopfzeile)

Ich habe es nun doch über UNION gelöst. Die Performance ist gut, aber der Code ist unübersichtlich.

Trotzdem vielen Dank!