Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

TSQL - Summe pro Feld als zusätzliche Spalte

Mitglied: CreamyCewie

CreamyCewie (Level 1) - Jetzt verbinden

20.05.2019, aktualisiert 16:13 Uhr, 490 Aufrufe, 5 Kommentare

Hallöchen.

Ich habe folgendes Select-Statement:

Mit diesem Statement hole ich mir alle DS aus 2 Tabellen, gefiltert nach ein paar Kriterien.

Als Ergebnissmenge bekome ich folgendes:
Belegtyp AdressNr Menge Artikelnummer VK pro POS
0 111048 10,00 2800_320 840,00
F 111048 1,00 3306 0,25
0 112116 1,00 1000 14,90
0 112116 3,00 1007 50,40
0 112116 5,00 1022 159,50
F 112116 3,00 1007 50,40
F 112116 5,00 1022 159,50
F 112116 1,00 3,13 14,90

Ergebniss ist soweit korrekt.
Nun brauche ich jedoch noch 2 Spalten die folgendes beinhalten:

1.) Ich brauche nun eine Spalte "Gesamt pro AdressNr" in der folgendes enthalten sein soll:
eine Summe aller "VK pro POS" (jedoch nur wenn Belegtyp = "F"), und zwar pro AdressNr.

2.) Ich brauche nun eine Spalte "Gesamt ALLE" in der folgendes enthalten sein soll:
eine Summe aller "VK pro POS" (jedoch nur wenn Belegtyp = "F"), egal welche AdressNr eingetragen ist

Zur Veranschaulichung, so sollte die Ergebnissmenge dann aussehen:

Belegtyp AdressNr Menge Artikelnummer VK pro POS Gesamt pro AdressNr Gesamt ALLE
0 111048 10,00 2800_320 840,00 0,25 225,05
F 111048 1,00 3306 0,25 0,25 225,05
0 112116 1,00 1000 14,90 224,80 225,05
0 112116 3,00 1007 50,40 224,80 225,05
0 112116 5,00 1022 159,50 224,80 225,05
F 112116 3,00 1007 50,40 224,80 225,05
F 112116 5,00 1022 159,50 224,80 225,05
F 112116 1,00 3,13 14,90 224,80 225,05

wie lassen sich diese 2 berechneten Spalten realisieren?

Lieben Dank!
Mitglied: Crusher79
20.05.2019, aktualisiert um 17:01 Uhr
Hi,

man nimmt verschachtleten SELECT. Habe greade keine Zeit es zu schreiben. Hier mal eine BAR / UNBAR Spalte für Kassenabrechnung.

Ggf. musst du auch NUL berücksichtigen.

Kurz: Geheimnis ist SELECT und SUM OVER () ! Hier musst du für das erste Beispiel natürlich mit SUM (VK pro POS ) OVER (PARTITION BY AdressNr) arbeiten!

Dann wird schon nach Adresse gruppiert und Du hast as richtige Ergebnis. Die Summe überalles ist natürlich einfacher.

Mach die 2 SELECT erstmal einzeln + WHERE Part. Dann kopierst du es einfach in deinen 1. SELECT mit rein.


Ok, habs doch nochmal probiert. Versucht mal das:

Bitte warten ..
Mitglied: em-pie
20.05.2019, aktualisiert um 20:48 Uhr
Moin,

Variante 2 wäre:

Durch die Joins muss das Subselect nicht bei jedem Datensatz "neugebildet" werden, wenn ich mich da recht erinnere. Denn eine Tabelle innerhalb eines Joins wird IMHO nur zum Zeitpunkt des "ersten" Aufrufes gebildet.
Wobei sich das nicht pauschal sagen lässt, da es ja immer von den zu behandelnden Daten(mengen) abhängt

Gruß
em-pie
Bitte warten ..
Mitglied: ukulele-7
20.05.2019 um 18:44 Uhr
Variante 2 ist auf jeden Fall zu bevorzugen.

Kritisieren würde ich das aber dennoch da einfach gar nicht sinnvoll gruppiert wird. Wer braucht denn eine Liste mit Positionen in der die Summe von Positionen in jeder Zeile steht? Das klingt für mich doch arg nach Fusch. Besser wäre vielleicht eine (oder zwei) Summenzeilen oder eine laufende Summe je nach Anwendungszweck.
Bitte warten ..
Mitglied: MadMax
20.05.2019 um 18:44 Uhr
Moin,

