1

重複の可能性:
グループ化された行を連結する

私はこのテーブルで作業しています:

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です

4

0 に答える 0