Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Sub-Select im Haupt-Select: lässt sich dann "group by" anwenden? (https://www.delphipraxis.net/204864-sub-select-im-haupt-select-laesst-sich-dann-group-anwenden.html)

Uwe Raabe 8. Jul 2020 15:20

AW: Sub-Select im Haupt-Select: lässt sich dann "group by" anwenden?
 
Zitat:

Zitat von juergen (Beitrag 1469115)
Hiermit werden nun wieder mehrere Zeilen pro Tag und pro Person angezeigt. Wenn ich BA.AUFTRAGTEXT entferne funktioniert alles und es wird nur eine Zeile pro Tag und Pro Person ausgewiesen.

Wenn besagte Person an einem Tag an mehreren Aufträgen gearbeitet hat, ist das ja auch logisch. Was soll denn bei Auftragtext stehen, wenn es pro Tag dann trotzdem nur eine Zeile sein soll?

juergen 8. Jul 2020 17:34

AW: Sub-Select im Haupt-Select: lässt sich dann "group by" anwenden?
 
Zitat:

Zitat von Uwe Raabe (Beitrag 1469126)
Was soll denn bei Auftragtext stehen, wenn es pro Tag dann trotzdem nur eine Zeile sein soll?

Der aggregierte Datensatz (BN.Total_Std) hat die RecID zu der Tabelle BA.Auftragstext.
Vermutlich muss BA.Auftragstext in einem Subselect ausgeführt werden, wo BA.AuftragsNr = BN.AuftragsNummer ist.
Dann lande ich aber wieder bei meiner Eingangsfrage, da mir dann dass SSMS anzeigt, dass er die Spalte vom Subselect in der group by-Klausel nicht kennt.:cry:

Uwe Raabe 8. Jul 2020 18:46

AW: Sub-Select im Haupt-Select: lässt sich dann "group by" anwenden?
 
Zitat:

Zitat von juergen (Beitrag 1469141)
Der aggregierte Datensatz (BN.Total_Std) hat die RecID zu der Tabelle BA.Auftragstext.

Da scheinst du was falsch zu verstehen. Der aggregierte Datensatz entspricht keinem der Datensätze der Tabelle. Er enthält nur die aggregierten Feldwerte (hier MAX(BN.Total_Std)) und die Felder aus GROUP BY. Insofern gibt es diese RecID überhaupt nicht in dem RecordSet.

Offenbar möchtest du den Datensatz aus BN, dessen Total_Std-Wert für eine Person und ein Datum dem Maximum in diesem Bereich entspricht. Das wäre aber ein ganz andere Query. Es ist auch nicht sicher, daß es nur einen einzigen Datensatz mit diesem Kriterium gibt. Die Person könnte an einem Tag auch für zwei Aufträge die gleiche Stundenzahl gearbeitet haben, die dann diesem Max-Wert entspricht. Dann gibt es keinen eindeutigen Datensatz mit diesem Max-Wert.

Die Anforderungen sind irgendwie noch nicht vollständig spezifiziert.

Rainbow6 8. Jul 2020 21:05

AW: Sub-Select im Haupt-Select: lässt sich dann "group by" anwenden?
 
Servus,

also bei komplexen SQL Selects hilft häufig WITH - damit kannst du dir vorher aggregierte Werte aufbauen, so dass du alle JOIN's dann schonmal auf dem gleichen Level hast. Außerdem kannst du dir die einzelnen temporären Tabellen vorher ansehen.

Grüße
Daniel


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:37 Uhr.
Seite 2 von 2     12   

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz