これは私のコードです。 HEADER_IDは主キーです。 EFFECTIVE_DATEは列名であり、一意の値を含みます。 パラメータとして列名を渡すと、クエリの出力が正しく表示されない
declare @ColumnName varchar(20)
set @ColumnName='EFFECTIVE_DATE'
select * into #temphdrid
from EMP_HEADER a
where
EMPLOYEE_ID in ('1111','2222') and
HEADER_ID=(select max(HEADER_ID) from EMP_HEADER b where
a.HEADER_ID=b.HEADER_ID and @ColumnName=(select MAX(@ColumnName) from EMP_HEADER c
where b.EMPLOYEE_ID=c.EMPLOYEE_ID and YEAR(FIN_START_DATE)=2016)
and YEAR(FIN_START_DATE)=2016)
and YEAR(FIN_START_DATE)=2016
私はそれが10行を示している代わりEFFECTIVE_DATEの@ColumnNameを通過しています、しかし、それは、この場合の各従業員、すなわち2ための単一の行を示すべきです。
EFFECTIVE_DATEを直接渡していれば正しく動作しています。
私は正確な問題が何であるか理解できませんのでお手伝いください。
ここでは大括弧が誤って配置される可能性があるため、@ CRLName =(MAX(@ColumnName)from EMP_HEADER c' –