Berechnungen im Select! Please help :confused:

Andi0424

Grünschnabel
Hi Zusammen,

habe folgendes Problem. Und zwar will ich auf 2 Tabellen einen Select absetzen. (Microsoft SQL Server) Dieser hier funktioniert wunderbar.

Code:
SELECT     Monat, ROUND(CAST(COUNT(*) AS float) /
                          (SELECT     COUNT(*) AS Expr1
                            FROM          Quote AS q
                            WHERE      (Monat = 'Apr') AND (Belegjahr = '2007') AND (Auswertungskennzeichen = 'Asia')
                            GROUP BY Monat) * 100, 2) AS ConversionRate
FROM         OC AS oc
WHERE     (Monat = 'Apr') AND (Belegjahr = '2007') AND (Auswertungskennzeichen = 'Asia')
GROUP BY Monat

Jedoch will ich diesen Select nicht auf einen bestimmten Monat einschränken, sondern die Datensätze für ein ganzes Jahr, aufgeteilt auf die verschiedenen Monate bekommen. Ebenso gibts es noch das Auswertungskennzeichen, hier welcher Weltteil z.B. Asia, North-America, EU-West usw...

Berechnet wird hier eigentlich nur das Verhältnis der Auftragsbestätigungen im Vergleich zu Angebote.
Das soll dann zum Schluss wie folgt aussehen:

Im Select:
Code:
SELECT     Monat, ROUND(CAST(COUNT(*) AS float) /
                          (SELECT     COUNT(*) AS Expr1
                            FROM          Quote AS q
                            WHERE     (Belegjahr = @jahr) AND (Auswertungskennzeichen = @markt)
                            GROUP BY Monat) * 100, 2) AS ConversionRate
FROM         OC AS oc
WHERE    (Belegjahr = @jahr) AND (Auswertungskennzeichen = @markt)
GROUP BY Monat

Als Ergebnis soll dann so was rauskommen:

Monat Rate in %
Jan 44
Feb 30
Mär 60
Apr 54

Kann mir hier vielleicht jemand weiterhelfen. Bin am verzweifeln. oder hat jemand gar eine bessere Idee? :confused::confused::confused: *pleasehelp*
 
AH da ANDE!!
man sieht sich immer 2 mal im leben gelle, auch wenns übers Forum passiert :)
--> hast dir gutes Forum ausgesucht, kriegt man immer schnell ne antwort, bin hier auch schon seit 3 Monaten und mir wurde schon so einiges beantwortet...:suspekt:

ja wegen deinem Problem, hab dei mail gekriegt, werd heut abend oder morgen früh mich mal dahinter klemmen, bin grad a bissl im Stress...
man sieht sich...
 
Hallo,

versuche doch mal beide Tabellen zu joinen und dann zu rechnen siehe Code:

Code:
SELECT 	OC.Auswertungskennzeichen,
	OC.Belegjahr,
	OC.Monat,
	ROUND((OC.Anzahl/QU.Anzahl)*100,2) AS ConversionRate
FROM 
(SELECT Auswertungskennzeichen,Belegjahr,Monat,CAST(Count(*) AS FLOAT) Anzahl FROM OC GROUP BY Auswertungskennzeichen,Belegjahr,Monat) OC INNER JOIN 
(SELECT Auswertungskennzeichen,Belegjahr,Monat,CAST(Count(*) AS FLOAT) Anzahl FROM Quote GROUP BY Auswertungskennzeichen,Belegjahr,Monat) QU
ON OC.Auswertungskennzeichen = QU.Auswertungskennzeichen AND OC.Belegjahr = QU.Belegjahr AND OC.Monat =QU.Monat
WHERE OC.Auswertungskennzeichen='Asia' AND
	OC.Belegjahr = '2007'


Gruß
 
Danke, hab zwar noch ein paar Änderungen an deinem Select machen müssen, aber jetzt funktionierts einwandfrei... :-)

*glücklichbin*

Vg,
Andi :)
 

Neue Beiträge

Zurück