-3
注文リストから最新の注文を探して注文日が3か月以上かどうかを調べるクエリを実行しています。C# - SELECT FROMクエリはMS SQLで動作しますが、SqlCommand内では動作しません。
私はOKで実行しているように見えるMS SQLでクエリを書かれているが、私は私のC#のコードに入れたとき、それはここでエラー
私を投げるには、コードがMS SQLで
SELECT CompanyID
FROM (SELECT CompanyID,
OrderedDateTime,
Rank() over (partition by CompanyID order by OrderID DESC) RankOrder
FROM dbo.Orders OD1) TBL
WHERE RankOrder = 1
AND OrderedDateTime <= DATEADD(mm,-2,GetDate())
ですこれは私がMS SQLクエリを実行すると、それは正しいですが、私はC#でコードを実行すると、それは次のエラーを与える会社のIDのリストを与える
cmd.CommandText = "SELECT CompanyID FROM dbo.Companies WHERE CompanyID IN (SELECT CompanyID FROM (SELECT CompanyID, OrderedDateTime, Rank() over (partition by CompanyID order by OrderID DESC) RankOrder FROM dbo.Orders OD1) TBL WHERE RankOrder = 1 AND OrderedDateTime <= DATEADD(mm,-3,getDate())";
私のプロジェクトのコードです:
Additional information: Incorrect syntax near 'TBL'.
誰にもこれが起こっている理由とそれを修正する方法について説明できますか?
おかげ
2つのクエリが同じではありませんか? 'SELECT CompanyID FROM(SELECT ...'対 'SELECT CompanyID FROM dbo.CompaniesどこCompanyID IN(SELECT ...'? – sh1rts