Ich habe Schwierigkeiten mit der folgenden Aussage. Ich habe versucht, es auf mehrere Arten zu schreiben, aber verschiedene Fehler entsprechend erhalten. Ich möchte die Ergebnis-Ausgabe mit jeder Zählung in einer getrennten (aber angrenzenden) Spalte zu einer einzelnen Tabelle sein, etwa so ...SQL Server - Schwierigkeit mit COUNT Anweisung für mehrere Tabellen
--------+--------+-------- | alias1 | alias2 | alias3 | --------+--------+-------- | count1 | count2 | count3 | --------+--------+--------
Methode 1:
SELECT COUNT(*)
FROM AdventureWorks2012.HumanResources.Department AS Alias1
, (SELECT COUNT(*)
FROM AdventureWorks2012.HumanResources.Employee) AS Alias2
, (SELECT COUNT(*)
FROM AdventureWorks2012.HumanResources.EmployeeDepartmentHistory) AS Alias3
Dies gibt eine Fehler auf Alias2 (und Alias3) und erklärt: „es wurde keine Spalte für Spalte 1 von‚Alias2‘angegeben“
als ich dann versuchen, es zu überarbeiten, wie folgt:
SELECT COUNT(*)
FROM AdventureWorks2012.HumanResources.Department AS Alias1
, (SELECT COUNT(*) AS Alias2
FROM AdventureWorks2012.HumanResources.Employee)
, (SELECT COUNT(*) AS Alias3
FROM AdventureWorks2012.HumanResources.EmployeeDepartmentHistory)
Der Fehler verschiebt sich zu dem ',' das die SELECT-Anweisungen mit dem Fehler "Falsche Syntax in der Nähe von ',' trennt. Erwartet AS, ID oder QUOTED_ID.“
Was ich bin versucht, scheint einfach genug zu tun, aber ich komme leer aus. Jede Hilfe wäre sehr geschätzt.
Welche Version von SQL-Server ist dieser Hinweis? Dieser natürliche Join ist de in zukünftigen Versionen präzisiert (Ich denke 2012 könnte noch funktionieren, aber nicht auf Outer Joins (* =) –
@clifton_h SQL Server hat nie natürlichen Join unterstützt, meinst du die alte, nicht ANSI Joinsyntax (FROM a, b) was zu einem Cross-Join führt, wenn Sie die where-Klausel vergessen? Wenn ja, nein, es ist nicht veraltet. Nur nicht zu empfehlen. –
Greg, warum nicht einfach [ziehe die Zählungen von 'sys.partitions' anstatt manuell alle Tabellen zu scannen] (http://sqlperformance.com/2014/10/t-sql-queries/bad-habits-count- der harte Weg)? Oder beschreibt diese fiktive Abfrage gegen AdventureWorks-Tabellen nicht wirklich Ihr tatsächliches Problem? –