der Ansatz mit den Fensterfunktionen ist zwar richtig, aber es geht auch ohne zusätzliche Selects:
Gruß, Mad Max
Bitte warten ..
Mitglied: Crusher79
20.05.2019 um 22:20 Uhr
Aber es funktioniert....

Bei mir war es zusätzliche Übersicht zum Kassenystem (nur Bon-Drucker).

Bei 70-80 Belegen pro Tag reicht sowas völlig. Komt auch drauf an, welche Programmiersprache ggf. mitschwingt: C#, etc. oder ein 4 GL.

Bei der Variante ist das schöne, dass man mit einen einzigen Datensatz alles beisammen hat. Kommt immer drauf an, was man machen will. Das Ergebnis zumindest ist sauber.

Mutmaße beim Fragesteller, dass er auch eher mit geringen Datenmengen hantieren muss. Ist also doch durchaus brauchbar.
Bitte warten ..
Ähnliche Inhalte
Datenbanken
TSQL - Abfrage filtern
gelöst Frage von CreamyCewieDatenbanken11 Kommentare

Hallo. Ich habe in meiner Datenbank 3 Tabellen, aus denen ich mittels eines Select-Befehld in Kombination mit einem Inner ...

Datenbanken
TSQL - IF Exists
Frage von CreamyCewieDatenbanken4 Kommentare

Hallo, ich habe folgendes Problem: Ich habe eine SQL-Select-Abfrage. Diese sieht folgendermaßen aus: Diese Abfrage funktioniert, wenn es einen ...

Datenbanken
TSQL - Abfrage Datetime Bereich
gelöst Frage von CreamyCewieDatenbanken4 Kommentare

Hallo. Ich habe eine Tabelle (table1) in welcher div. Datensätze hinterlegt sind. Eines der Felder nennt sich "Datum" (Feldtyp ...

Datenbanken
TSQL debuggen temporärer Tabellen
Frage von SachsenHessiDatenbanken3 Kommentare

Hallo, ich google mir lngsam die Finger wund. (Vielleicht habe ich aber auch nur die Frage falsch formuliert) Folgendes ...

Neue Wissensbeiträge
Sicherheit
0-day Schwachstelle im Internet Explorer
Information von kgborn vor 4 TagenSicherheit1 Kommentar

In Microsofts Internet Explorer gibt es eine 0-day Schwachstelle in der Scripting Engine, die faktisch alle Browser- und Windows-Versionen ...

Internet

Internet-Speedtest Automatisieren via Befehlszeile, cmd, Bash (Windows, Linux, FreeBSD, Mac)

Tipp von anteNope vor 5 TagenInternet6 Kommentare

Also das hier ist irgendwie an mir vorbeigegangen. Einfacher geht es schlicht nicht mehr. Mit "-s 28624 wähle ich ...

Administrator.de Feedback

Entwicklertagebuch: Codeblöcke auf unseren Seiten

Information von admtech vor 5 TagenAdministrator.de Feedback9 Kommentare

Hallo Administrator User, Unsere Codeblöcke werden ab sofort anders dargestellt. In Zukunft kommen neue Typen dazu. Hier ein Beispiel ...

Humor (lol)
Internet - auch 2020 noch Neuland ?
Erfahrungsbericht von Henere vor 6 TagenHumor (lol)9 Kommentare

Heute eine Mail der Schule meiner Tochter bekommen. Blabla Umweltschutz bla bla siehe Anhang. Dumm nur: Da hab ich ...

Heiß diskutierte Inhalte
Hardware
Was ist der beste Rechner für CAD und Statische Berechnungen
Frage von Halle20Hardware40 Kommentare

Guten Morgen Zusammen, Ich stehe vor der Aufgabe für unsere Firma neue Rechner für die Zeichner und Statiker anzuschaffen ...

LAN, WAN, Wireless
WLAN Abbrüche
Frage von jo23487LAN, WAN, Wireless37 Kommentare

Hallo zusammen, ich habe einen neuen Speedport installiert und seit dem Abbrüche des WLANS. Eigentlich kann das mit dem ...

Visual Studio
VB.NET - XML Daten lesen und in DataGrid schreiben
Frage von ComX123Visual Studio35 Kommentare

Hallo zusammen Bin neu hier und hab da ne kleine Frage, da ich nicht weiter komme. Habe eine XML ...

Internet Domänen
Wie funktioniert Subdomains mit der Fritzbox
Frage von martin951Internet Domänen25 Kommentare

Also die oberflächliche Frage steht ja schon oben nun zu den Details Ich besitze eine Domain bei Strato nun ...