ProductName
、Qty
、およびその他の列を返すビューがあります
次のように定義されます。
SELECT ProductName, Qty, /* etc. */
FROM SomeConcreteTable
SomeConcreteTable
とを定義ProductName
します。nvarchar(40)
Qty
float
SELECT ProductName, SUM(Qty)
FROM MyView
GROUP BY ProductName
これにより、エラーが発生します
オペランドのデータ型 nvarchar は合計演算子に対して無効です
ビューが行を返さない場合、行をWHERE
返すようにビューの条件を変更してもエラーは発生しません。
SELECT ProductName, SUM(COALESCE(vStarts.LotQty, 0))
FROM MyView
GROUP BY ProductName
ビューが行を返すかどうかに関係なく機能します。
この投稿で、Lieven Keersmaekers は、クエリでの匿名型の使用には、型のカウントが推測されないため、同じ問題があったと述べています。
理にかなっています。
ただし、私の場合、型は推論されるべきではありません-それらはテーブルからのものです。
そのようなよく悪用される質問をするつもりはありませんが、これはバグですか?
合計が null 許容 float (varchar ではなく) に対するものである場合に、行がない場合の合計でこのエラーが発生するという予期しない動作のようです。
Microsoft SQL Server 2012 (SP1) - 11.0.3482.0 (X64)