以下のステートメントでは問題があります。私はそれを複数の方法で書こうとしましたが、それに応じて異なるエラーを受け取ります。これは返すSQL Server - 複数テーブルのCOUNTステートメントでの問題
SELECT COUNT(*)
FROM AdventureWorks2012.HumanResources.Department AS Alias1
, (SELECT COUNT(*)
FROM AdventureWorks2012.HumanResources.Employee) AS Alias2
, (SELECT COUNT(*)
FROM AdventureWorks2012.HumanResources.EmployeeDepartmentHistory) AS Alias3
:私は
--------+--------+-------- | alias1 | alias2 | alias3 | --------+--------+-------- | count1 | count2 | count3 | --------+--------+--------
方法1 ...そうのように、別々の(しかし、隣接する)欄の各カウントを持つ単一のテーブルに出力する結果が欲しいですAlias2(およびAlias3という)上のエラー私は、次のようにそれを手直ししようとすると
「いいえ欄が 『Alias2』の列1のために指定されていない」、述べて:
SELECT COUNT(*)
FROM AdventureWorks2012.HumanResources.Department AS Alias1
, (SELECT COUNT(*) AS Alias2
FROM AdventureWorks2012.HumanResources.Employee)
, (SELECT COUNT(*) AS Alias3
FROM AdventureWorks2012.HumanResources.EmployeeDepartmentHistory)
エラーは、 '、'の近くの構文が誤っているSELECT文を区切る '、'にシフトします。 AS、ID、またはQUOTED_IDを期待。」
ことは私は何をしようとしてることは十分に単純なようだが、私は空に上がってくるよ。任意の助けをいただければ幸いです。その結果、あなたを得るために
このノートSQL-Serverのどのバージョンですか?この自然な結合はde (* =) –
@clifton_h SQL Serverはナチュラルジョインをサポートしていません。古いスタイルのANSI結合構文(FROM a、b )where句を忘れた場合、クロス結合につながりますか?もしそうなら、それは廃止されていません。ちょうどお勧めしません。 –
Gregでは、[手動ですべてのテーブルをスキャンするのではなく、 'sys.partitions'からカウントを取得するだけではどうでしょう。](http://sqlperformance.com/2014/10/t-sql-queries/bad-habits-count- - ハード - 方法)?または、実際の問題を真に説明していないAdventureWorksテーブルに対するこの架空のクエリですか? –