SQL Serverが構文エラーをスローするため、このクエリを修正したいと考えています。SQL Server 2008の構文エラーを回避するためにこのクエリを修正する方法
クエリの目的は、列Articulo.ReferenciaFichas
を連結して、select
ステートメントに含める1つの文字列にします。
テーブル
Articulos:
Codigo Nombre
---------------
Z540021 Motul oil 1050w2
Z540022 Motul oil 1030w
ReferenciaFichas:
Codigo Articulo
--------------------
MF99.00102 Z540021
MP08-0186 Z540021
OUT1006 Z540021
MTUL14 Z540022
が列を連結するには、私は
DECLARE @provrefs VARCHAR(200)
SELECT
@provrefs = COALESCE(@provrefs + ',', '') + [provlist].[Codigo]
FROM
(SELECT
[Codigo]
FROM
[GES16100].[dbo].[ReferenciasFichas]
WHERE
Articulo = 'Z540021') provlist
SELECT @provrefs
に動作します。このスタンドアロンのクエリを書きました
MF99.00102,MP08-0186,OUT1006
しかし、私が選択するには、このクエリを移動すると、クエリがないため、構文エラーを動作します:
結果があります。 ファイルの先頭にdeclareステートメントを移動しようとしましたが、余分な括弧が 追加されました。しかし、私は解決策を見つけることができませんでした。
どうすれば修正できますか?
このクエリが動作していません。
SELECT
[arts].[Codigo] AS [Referencia],
((DECLARE @provrefs VARCHAR(200)
SELECT @provrefs = COALESCE(@provrefs + ',', '') + [provlist].[Codigo]
FROM
(SELECT [reff].[Codigo]
FROM [GES16100].[dbo].[ReferenciasFichas] reff
WHERE [reff].[Articulo] = [arts].[Codigo]) provlist)
SELECT @provrefs) AS [Proveedores]
FROM [GES16100].[dbo].[Articulos] AS arts
期待される結果stuff()
with select ... for xml path ('')
method of string concatenationを使用して
Referencia Proveedores
--------------------------
Z540021 MF99.00102,MP08-0186,OUT1006
Z540022 MTUL14
感謝。私はXMLパスを試してみましたが、最初のカンマを削除する方法はわかりません。スタッフの参考にもありがとう。 – ppk
@ppk喜んで助けてください! – SqlZim