![]() |
Datenbank: BDE • Version: 5.01 • Zugriff über: localSQL
Query auf "ohne Ergebnis" überprüfen
Hi NG.
Delphi 4 (update 3) Ich habe ein Query mit SUM und Group By erstellt. Jetzt kann es passieren, dass als Ergebnis keine Daten berechnet/summiert werden, aber das Query trotzdem eine Zeile allerdings mit Null-Werten als Ergebnis anzeigt. Wie kann ich auf einfache Art und Weise überprüfen ob es sich um ein "NULL-Ergebnis" handelt. Überprüfen auf BOF und EOF sowie RecordCount scheidet natürlich aus. Gruß Peter |
Re: Query auf "ohne Ergebnis" überprüfen
Hi Peter,
nimm noch ein COUNT(*) AS RecordCount mit in deine Query auf. Grüße vom marabu |
Re: Query auf "ohne Ergebnis" überprüfen
Hallo marabu,
du meinst wohl, du bist ein ganz Schlauer. Mir mit den einfachsten Hinweisen zur Lösung zu verhelfen und mich als SQL-Depp hinzustellen. :lol: Damit hast du Recht :lol: Et klappt. Danke Peter |
Re: Query auf "ohne Ergebnis" überprüfen
Du kannst doch auch einfach das Feld abfragen:
Delphi-Quellcode:
[edit]Schwachsinnscode verbessert, dank PASST [/edit]
If MyQuery.FieldByName('MySumField').IsNull Then ...
|
Re: Query auf "ohne Ergebnis" überprüfen
Die Eigenschaft SumField gibt es unter Delphi 4 nicht.
|
Re: Query auf "ohne Ergebnis" überprüfen
In Delphi 6 auch nicht :mrgreen: , Hupsa, sollte natürlich das persistente Feld sein. Ich korrigiere das.
|
Re: Query auf "ohne Ergebnis" überprüfen
Hm, das hört sich an und sieht dann natürlich nach einer praktikablen Lösung aus. Kann es denn den Fall geben, dass der Wert eines der Felder im Normalfall NULL annehmen kann, während die anderen Felder korrekt ausgefüllt werden?
|
Re: Query auf "ohne Ergebnis" überprüfen
Ich denke wahrscheinlich zu kompliziert, aber meine Testdaten sahen so aus:
Code:
ID,ART_ID,MENGE,JAHR,MONAT
1,1,10,2005,1 2,1,20,2005,1 3,1,30,2005,2 4,1,40,2004,12 5,2,null,2006,1
SQL-Code:
Das Ergebnis sieht dann so aus:
select jahr, sum(menge) as summe, count(*) as recs
from umsatz group by jahr order by jahr
Code:
marabu
JAHR,SUMME,RECS
2004,40,1 2005,60,3 2006,null,1 |
Re: Query auf "ohne Ergebnis" überprüfen
Kommt auf den Fall an. Eine Tabelle, in der in einer Spalte nur NULL-Wert stehen, in der anderen aber Zahlen, würde bei einer Summierung der Spalte2 natürlich NULL ergeben. Ich wollte nur mal zeigen, das man ein Feld auch auf NULL testen kann.
Im Prinzip würde ich auch marabus Lösung nehmen. Da der Server sowieso durch die Tabelle iterieren muss (wegen der Aggregate) kann er ohne Performanceverlust auch gleich mitzählen. |
Re: Query auf "ohne Ergebnis" überprüfen
Hihi.
Im Trivialfall - eine Ergebniszeile und keine Anomalien in den Daten - nehme ich immer alzaimars Lösung. marabu |
Re: Query auf "ohne Ergebnis" überprüfen
Für die Praxis gefällt mir (im Augenblick) die Count(*)-Lösung am besten. :)
|
Re: Query auf "ohne Ergebnis" überprüfen
Wie wäre es mit der Methode IsEmpty? Die liefert True, wenn kein Abfrageergebnis existiert.
Grüße Mikhal |
Re: Query auf "ohne Ergebnis" überprüfen
Nein, das hilft nicht.
Wenn du alle Antworten zu diesem Thema durchliest, wirst du feststellen, dass sehr wohl eine Antwort geliefert wird. Allerdings nur mit NULL-Werten. Insofern finde ich, ein zusätzliches berechnetes Feld Count(*) am praktikabelsten. Es handelt sich hierbei auch nicht um eine Anwendung, die bzgl Geschwindigkeit optimiert sein muss. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:05 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz