Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Berechnungsfehler ? (https://www.delphipraxis.net/174884-berechnungsfehler.html)

haentschman 16. Mai 2013 09:35

Datenbank: ElevateDB • Version: ? • Zugriff über: ?

Berechnungsfehler ?
 
Guten Morgen...

Bitte sagt mir wer doof ist. Ich oder die DB... :roll:

select * from A -> 2824 Datensätze
select distinct * from A -> 2756 Datensätze
select * from A group by X having Count(*) = 1 -> 2694 Datensätze
select * from A group by X having Count(*) > 1 -> 62 Datensätze -> 2694 + 62 = 2756...korrekt

aaaber...
2824 - 2756 = 68 ! Wo sind meine 6 Datensätze?

...ich mache mir erst mal nen Kaffee. Vieleicht hilfts. 8-)

baumina 16. Mai 2013 09:49

AW: Berechnungsfehler ?
 
statt
Code:
select distinct * from A
evtl.

Code:
select distinct X from A
?

haentschman 16. Mai 2013 09:50

AW: Berechnungsfehler ?
 
Danke für deine Antwort. 8-)

Das *, damit alle Felder einbezogen werden und damit der gesamte Datensatz eindeutig ist.

baumina 16. Mai 2013 09:51

AW: Berechnungsfehler ?
 
Aber du machst doch auch einen Group by X, demnach sollte evtl auch das distinct wissen was zu gruppieren ist?

jobo 16. Mai 2013 09:53

AW: Berechnungsfehler ?
 
mal abgesehen von der ungewöhnlichen groub by Anweisung- nie von der DB gehört:
Wenn Du die mehrfachen Datensätze zählst, zählst Du mit dieser Anweisung nicht die tatsächliche Zahl, sondern die Zahl der eindeutigen, aber mehrfach vorhandenen Datensätze.
Richtig wäre wohl, ein "select * from .. not in [eindeutig]" oder "[alles] minus [eindeutig]".

haentschman 16. Mai 2013 09:55

AW: Berechnungsfehler ?
 
having verlangt immer eine Gruppierung nach einem Feld. Es ist aber egal ob ich in die Gruppierung ein Feld oder alle aufnehme... es bleiben 62 Datensätze. :(

Zitat:

mal abgesehen von der ungewöhnlichen groub by Anweisung- nie von der DB gehört:
Du hast noch nie von group by gehört ?

Bummi 16. Mai 2013 09:59

AW: Berechnungsfehler ?
 
Ich kenne ElevateDB nicht, werden NULL's mit gruppiert?

haentschman 16. Mai 2013 10:04

AW: Berechnungsfehler ?
 
Da muß ich dich leider enttäuschen. In der Tabelle gibt es nicht einen NULL Wert. Alle Felder sind ausgefüllt.

Danke trotzdem... :wink:

jobo 16. Mai 2013 10:10

AW: Berechnungsfehler ?
 
Zitat:

Du hast noch nie von group by gehört ?
Natürlich, es ging um "Select * " versus "Group by x"
Macht m.E. keinen Sinn bzw erinnert mich an mySQL mit "automatischer/intelligenter" Gruppierung, das ist Schrott.

Unabhängig davon scheint mir das Verfahren wegen der Gruppierung von Mehrfachdatensätzen falsch.

baumina 16. Mai 2013 10:12

AW: Berechnungsfehler ?
 
Warum ein select distinct * überhaupt weniger Datensätze als ein select * liefert, ist mir ein Rätsel, ausser diese mir auch unbekannte Datenbank, hat in ihren Tabellen keine eindeutigen IDs.


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:03 Uhr.
Seite 1 von 2  1 2      

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