2016-04-20 13 views
0

テーブルの3番目の列の合計(S)の上位200に基づいて3つの列(A、B、S)を取得するクエリを実行しています)。複数のSQLを選択して同じテーブルで交差する

SELECT TOP 200 PlantId, SKU, SUM(Demand) 
FROM NetDemandTable 
WHERE DemandWKId>=62 AND DemandWKId<=76 
GROUP BY PlantId, SKU 
ORDER BY SUM(Demand) DESC 

結果の列Bは、再び他の選択クエリのためのユニークなレコードとして考えられている、B、Sの列が、異なる条件とSELECTクエリで得られた結果と交差する必要があり、この列Bと

SELECT PlantId, SKU, SUM(Demand) 
FROM CuringNetDemandCopy 
WHERE DemandWKId < 62 
GROUP BY PlantId, SKU 
ORDER BY SUM(Demand) DESC 

ここで、2番目のクエリ結果は、最初のクエリから取得したB列のSKUのエンティティのみを選択する必要があります。

答えて

0

これを試してみてください。私が思う

with cte as 
(
SELECT TOP 200 PlantId, SKU, SUM(Demand) 
FROM NetDemandTable 
WHERE DemandWKId>=62 AND DemandWKId<=76 
GROUP BY PlantId, SKU 
) 

SELECT PlantId, SKU, SUM(Demand) 
FROM CuringNetDemandCopy 
WHERE DemandWKId < 62 and SKU in (select distinct SKU from cte) 
GROUP BY PlantId, SKU 
ORDER BY SUM(Demand) DESC 
+0

を、句がhere.BTW @Rajasekhar Kadamburを使用しなければならない "EXISTS"、Uは、クエリ1の主な目的が何であるかをfor.Like探しものを出力R – KumarHarsh

関連する問題