Bedingte Distinct Count in Crystal Reports
Ich habe einen Datensatz so:
ID PersonID ClassID Attended Converted
1 1 1 1 0
2 1 1 1 1
3 1 1 1 1
4 2 1 1 1
5 3 2 0 0
6 3 2 1 1
7 4 2 1 0
Baue ich einen Bericht, dass sich die Gruppen durch die ClassID (eigentlich bin ich mit einem parameter, der erlaubt die Gruppierung auf ein paar verschiedene Spalten, aber der Einfachheit wegen hier, ich bin nur mit ClassID). Ich muss eine Berechnung in jeder Gruppe eine Fußzeile. Um dies zu tun, die Berechnung, die ich brauchen, um count Datensätze mit PersonIDs eindeutig zu dieser Gruppe. Der Haken ist, in einem Fall, diese Aufzeichnungen müssen auch die match-Kriterien. EG:
X = [Count of records where Converted = 1 with distinct PersonID]
Y = [Count of records where Attended = 1]
Dann brauche ich zur Anzeige der quotient als Prozentsatz:
(X/Y)*100
Also der endgültige Bericht wird in etwa so Aussehen:
ID PersonID Attended Converted
CLASS 1 GROUP
1 1 1 0
2 1 1 1
3 1 1 1
4 2 1 1
Percent= 2/4 = 50%
CLASS 2 GROUP
5 3 0 0
6 3 1 1
7 4 1 0
Percent= 1/2 = 50%
Ankündigung in der Klasse 1 Gruppe, es gibt 3 Datensätze, die mit Umgerechnet = 1, aber 'X' (der Zähler) ist gleich 2, weil der doppelte PersonID. Wie kann ich berechnen, das in Crystal Reports?
Guten Fang. Ich habe aktualisiert die Quelle der Daten. Danke
InformationsquelleAutor xr280xr | 2013-02-09
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich musste ein paar verschiedene Formeln, um diese Arbeit mit Hilfe von diese Website.
Ersten, die ich erstellt eine Funktion namens fNull wie vorgeschlagen, von diesem Standort, das ist gerade leer. Ich Frage mich, wenn nur die Eingabe von null an seiner Stelle würde den job tun, aber nicht bekommen, um es zu testen. Als Nächstes erstellte ich Formeln zu beurteilen, ob eine Zeile besucht wurde und wenn eine Zeile umgewandelt wurde.
fTrialAttended:
fTrialsConverted:
Beachten Sie, dass ich zurückkehren werde der PersonID, wenn beachtet oder umgesetzt wird, wahr. Dies ermöglicht mir tun die distinct count-in der nächsten Formel - (X von der ursprünglichen Frage):
fX:
Dieser ist platziert in die Fußzeile der Gruppe. Wieder erinnern @fTrialsConverted ist Rückkehr die PersonID von Studien umgesetzt (oder fNull, die werden nicht gezählt). Eine Sache, die ich nicht verstehe, ist, warum ich musste explizit die group by-Feld (ClassID) wenn es in den Gruppenfuß, aber ich habe oder würde es zählen, die Summe über alle Gruppen. Weiter -, Y -, war nur ein straight-up-count.
gJ:
Und schließlich eine Formel für den Prozentsatz:
Die Letzte Sache, die ich sagen werde, ist, ich wollte auch die Berechnung der Summe über alle Gruppen in den berichtsfuß. Zählen insgesamt Y war einfach, es ist das gleiche wie das fY-Formel, außer Sie lassen die Gruppe durch die parameter. Zählen insgesamt X war schwieriger, da brauche ich die Summe der X, die aus jeder Gruppe und der Kristall kann nicht Summe eine andere Summe. Also ich aktualisierte meine X-Formel zu halten Sie eine laufende Summe in einer globalen Variablen:
fX:
Jetzt kann ich mit rtConverted in der Fußzeile für die Berechnung. Diese führen auf eine verwirrende Sache, die hat mich ein paar Stunden, um herauszufinden,. rtConverted wurde nicht behandelt wird wie eine Globale variable, bis ich explizit Hinzugefügt, das Schlüsselwort global, trotz aller Dokumentationen, die ich gesehen habe sagen, global ist die Standardeinstellung. Sobald ich, dass herausgefunden, es hat alles Super geklappt.
Dies war ein ziemlich spezielles problem. Ich bin froh, dass es war jemand anderes, könnte es helfen!
InformationsquelleAutor xr280xr