1

不明な列名を合計する必要があるプロシージャを作成する必要があります。

私がアクセスできる唯一の情報は、列の位置です。

次を使用して列名を取得できます。

 SELECT @colName = (SELECT column_name FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME='TABLENAME' AND ORDINAL_POSITION=@colNum)

次に、次のものがあります。

 SELECT @sum = (SELECT SUM(@colName) FROM TABLENAME)

次に、次のエラーが表示されます。

オペランドのデータ型 varchar は合計演算子に対して無効です

私はこれを機能させる方法について混乱しています。変換とキャストに関する多くの投稿を見てきましたが、これは名前であるため、フロート、数値などにキャストできません。

助けていただければ幸いです。

ありがとうございました

4

1 に答える 1

5

これは不可能です。SQL クエリを組み立ててから実行する必要があります。このようなもの:

SET @sqlquery = 'SELECT SUM(' + @colName + ') FROM TABLENAME'
EXECUTE ( @sqlquery )

それに応じて調整します。

于 2012-08-08T17:24:37.573 に答える