2 つの列を持つテーブルがあります。1 つ目は PKey、2 つ目は識別子です。それぞれBANとIID。
個別の BAN ごとに上位 2 つの IID を抽出しようとしています。From でサブクエリを使用して、正常に動作する Max(IID) を取得しました。ただし、テーブルを最初のステートメントに結合して、次に高い MAX(IID) を取得しようとすると、次のようになります。
「メッセージ 4104、レベル 16、状態 1、行 1 マルチパート識別子 "ii.iid" をバインドできませんでした。」
これは、2 番目の結合 "where iid < ii.iid" の Where ステートメントを参照しています。
select distinct ii.BAN, ii.IID, ii2.IID
from (select distinct BAN, IID = Max(IID) from Bill_Timeliness..Invoices with(nolock) group by BAN) II
join (select distinct BAN, IID = Max(IID) from Bill_Timeliness..Invoices with(nolock) where iid < ii.iid group by BAN) II2
on ii.ban = ii2.ban
whereステートメントの2番目のサブクエリとして最初の部分を再作成しようとしました。
どこで iid < max(ii.iid) も試しました
これらのどちらも機能しませんでした....誰かが私をここで助けてくれれば本当にありがたいです.
-ベン