Benutzer mit den meisten Antworten
Problem mit Ergebnis aus einer Abfrage für einen Bericht

Frage
-
Hallo zusammen,
ich habe ein Problem mit dem Ergebnis einer SQL Abfrage, die ich in einem Bericht hinterlegen möchte.
Und zwar habe ich zu einer Kampagne die Gesamtzahl der Termine summiert und danach eben noch einzeln aufgeteilt wieviele davon offen, wieviele abgeschlossen und wieviele eben storniert wurden.
Rein logisch müssten die offenen, stornierten und abgeschlossenen Termine von der Summe her der Gesamtzahl der Termine gleich kommen.
Dies tun sie aber nicht... hier fehlen in einigen Fällen ca. 5 - 10 Termine, in manchen Fällen hingegen passt es einwandfrei.
Wie kann das sein?
Es gibt bei Terminen doch nur die 3 statecodes: offen, abgeschlossen und storniert oder?
Die Abfrage sieht bei mir wie folgt aus:
SELECT * , [Termine] * [Kosten/Termin] AS [Kosten] , CASE WHEN [realisierter Umsatz] > 0 THEN ([Termine] * [Kosten/Termin] * 100) / [realisierter Umsatz] ELSE 0 END AS [Refinanzierung] FROM( SELECT cmp.campaignid , cmp.name , Convert (Nvarchar,cmp.actualstart,104)AS [Startdatum] , Convert (Nvarchar,cmp.actualend,104) AS [Enddatum] , (SELECT sum(estimatedvalue) FROM filteredopportunity WHERE new_kampagneid = cmp.campaignid and statecode = 0) AS [offenes Potential] , (SELECT sum(new_gewumsatz) FROM filteredopportunity WHERE new_kampagneid = cmp.campaignid and statecode = 0) AS [offenes gewichtetes Potential] , (SELECT sum(actualvalue) FROM filteredopportunity WHERE new_kampagneid = cmp.campaignid and statecode = 1) AS [realisierter Umsatz] , (SELECT sum(estimatedvalue) FROM filteredopportunity WHERE new_kampagneid = cmp.campaignid and statecode = 2) AS [verlorenes Potential] , (SELECT count (*) FROM filteredappointment WHERE new_kampagneid = cmp.campaignid) AS [Gesamtzahl Termine] , (SELECT count (*) FROM filteredappointment WHERE new_kampagneid = cmp.campaignid and statecode = 0) AS [Anzahl offene Termine] , (SELECT count (*) FROM filteredappointment WHERE new_kampagneid = cmp.campaignid and statecode = 1) AS [Anzahl geschlossener Termine] , (SELECT count (*) FROM filteredappointment WHERE new_kampagneid = cmp.campaignid and statecode = 2) AS [Anzahl stornierter Termine] , (SELECT count (*) FROM filteredopportunity WHERE new_kampagneid = cmp.campaignid) AS [Gesamtzahl VKCs] , (SELECT count (*) FROM filteredopportunity WHERE new_kampagneid = cmp.campaignid and statecode = 0) AS [Anzahl offener VKCs] , (SELECT count (*) FROM filteredopportunity WHERE new_kampagneid = cmp.campaignid and statecode = 1) AS [Anzahl gewonnener VKCs] , CONVERT(INT, '2') AS [Kosten/Termin] FROM filteredcampaign cmp GROUP BY cmp.campaignid, cmp.name, cmp.actualstart, cmp.actualend ) x
Viele Grüße
Martin
Antworten
-
Ich würde mir mal aus der Tabelle anschauen, in welchen statecodes die Deiner Meinung nach fehlenden Datensätze sich befinden. Das klärt dann schon die Ursache...
Name Value Description Status Reason Status Code Value Canceled 2 Specifies that the appointment is canceled. Canceled 4 Completed 1 Specifies that the appointment is completed. Completed 3 Open 0 Specifies that the appointment is open. Free Tentative
1 2
Scheduled 3 Specifies that the appointment is scheduled. Busy Out of Office
5 6
Gruß Carsten Groth http://carstengroth.spaces.live.com- Als Antwort markiert martin.diefenbach Mittwoch, 28. Juli 2010 06:34
Alle Antworten
-
Ich würde mir mal aus der Tabelle anschauen, in welchen statecodes die Deiner Meinung nach fehlenden Datensätze sich befinden. Das klärt dann schon die Ursache...
Name Value Description Status Reason Status Code Value Canceled 2 Specifies that the appointment is canceled. Canceled 4 Completed 1 Specifies that the appointment is completed. Completed 3 Open 0 Specifies that the appointment is open. Free Tentative
1 2
Scheduled 3 Specifies that the appointment is scheduled. Busy Out of Office
5 6
Gruß Carsten Groth http://carstengroth.spaces.live.com- Als Antwort markiert martin.diefenbach Mittwoch, 28. Juli 2010 06:34