Top-N in Anzeigen oder Crystal Reports?
Frage ich mich, ob es möglich ist, eine Ansicht, die top-5 Zeilen aus einer Tabelle.
Ich finde, dass die Crystal-reports-berichten nicht zu haben scheinen alles, was gebaut, um dies zu tun, oder ich würde es tun, es.
Wenn ich die Abfrage der view Select * from qryTranHistory
ist, gibt es die ersten 5 items, aber wenn ich versuchen, wählen Sie einen bestimmten Typ Select * from qryTranHistory Where tID = 45
es gibt nichts, da es keine tID=45 in die top 5 normalerweise.
Ist es möglich, dies zu tun?
Kann es erreicht werden, die in einer sub-Bericht in Crystal Reports?
Begrenzen Sie die Anzahl der Datensätze sichtbar in der Crystal Reports-Bericht mit einem Datensatz zählen-Vergleich, aber es ist schrecklich ineffizient, ziehen Sie die gesamte Ergebnismenge verwenden Sie nur eine kleine Menge dieser Zeilen. Besser zum einschränken der Ergebnismenge, die über SQL, wenn möglich.
Ich bin mir nicht sicher, ob es möglich ist, zu begrenzen es durch SQL... Meine Ansicht ist einfach
Ich bin mir nicht sicher, ob es möglich ist, zu begrenzen es durch SQL... Meine Ansicht ist einfach
Select Top 5 * from tblTranHistory
Und meine Abfrage in der CR ist Select * from qryTranHistory where tID = 45
, was ich hoffte wäre das gleiche wie zu sagen Select Top 5 From tblTransHistory where tID = 45
, aber anscheinend nicht.InformationsquelleAutor AndyD273 | 2010-06-23
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie auf einem sproc von Crystal Reports. In der sproc, verwenden Sie eine bedingte auf die parameter.
Ok, habe es. Ich etwas neues gelernt!
InformationsquelleAutor Josaph
Ist es leicht zu begrenzen, einen Bericht zu den top 5 der Datensätze. In dem Menü, wählen Sie einfach
Bericht --> Auswahl von Formeln... --> Gruppe
In der Formel, geben Sie "RecordNumber <= 5" und Sie sind fertig.
Brauchen Sie nicht zu haben, eine Gruppe-Feld noch ein Ergebnisfeld zu tun, die Gruppe filter. Sie brauchen nicht eine Art Ordnung, aber die Verwendung von top-N-Datensätze ohne eine Sortierung in der Regel nicht viel Sinn. Es kann nicht effizient sein als OMG Ponies vorgeschlagen, aber für die geringe Anzahl von Datensätzen ist es OK.
InformationsquelleAutor John Price
Durch eine einfache Einstellung können einschränken der Datensätze zu top 5!! Hier ist es, wenn Sie mit .Net 1.1 (ähnlich der Anordnung der Optionen im höheren frameworks auch!).
Der Bericht wird gefiltert, um nur die top 5 records aus dem Dataset.
Gibt es einen anderen Weg, wie es getan werden könnte, und das ist durch die Datensatzauswahlformel, wo Sie die Grenze Nicht. der Datensätze, vorgeschlagen von John Price in diesem thread.
Prost!
InformationsquelleAutor sanrns
Können Sie das TOP in Ihrer SELECT-Anweisung anstelle der in der Ansicht?
InformationsquelleAutor Tom H
Wenn Ihre Tabelle hat 5 Zeilen, ich hoffe, dass diese Abfrage:
Gibt mehr als 5 Zeilen, da Sie nie erwähnt TOP 5.
Deine Frage macht nicht viel Sinn, da ich nicht sicher bin, was Sie sind nach.
Sie erwähnt, wenn Sie lief Ihre Abfrage mit WHERE tID=45, es gibt nichts, was genau wollen Sie es zurückgeben ?
Lesen, auf
TOP
in BOL:Durch die Art und Weise, die Sie nicht wollen, dies zu tun in der Berichts - /Formular-Schnittstelle, die Sie wollen, dies zu tun in Ihrem db-layer.
Ok. Können sagen, dass die Tabelle
tblTranHistory
hat 1000 Zeilen, mit ein paar Dutzend verschiedene tID ' s als Fremdschlüssel. Wenn ich versucheSelect * From tblTranHistory Where tID = 45
bekomme ich 36 Zeilen zurückgegeben, aber ich will nur die top 5 in meinen Bericht, und wenn der Benutzer wünscht, die vollständige Liste können Sie sehen in einem anderen Bericht. Da ich in der Tat will es tun, mein db-layer, und ich kenne einen Weg, um zu ändern, was die Abfrage in CR, ich hatte gehofft, einfach eine Abfrage zurückgeben würde die top 5 Felder mit einer bestimmten tID. Also die Abfrage in der view ist einfachSelect Top 5 * from tblTranHistory
InformationsquelleAutor JonH
Du kann Top N Verarbeitung in Crystal-Reports-Berichte, aber es ist ein wenig dunkel - Sie haben die Gruppe Art-Experte (und um das zu können, müssen Sie Gruppen und Felder eingefügt, in die Gruppen.)
Tun, die Top-N-Verarbeitung in der Abfrage sollte effizienter sein, wo es möglich ist.
InformationsquelleAutor
Wenn Sie eine kleine recordset erstellen, können Sie eine laufende Summe, zählt die änderung der Zeilen (Feld1), dann in Abschnitt Experte in den Details, die sagen, es zu unterdrücken RTotal0 (Ihre laufende Summe variable) > 5
InformationsquelleAutor Sun