Anzahl von Datensätzen zählen bzw. in Ansicht zeigen
Ich bin am verzweifeln, da ich wohl vollkommen auf dem Schlauch stehe!
Ich habe eine Kontakttabelle und eine Berichtstabelle. Für jeden Kontakt kann es beliebig viele Berichte geben. Die Tabellen sind verknüpft (Kontakte mit Berichte 1:N).
Nun möchte ich in einer Auswertung zählen, wieviele Kontakte es in einem bestimmten Zeitraum mit wenigstens einem Bericht gibt.
Dazu hatte ich folgende Idee:
let myAuswertungStart := 'Auswertung Start';
let myAuswertungEnde := 'Auswertung Ende';
cnt(select Kontakte where Berichte.Beratungsdatum >= myAuswertungStart and Berichte.Beratungsdatum <= myAuswertungEnde)
Es kommt zwar was raus, aber wenn ich die Einträge zur Kontrolle per Hand, bekomme ich einen anderen Wert.
Meine zweite Idee war, nicht von der Kontakttabelle auszugehen, sondern von der Berichtstabelle aus. Also:
let myAuswertungStart := 'Auswertung Start';
let myAuswertungEnde := 'Auswertung Ende';
cnt(select Berichte where Beratungsdatum >= myAuswertungStart and Beratungsdatum <= myAuswertungEnde)
Nur dann bekomme ich alle Berichte im Zeitraum gezählt. Ich will ja aber die Anzahl der Kontakte wissen. Also wieviele verschiedene Kontakte hatte ich für meine x Berichte im Zeitraum y.
Mir fehlt da einfach ... Ich weiss nicht was! Kann mir jemand helfen?
5 Antworten
-
Hallo ich bin leider noch nicht soweit mit meinen Kenntnissen, dass ich Deine Formel umstellen kann. Ich habe das aber ähnlich in einem Dashboard zum Zählen von Rechnungen schon gemacht und vielleicht hilft Dir der Ansatz ja weiter.
Ich habe 2 Datumsfelder angelegt Start und Ende und dann folgende Formel /// "Rechnungen" ist die Tabelle in der ersuchen soll und "sum(Rechnungspositionen.Bruttopreis))" addiert die der Rechnungspositionen
let xBeg := 'Start Datum';
let xEnd := 'End Datum';
count((select Rechnungen)[RgDatum >= xBeg and RgDatum <= xEnd].sum(Rechnungspositionen.Bruttopreis))VG
Andreas
-
Hallo Andreas,
vielen Dank für Deinen Hinweis. Es hat zwar nicht direkt funktioniert, hat mich aber irgendwie auf eine Idee gebracht ;-)
Meine Lösung:
let myAuswertungStart := 'Auswertung Start';
let myAuswertungEnde := 'Auswertung Ende';
let alleBerichteImZeitraum := (select Berichte where Beratungsdatum >= myAuswertungStart and Beratungsdatum <= myAuswertungEnde).Kontakt;
cnt(unique(alleBerichteImZeitraum))
Der Trick war also "unique".
-
Hallo, mein Vorschlag wäre, direkt die Tabelle Berichte zu filtern und mit unique() mehrfach vorkommende Kontakte nur als einen zu zählen:
let myVon := 'Auswertung Start';
let myBis := 'Auswertung Ende'
cnt(unique(select Berichte where Beratungsdatum >= myVon and Beratungsdatum <= myBis).Kontakte)
-
Okay, ich sehe, es hat sich erledigt. ;)
-
Aber vielen Dank Copytexter!!!
Content aside
- vor 4 JahrenZuletzt aktiv
- 5Antworten
- 540Ansichten