2017-02-20 3 views
-1
DECLARE @TABLE TABLE 
(
CustNO VARCHAR (50),  
RelationNo VARCHAR (50),  
POSTCODE VARCHAR (50), 
PHONE001 VARCHAR (50), 
PHONE002 VARCHAR (50), 
PHONE003 VARCHAR (50) 
) 
INSERT @TABLE 

SELECT 'A0002023','N195UN','121408', '02075614860','','' UNION ALL 
SELECT 'A0002023','N195UN','121408', '0207561860','','' UNION ALL 
SELECT 'E3085141','15252','408121', '5566456', '', '' UNION ALL 
SELECT 'E3085141','15252','408121', '256756616', '', '' UNION ALL 
SELECT 'ZBT5489','88888','555555', '6665589', '', '' UNION ALL 
SELECT 'JEZTSUR1','9999','558121', '9986141', '', '' UNION ALL 
SELECT 'JEZTSUR1','9999','558121', '963283', '', '' UNION ALL 
SELECT 'JEZTSUR1','9999','558121', '679971', '', '' 

Wenn CustNo, RelationNo und Phone Spiel als versuchen, Telefonnummer vonZusammenführen der zweite Zeilennummer, wenn vorhanden, bis Spalte 2 oder Spalte 3 der ersten Reihe

zweiter Linie verschmelzen fusionieren zu zweite oder dritte Telefonnummer der ersten Linie.

Ausgabe

CustNO | Relationnumber|phone001| phone002|phone003 
    A0002023| N195UN| 121408| 02075614860|0207561860|'' 
    E3085141| 15252| 408121| 5566456|256756616|''  
    ZBT5489 | 88888| 555555| 6665589|''|'' 
    JEZTSUR1| 9999| 558121| 9986141|963283| 679971 

Antwort

0

prüfen Dieses.

 SELECT distinct 
       m.CustNO 
      , m.RelationNo 
      , m.POSTCODE 
      , PHONE001 = STUFF((
        SELECT ',' + md.PHONE001 
        FROM [email protected] md 
        WHERE m.CustNO = md.CustNO and m.RelationNo = md.RelationNo and m.POSTCODE = md.POSTCODE 
        FOR XML PATH(''), TYPE).value('.', 'NVARCHAR(MAX)'), 1, 1, '') 
     FROM [email protected] m 

OutPut:

enter image description here

+0

Leider: Herr Bhosale: Mein Problem ist, ich alle Werte in einzelnen Spalte nicht wollen, wenn der Wert in der nächsten Spalte sein muss –

+0

Schätzen Sie Ihren Vorschlag techie ....... –

+0

Kann mir bitte jemand helfen. :) –

Verwandte Themen