いくつかの条件で 2 つのテーブルからデータを取得しようとしています。条件で内部結合を実行すると、巨大な値 (200000 データ) が得られます。しかし、グループ化すると、(8000 データ) のような非常に少ない値が得られます。
SELECT Tcg.SK_tID, Tcg.SK_ServiceProviderID
INTO #CHDetails
FROM #ClientGroup Tcg
INNER JOIN dbo.Component AS chd ON chd.SK_PID = Tcg.SK_PID
AND chd.SK_ServiceProviderID = Tcg.SK_ServiceProviderID
AND chd.SK_CompID = @CHD
AND chd.ReportDate < @ReportDate
GROUP BY Tcg.SK_PID ,Tcg.SK_ServiceProviderID
この原因を教えていただけないでしょうか。内部結合は常に共通データを取ります。#ClientGroup テーブルのデータは約 70000 ですが、dbo.Component のデータは非常に巨大です。共通の PID とサービス プロバイダーを論理的にクエリすると、#ClientGroup 以下のレコードが返されます。それはどのように多くを与えていますか?
グループ化すると 8000 になります。しかし、2 つのテーブルの内部結合でグループ化を行う必要があるのはなぜですか。