View Full Version : Satzzähler im Query
Hallo,
ich habe eine Queryauswertung; wenn ich diese auf dem Bildschirm anzeigen lasse, habe ich natürlich am linken Rand die Anzahl der Zeilen.
Da ich das Query aber drucken möchte und auch dort die Anzahl der Datensätze (Gruppenwechsel) brauche, würde ich gerne wissen, ob das funktioniert.
Evtl. mit Ergebnisfeld ?
Danke schonmal
Mädele
Nein, das gibt es nicht, da Query die Zeilen nur bei der Anzeige darstellt. Wenn Gruppenwechsel verwendet sind, werden diese Zeilen und die Leerzeilen sogar mitgezählt. Die Zeile dient einfach nur der Positionierbarkeit.
Aber was hat die Anzahl Sätze mit Gruppenwechsel zu tun ?
Im Gruppenwechsel kannst du die Funktion "Anzahl" auswählen !
Dann bekommst du die Anzahl Sätze der jeweiligen Gruppenebene.
Naja,
gehtNeddGibbdsNedd!
zumindest im SQL geht das, einmal auf die teure Art und Weise mit einem Subselect und count(*) und eleganter mit einer Function, die hochzählt und im Query käme man da über eine SQL View auch dran. Da habe ich auch mal ein paar Anmerkungen im Midrange Magazin im Technik Forum gemacht.
mfg
Dieter Bender
Nein, das gibt es nicht, da Query die Zeilen nur bei der Anzeige darstellt. Wenn Gruppenwechsel verwendet sind, werden diese Zeilen und die Leerzeilen sogar mitgezählt. Die Zeile dient einfach nur der Positionierbarkeit.
Aber was hat die Anzahl Sätze mit Gruppenwechsel zu tun ?
Im Gruppenwechsel kannst du die Funktion "Anzahl" auswählen !
Dann bekommst du die Anzahl Sätze der jeweiligen Gruppenebene.
@Dieter
1. es ging um Query und nicht um SQL
2. wie löst du die Leerzeilen und die Gruppenwechselzeilen der Query-Anzeige ?
Meines Wissens nach ist SQL eben kein Reportgenerator wie Query, der mir auch noch die Zwischenergebnisse der jeweiligen Gruppenstufe sowie das Endergebnis in eigenen Zeilen liefert.
Wie löst du die Gruppenwechselzeilen der Query-Anzeige ?
Meines Wissens nach ist SQL eben kein Reportgenerator wie Query, der mir auch noch die Zwischenergebnisse der jeweiligen Gruppenstufe sowie das Endergebnis in eigenen Zeilen liefert.
Wie Dieter schon sagte "Geht net gibt's net". Auch Gruppenwechsel sind in SQL möglich, nämlich in dem man für jede Gruppenstufe einen eigenen Select bildet und diese dann über UNION zusammenbastelt. Das einzige Problem ist dann die Sortierung, d.h. dass die Zwischensummen korrekt einsortiert werden.
Aber auch das ist zu realisieren.
Birgitta
Ja ok:
select Key1, Key2, Key3, sum(f1)
from myfile
where ...
group by Key1, Key2, Key3
union
select Key1, Key2, max(x'ff'), sum(f1)
from myfile
where ...
group by Key1, Key2
union
select Key1, max(x'ff'), max(x'ff'), sum(f1)
from myfile
where ...
group by Key1
union
select max(x'ff'), max(x'ff'), max(x'ff'), sum(f1)
from myfile
where ...
order by 1, 2, 3
@Dieter
1. es ging um Query und nicht um SQL
2. wie löst du die Leerzeilen und die Gruppenwechselzeilen der Query-Anzeige ?
Meines Wissens nach ist SQL eben kein Reportgenerator wie Query, der mir auch noch die Zwischenergebnisse der jeweiligen Gruppenstufe sowie das Endergebnis in eigenen Zeilen liefert.
@Baldur
www.fielmann.de hilft hier weiter:
siehe das OP von mir:
im Query käme man da über eine SQL View auch dran
soweit ich mich erinnere, kann man Functions sogar im Query direkt benutzen, habe gerade keine Büchse zum ausprobieren oben.
mfg
Dieter
@Dieter
Da muss ich dich leider enttäuschen. Wenn das ginge, würde ich nicht so viel QM-Queries brauchen. Die Hilfe auf dem Ausdruck-Feld beschreibt genau, welchen "Funktionen" erlaubt sind und das sind zur Zeit "SUBSTR, CHAR, DIGITS, VALUE, DATE, DAY, HOUR, MINUTE, SECOND, MICROSECOND, TIME, TIMESTAMP, MONTH, YEAR, CURRENT(DATE, TIME, TIMESTAMP)".
Ausserdem, was nützt mir eine Funktion mit Fortschreibung (über Scratchpad), wenn der ORDER BY erst hinterher läuft und somit eine ggf. fortlaufende Nr. nicht gewährleistet ist ?
Naja, man könnte ja auch hier mit einem Subselect arbeiten, allerdings erlaubt ein Subselect wiederum kein Union und ich die Satznummer erst NACH dem Sort vergeben muss.