SQL Server 2008 を使用しており、次の SQL スクリプトがあります。
Select o.CustomerId as CustomerNoId, OrderValue, OrderDate
From dbo.Orders as o
Inner Join (
Select Top (10) CustomerId
From dbo.Customers
where Age < 60
)
As c
On c.CustomerId = o.CustomerId
これは、ローカルの SQL Server インスタンスで dbo.Customers および dbo.Orders と共に使用すると、必要に応じて機能します。Customers テーブルから返された最初の 10 個の customerIds (1688 行) について、orders テーブルからすべての行が返されます。
ただし、さらに多くの行を含む Customers テーブルと Orders テーブルを保持するリンク サーバーがあります。リンク サーバーから dbo.Orders および dbo.Customers テーブルを使用するようにスクリプトを変更すると、奇妙な結果が得られます。正しいデータが返されたように見えますが、上位 10 行のみが返されます。
私は SQL の専門家ではないので、なぜ異なる動作をする必要があるのか わかりません。
任意の提案をいただければ幸いです。