Databases Reference
In-Depth Information
case when ret_2.RQ_Bestellung >= 100 then 100
when ret_2.RQ_Bestellung between 90 and 99 then 90
when ret_2.RQ_Bestellung between 80 and 89 then 80
when ret_2.RQ_Bestellung between 70 and 79 then 70
when ret_2.RQ_Bestellung between 60 and 69 then 60
when ret_2.RQ_Bestellung between 50 and 59 then 50
when ret_2.RQ_Bestellung between 40 and 49 then 40
when ret_2.RQ_Bestellung between 30 and 39 then 30
when ret_2.RQ_Bestellung between 20 and 29 then 20
when ret_2.RQ_Bestellung between 10 and 19 then 10
when ret_2.RQ_Bestellung between 0 and 9 then 0
END AS [Retourenquote]
from
(Select ord.Kunde, Bestellungen, isnull (Retoure,0)Retoure,
isnull (cast(cast(Retoure as numeric)/cast(Bestellungen as numeric) *100 as
DECIMAL(10,2)),0)RQ_Bestellung
from
((SELECT c.riskID Kunde,COUNT (s.orderNo) Bestellungen
FROM [dbo].[iw_sales]s,[dbo].[iw_customer]c
where s.customerNo = c.customerNo
and s.[Type] = 2
group by c.riskID)as ord
FULL OUTER JOIN
(SELECT c.riskID Kunde, count (rh.orderNo) Retoure
FROM [dbo].[iw_return_header]rh,[dbo].[iw_return_line]rl,
[dbo].[iw_customer]c
where rh.customerNo = c.customerNo
and rh.returnNo = rl.returnNo
and rl.type = 2
group by c.riskID) as ret
on ord.Kunde = ret.Kunde))ret_2)ret_3
group by ret_3.Retourenquote
order by ret_3.Retourenquote
Wenn Sie diesen Select laufen lassen, bekommen Sie folgendes Ergebnis (Bild 19.7).
Retourenquote
Kunden
NULL
586
0
42.293
10
2.120
20
4.311
30
5.521
40
3.620
50
12.559
60
7.681
70
4.405
80
3.615
90
562
Bild 19.7■
Ergebnis: Anzahl der Kunden pro Cluster
100
20.404
Warum gibt es hier
NULL
-Ergebnisse? Normalerweise sollte jeder Kunde einer der Gruppen
zugeordnet sein. Es gibt aber 586 Fälle, die keiner Gruppe zugeordnet sind. Grund hierfür
ist, dass wir die Kommastellen nicht beachtet haben!