重複の可能性:
グループ化された行を連結する
私はこのテーブルで作業しています:
fecha cliente preg resp puntos calif pagoxejec
2009-03-28 00:00:00 2005 9 23 1 94 5 5
2009-03-28 00:00:00 2005 9 31 1 94 5 5
2009-03-28 00:00:00 2005 9 32 1 55 3 3
2009-03-28 00:00:00 2005 9 33 1 37 2 2
2009-03-28 00:00:00 2005 9 34 0 0 0 0
2009-03-28 00:00:00 2379 7 8 1 0 35 35
(これはより多くのレコードを持っています。)
というテーブルがcliente
あり、これが私のクエリです。
DECLARE @supervisor varchar(50)/* sera una cadena de tipo 1 ó 3,4,5 para usarse como supervisor in (@supervisor)*/
DECLARE @fechainicial datetime /*será la fecha inicial tomada*/
DECLARE @fechafinal datetime /*será la fecha final tomada*/
SET @supervisor='1,2,3,4'
SET @fechainicial='2009-02-1 00:00:00.000'
SET @fechafinal='2009-03-19 00:00:00.000'
SELECT smerc.cliente, nivelmkt nivel, MAX(fecha) ultima, preg, resp
FROM smerc
INNER JOIN clientes on smerc.cliente=clientes.cliente
WHERE fecha BETWEEN @fechainicial AND @fechafinal
AND resp=1
GROUP BY smerc.cliente, preg, resp, nivelmkt
ORDER BY smerc.cliente
そしていくつかの結果:
cliente nivel ultima preg resp
892 1 2009-03-03 00:00:00 2 1
892 1 2009-03-03 00:00:00 3 1
892 1 2009-03-03 00:00:00 6 1
892 1 2009-03-03 00:00:00 23 1
892 1 2009-03-03 00:00:00 32 1
892 1 2009-03-03 00:00:00 34 1
892 1 2009-03-03 00:00:00 44 1
892 1 2009-03-03 00:00:00 999 1
1889 1 2009-03-03 00:00:00 2 1
nivel
テーブル:
nivel preg nomtiny
1 1 E
1 2 OME
1 3 EX
1 4 EP
1 5 E7
1 6 ROT
1 11 H
1 12 PPA
1 21 PDV
1 23 CDP
1 31 EXI
1 32 PLC
1 33 COP
1 34 PM
1 40 O
1 41 PAP
1 44 NCA
1 999 PRP
2 1 E
今、次の結果が必要です:
cliente nivel preg nomtiny
892 1 1 E
892 1 4 EP
892 1 5 E7
892 1 11 H
892 1 12 PPA
892 1 21 PDV
892 1 31 EXI
892 1 33 COP
892 1 40 O
892 1 41 PAP
smerc (BETWEEN @fechainicial AND @fechafinal)
このクライアントで、最後の結果にこの spreguntas'records または respuesta=0 がないことがわかります
(2 条件 クライアントがこの preg を持っていない (cliente'nivel を使用)、またはこのレコードを持っているが resp が 0 の場合)
次に、私の最終結果は次のようになります。
client allnomtinyforthisclient
892 E,EP,E7,H,PPA,PDV,EXI,COP,O,PAP
上記のように複数の行を 1 行に表示するにはどうすればよいですか?
サーバーはSQL 2005です