2016-09-02 14 views
-1

SQL Serverで複数の行の結果を結合するサブクエリでクエリを実行しようとしています。警告:odbc_fetch_array()[Microsoft] [ODBCカーソルライブラリ]命令SELECTに句があります。GROUP BY

私はMicrosoft SQL Server Management Studioで実行するとすばらしいことです!

Query running on the Microsoft SQL Server Management Studio

しかし、PHPと同じクエリをやって、私はこの警告を受ける:

警告:odbc_fetch_array():SQLエラー:[Microsoft]の[ODBCカーソルライブラリ]命令SELECT句を持っていますSQLGetDataのでGROUP BY、SQL状態SL005

SQL:

SELECT CONVERT(VARCHAR(7),[Ficha_Tecnica].DataEntrega,111) as DataEntrega, 
[Ficha_Tecnica].CodigoCliente, 
[Ficha_Tecnica].CodTipoServico, 
count(*) as Contagem, 
[Ficha_Tecnica].NumeroOs, 
(SELECT CAST([Cartoes].Produto + ',' AS VARCHAR(400)) 
      FROM [Cartoes] 
      WHERE [Cartoes].NumeroOS = [Ficha_Tecnica].NumeroOs 
      ORDER BY [Cartoes].Produto 
      FOR XML PATH('')) AS Produto2 FROM Ficha_Tecnica WHERE 1=1 and Ficha_Tecnica.DataEntrega >= '2016-01-19' 
and Ficha_Tecnica.DataEntrega <= '2016-09-27' 
GROUP BY CONVERT(VARCHAR(7),[Ficha_Tecnica].DataEntrega,111) 
, [Ficha_Tecnica].CodigoCliente 
, [Ficha_Tecnica].CodTipoServico 
, [Ficha_Tecnica].NumeroOs 
ORDER BY CONVERT(VARCHAR(7),[Ficha_Tecnica].DataEntrega,111) asc 

私のPHPのバージョンは5.6.19

SQL Server 2012の

誰かが起こっことができるものの任意の手掛かりを持っているのですか? ありがとう!

答えて

0

私はついにこの問題と解決策を見つけました! 試してから4時間後に!

私は、サブクエリを作っていた列にCASTを作る問題を解決:

CAST(
      (SELECT CAST([Cartoes].Produto + ',' AS VARCHAR(400)) 
      FROM [Cartoes] 
      WHERE [Cartoes].NumeroOS = [Ficha_Tecnica].NumeroOs 
      ORDER BY [Cartoes].Produto 
      FOR XML PATH('')) 

    AS VARCHAR(1000)) AS Produto2 

何が起こることは我々はPHPとSQL Serverから大きすぎる列を取得するときに間違った何かが起こるということですタイプ "Text"または "VARCHAR(MAX)"の列、たとえば!

だからそれだ!

Tnx!

関連する問題