我正在尝试创建一个动态查询,该查询根据错误代码选择特定列。
例如,我有一个包含多列的错误表 (ErrorTable):
Transaction Number
Transaction Amount
Transaction Date
Error Code
Error Description
+100 other columns
错误表
Error Code
Error Description
Error Column
我正在尝试获取将获得以下内容的查询:
ErrorCode
ErrorDescription
ErrorColumn (Column Based On Error Code)
我尝试使用如下动态 SQL,但仍然只返回了列的名称,也许我做错了什么?
DECLARE @SQL VarChar(1000)
SELECT @SQL = 'SELECT et.ErrorCode, et.ErrorDescription, e.ErrorColumn
FROM ErrorTable et
INNER JOIN Errors e ON e.ErrorCodeID = et.ErrorCode'
Exec ( @SQL)
如果我在动态查询中使用 @ErrorColumn = 'TransactionDate' 而不是 e.ErrorColumn 我会得到结果,但对于上面的查询我没有。有任何想法吗?
更新 2
通过上述查询,我得到以下结果:
ErrorCode ErrorDesc TransactionDate TransactionAmount
1 Invalid Trans Date TransactionDate TransactionAmount
2 Invalid Trans Amount TransactionDate TransactionAmount
我想要以下内容:
ErrorCode ErrorDesc TransactionDate TransactionAmount
1 Invalid Trans Date May 1st
2 Invalid Trans Amount 65 Cats