Das Beispiel hat gleich mehrere Mängel. Zum einen hat es überhaupt keinen Sinn, den Spaltentyp `d` zuerst mit
\newcolumntype{d}[1]{D{.}{\cdot}{#1}}
zu definieren, um ihn dann mit
\makeatletter
\newcolumntype{d}[1]{>{\D@{,}{,}{#1}}1<{\DC@end}}
\makeatother
erneut, aber anders zu definieren.
Wenn wir davon ausgehen, dass die zweite Spaltendefinition die gewünschte ist, dann ist diese ebenfalls zweifach fehlerhaft. Zum Einen fehlt bei `\D@` ein `C`, zum Anderen gibt es keinen grundlegenden Spaltentyp `1`, was auch zu der Fehlermeldung: ``Package array Error: Illegal pream-token (1): `c' used``, in der Terminal-Ausgabe und in der `log`-Datei führt. Vermutlich wird an der Stelle ein `l` gewünscht.
Mit diesen beiden Änderungen würde es schon einmal funktionieren (`\begin{document}` und `\end{document}` vorausgesetzt). Von zusätzlich Ballast befreit ergibt sich:
\documentclass{scrreprt}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}% Moderne Editoren haben UTF8 voreingestellt.
\usepackage[ngerman]{babel}
\usepackage{booktabs}
\usepackage{dcolumn}
\makeatletter
\newcolumntype{d}[1]{>{\DC@{,}{,}{#1}}l<{\DC@end}}
\makeatother
\begin{document}
\begin{tabular}{@{}lld{2.2}@{}} \toprule
\multicolumn{3}{c}{Kaese--Uebersicht} \\ \midrule
Kaese & Herkunftsland &
\multicolumn{1}{l@{}}{Preis (Euro)} \\
\cmidrule(r){1-1}\cmidrule(lr){2-2}\cmidrule(l){3-3}
Edamer & Holland & 12,23 \\
Gouda & Holland & 9,34 \\
Emmentaler & Allgaeu & 2,34 \\
Bergkaese & Bayern & 1,- \\
\bottomrule
\end{tabular}
\end{document}
Sollen übrigens die Zahlen nicht linksbündig, sondern im Kern zentriert sein, wäre die Definition einfacher:
\documentclass{scrreprt}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}% Der Online-Editor verwendet ebenfalls UTF8.
\usepackage[ngerman]{babel}
\usepackage{booktabs}
\usepackage{dcolumn}
\newcolumntype{d}[1]{D{,}{,}{#1}}
\begin{document}
\begin{tabular}{@{}lld{2.2}@{}} \toprule
\multicolumn{3}{c}{Kaese--Uebersicht} \\ \midrule
Kaese & Herkunftsland &
\multicolumn{1}{l@{}}{Preis (Euro)} \\
\cmidrule(r){1-1}\cmidrule(lr){2-2}\cmidrule(l){3-3}
Edamer & Holland & 12,23 \\
Gouda & Holland & 9,34 \\
Emmentaler & Allgaeu & 2,34 \\
Bergkaese & Bayern & 1,- \\
\bottomrule
\end{tabular}
\end{document}
Hier noch die Ergebnisse zum Vergleich:
![Zahlen linksbündig][1] ![Zahlen zentriert][2]
Übrigens habe ich auch gleich die `\\` nach der Tabelle entfernt. Man sollte niemals versuchen, vertikalen Abstand mit `\\` zu erzeugen. Nicht nur, dass diese Abstände am Seitenanfang landen können. Sie verschlechtern teilweise auch den Absatz- und den Seitenumbruch. Auch Absätze bitte nie mit `\\`, sondern i. d. R. mit Leerzeile im Code oder mit `\par` erzeugen.
Bei Einstellung der korrekten Eingabecodierung (Paket `inputenc`) kann man übrigens auch Umlaute eingaben:
\documentclass{scrreprt}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}% Moderne Editoren haben UTF8 voreingestellt.
\usepackage[ngerman]{babel}
\usepackage{booktabs}
\usepackage{dcolumn}
\makeatletter
\newcolumntype{d}[1]{>{\DC@{,}{,}{#1}}l<{\DC@end}}
\makeatother
\begin{document}
\begin{tabular}{@{}lld{2.2}@{}} \toprule
\multicolumn{3}{c}{Käse-Übersicht} \\ \midrule
Käse & Herkunftsland &
\multicolumn{1}{l@{}}{Preis (Euro)} \\
\cmidrule(r){1-1}\cmidrule(lr){2-2}\cmidrule(l){3-3}
Edamer & Holland & 12,23 \\
Gouda & Holland & 9,34 \\
Emmentaler & Allgaeu Allgäu & 2,34 \\
Bergkäse & Bayern & 1,- \\
\bottomrule
\end{tabular}
\end{document}
Das Ergebnis kannst Du Dir einfach über den Online-Editor-Link anschauen.
Bei der Gelegenheit habe ich auch noch den falschen Bindestrich korrigiert. In der deutschen Typographie verwendet man `-` als Trenn- oder Bindestrich und `--` als Gedankenstrich (mit Leerzeichen davor und danach). In der englischen Typographie sieht das anders aus.
[1]: http://texwelt.de/wissen/upfiles/test_11.png
[2]: http://texwelt.de/wissen/upfiles/test1_10.png