COUNT()
NULL 値を含むフィールドで関数を使用するクエリの実行に問題があります。
unixODBC、PHP 5.3.10、および SQL Server 2008 で FreeTDS v0.91 を使用しています。7.2 プロトコルを使用するための接続があります。次のクエリを実行しようとしています。
SELECT COUNT(ProductCode) AS p FROM Membership
このクエリは、メンバーシップのすべての ProductCode が null の場合にのみエラーをスローします。これを SQL Server で直接実行すると、それがどのように評価されるか (0 まで) が評価されます。
FreeTDS からこのクエリを実行しようとすると、次のエラーが表示されます。
SQLSTATE[24000]: 無効なカーソル状態: 0 [FreeTDS][SQL Server]無効なカーソル状態 (/builddir/build/BUILD/php-5.3.10/ext/pdo_odbc/odbc_stmt.c:537 の SQLFetchScroll[0])
なぜ私がこのエラーを受け取るのか知っている人はいますか? 一度に 2 つの結果セットをループしようとしたときに同様のエラーが発生したことを覚えていますが、これは単一のクエリです。
に null 以外の値を持つレコードがある場合、このクエリは正常に機能しますProductCode
。COUNT()
の結果がゼロだった場合にのみ失敗するようです。
この問題の原因や解決方法を知っている人はいますか?